diff --git a/gosnappi/gosnappi.go b/gosnappi/gosnappi.go index f8e66c63..4869d431 100644 --- a/gosnappi/gosnappi.go +++ b/gosnappi/gosnappi.go @@ -1,4 +1,4 @@ -/* Open Traffic Generator API 0.11.6 +/* Open Traffic Generator API 0.11.7 * Open Traffic Generator API defines a model-driven, vendor-neutral and standard * interface for emulating layer 2-7 network devices and generating test traffic. * @@ -178,16 +178,22 @@ type GosnappiApi interface { NewControlAction() ControlAction // TransmitState is deprecated: Please use `StateTrafficFlowTransmit` instead // + // Deprecated: Please use `StateTrafficFlowTransmit` instead + // // Flow transmit state. // NewTransmitState returns a new instance of TransmitState. NewTransmitState() TransmitState // LinkState is deprecated: Please use `StatePortLink` instead // + // Deprecated: Please use `StatePortLink` instead + // // Sets the link state of configured ports. // NewLinkState returns a new instance of LinkState. NewLinkState() LinkState // CaptureState is deprecated: Please use `StatePortCapture` instead // + // Deprecated: Please use `StatePortCapture` instead + // // Control port capture state // NewCaptureState returns a new instance of CaptureState. NewCaptureState() CaptureState @@ -196,6 +202,8 @@ type GosnappiApi interface { NewFlowsUpdate() FlowsUpdate // RouteState is deprecated: Please use `StateProtocolRoute` instead // + // Deprecated: Please use `StateProtocolRoute` instead + // // Sets the device route state // NewRouteState returns a new instance of RouteState. NewRouteState() RouteState @@ -204,11 +212,15 @@ type GosnappiApi interface { NewPingRequest() PingRequest // ProtocolState is deprecated: Please use `StateProtocolAll` instead // + // Deprecated: Please use `StateProtocolAll` instead + // // Sets all configured protocols to `start` or `stop` state. Setting protocol state to `start` shall be a no-op if preceding `set_config` API call was made with `config.options.protocol_options.auto_start_all` set to `true` or if all the configured protocols are already started. // NewProtocolState returns a new instance of ProtocolState. NewProtocolState() ProtocolState // DeviceState is deprecated: Please use `State.Protocol` instead // + // Deprecated: Please use `State.Protocol` instead + // // Sets attributes for the requested state/actions to be performed on device(s) // NewDeviceState returns a new instance of DeviceState. NewDeviceState() DeviceState @@ -285,35 +297,51 @@ type GosnappiApi interface { SetControlAction(controlAction ControlAction) (ControlActionResponse, error) // SetTransmitState deprecated: Please use `set_control_state` with `traffic.flow_transmit` choice instead // + // Deprecated: Please use `set_control_state` with `traffic.flow_transmit` choice instead + // // Updates the state of configuration resources on the traffic generator. // The Response.Warnings in the Success response is available for implementers to disclose additional information about a state change including any implicit changes that are outside the scope of the state change. SetTransmitState(transmitState TransmitState) (Warning, error) // SetLinkState deprecated: Please use `set_control_state` with `port.link` choice instead // + // Deprecated: Please use `set_control_state` with `port.link` choice instead + // // Updates the state of configuration resources on the traffic generator. SetLinkState(linkState LinkState) (Warning, error) // SetCaptureState deprecated: Please use `set_control_state` with `port.capture` choice instead // + // Deprecated: Please use `set_control_state` with `port.capture` choice instead + // // Updates the state of configuration resources on the traffic generator. SetCaptureState(captureState CaptureState) (Warning, error) // UpdateFlows deprecated: Please use `update_config` with `flow` choice instead // + // Deprecated: Please use `update_config` with `flow` choice instead + // // Updates flow properties without disruption of transmit state. UpdateFlows(flowsUpdate FlowsUpdate) (Config, error) // SetRouteState deprecated: Please use `set_control_state` with `protocol.route` choice instead // + // Deprecated: Please use `set_control_state` with `protocol.route` choice instead + // // Updates the state of configuration resources on the traffic generator. SetRouteState(routeState RouteState) (Warning, error) // SendPing deprecated: Please use `set_control_action` with `protocol.ipv*.ping` choice instead // + // Deprecated: Please use `set_control_action` with `protocol.ipv*.ping` choice instead + // // API to send an IPv4 and/or IPv6 ICMP Echo Request(s) between endpoints. For each endpoint 1 ping packet will be sent and API shall wait for ping response to either be successful or timeout. The API wait timeout for each request is 300ms. SendPing(pingRequest PingRequest) (PingResponse, error) // SetProtocolState deprecated: Please use `set_control_state` with `protocol.all` choice instead // + // Deprecated: Please use `set_control_state` with `protocol.all` choice instead + // // Sets all configured protocols to `start` or `stop` state. SetProtocolState(protocolState ProtocolState) (Warning, error) // SetDeviceState deprecated: Please use `set_control_state` with `protocol` choice instead // + // Deprecated: Please use `set_control_state` with `protocol` choice instead + // // Set specific state/actions on device configuration resources on the traffic generator. SetDeviceState(deviceState DeviceState) (Warning, error) // GetMetrics description is TBD @@ -466,7 +494,7 @@ func (api *gosnappiApi) NewGetVersionResponse() GetVersionResponse { func (api *gosnappiApi) GetLocalVersion() Version { if api.versionMeta.localVersion == nil { - api.versionMeta.localVersion = NewVersion().SetApiSpecVersion("0.11.6").SetSdkVersion("0.11.12") + api.versionMeta.localVersion = NewVersion().SetApiSpecVersion("0.11.7").SetSdkVersion("0.11.13") } return api.versionMeta.localVersion @@ -3852,6 +3880,8 @@ func (obj *transmitState) Clone() (TransmitState, error) { // TransmitState is deprecated: Please use `StateTrafficFlowTransmit` instead // +// Deprecated: Please use `StateTrafficFlowTransmit` instead +// // Flow transmit state. type TransmitState interface { Validation @@ -3902,6 +3932,9 @@ type TransmitState interface { // x-constraint: // - /components/schemas/Flow/properties/name // +// x-constraint: +// - /components/schemas/Flow/properties/name +// // FlowNames returns a []string func (obj *transmitState) FlowNames() []string { if obj.obj.FlowNames == nil { @@ -3916,6 +3949,9 @@ func (obj *transmitState) FlowNames() []string { // x-constraint: // - /components/schemas/Flow/properties/name // +// x-constraint: +// - /components/schemas/Flow/properties/name +// // SetFlowNames sets the []string value in the TransmitState object func (obj *transmitState) SetFlowNames(value []string) TransmitState { @@ -4163,6 +4199,8 @@ func (obj *linkState) Clone() (LinkState, error) { // LinkState is deprecated: Please use `StatePortLink` instead // +// Deprecated: Please use `StatePortLink` instead +// // Sets the link state of configured ports. type LinkState interface { Validation @@ -4212,6 +4250,9 @@ type LinkState interface { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // PortNames returns a []string func (obj *linkState) PortNames() []string { if obj.obj.PortNames == nil { @@ -4225,6 +4266,9 @@ func (obj *linkState) PortNames() []string { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // SetPortNames sets the []string value in the LinkState object func (obj *linkState) SetPortNames(value []string) LinkState { @@ -4468,6 +4512,8 @@ func (obj *captureState) Clone() (CaptureState, error) { // CaptureState is deprecated: Please use `StatePortCapture` instead // +// Deprecated: Please use `StatePortCapture` instead +// // Control port capture state type CaptureState interface { Validation @@ -4518,6 +4564,9 @@ type CaptureState interface { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // PortNames returns a []string func (obj *captureState) PortNames() []string { if obj.obj.PortNames == nil { @@ -4532,6 +4581,9 @@ func (obj *captureState) PortNames() []string { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // SetPortNames sets the []string value in the CaptureState object func (obj *captureState) SetPortNames(value []string) CaptureState { @@ -5161,6 +5213,8 @@ func (obj *routeState) Clone() (RouteState, error) { // RouteState is deprecated: Please use `StateProtocolRoute` instead // +// Deprecated: Please use `StateProtocolRoute` instead +// // Sets the device route state type RouteState interface { Validation @@ -5213,6 +5267,12 @@ type RouteState interface { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // +// x-constraint: +// - /components/schemas/Bgp.V4RouteRange/properties/name +// - /components/schemas/Bgp.V6RouteRange/properties/name +// - /components/schemas/Isis.V4RouteRange/properties/name +// - /components/schemas/Isis.V6RouteRange/properties/name +// // Names returns a []string func (obj *routeState) Names() []string { if obj.obj.Names == nil { @@ -5229,6 +5289,12 @@ func (obj *routeState) Names() []string { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // +// x-constraint: +// - /components/schemas/Bgp.V4RouteRange/properties/name +// - /components/schemas/Bgp.V6RouteRange/properties/name +// - /components/schemas/Isis.V4RouteRange/properties/name +// - /components/schemas/Isis.V6RouteRange/properties/name +// // SetNames sets the []string value in the RouteState object func (obj *routeState) SetNames(value []string) RouteState { @@ -5817,6 +5883,8 @@ func (obj *protocolState) Clone() (ProtocolState, error) { // ProtocolState is deprecated: Please use `StateProtocolAll` instead // +// Deprecated: Please use `StateProtocolAll` instead +// // Sets all configured protocols to `start` or `stop` state. Setting protocol state to `start` shall be a no-op if preceding `set_config` API call was made with `config.options.protocol_options.auto_start_all` set to `true` or if all the configured protocols are already started. type ProtocolState interface { Validation @@ -6097,6 +6165,8 @@ func (obj *deviceState) setNil() { // DeviceState is deprecated: Please use `State.Protocol` instead // +// Deprecated: Please use `State.Protocol` instead +// // Sets attributes for the requested state/actions to be performed on device(s) type DeviceState interface { Validation @@ -6140,11 +6210,15 @@ type DeviceState interface { // LacpMemberState returns LacpMemberState, set in DeviceState. // LacpMemberState is deprecated: Please use `StateProtocolLacpAdmin` instead // + // Deprecated: Please use `StateProtocolLacpAdmin` instead + // // Set LACP state for specified LAG Member Port(s). LacpMemberState() LacpMemberState // SetLacpMemberState assigns LacpMemberState provided by user to DeviceState. // LacpMemberState is deprecated: Please use `StateProtocolLacpAdmin` instead // + // Deprecated: Please use `StateProtocolLacpAdmin` instead + // // Set LACP state for specified LAG Member Port(s). SetLacpMemberState(value LacpMemberState) DeviceState // HasLacpMemberState checks if LacpMemberState has been set in DeviceState @@ -7792,6 +7866,9 @@ type CaptureRequest interface { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // PortName returns a string func (obj *captureRequest) PortName() string { @@ -7803,6 +7880,9 @@ func (obj *captureRequest) PortName() string { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // SetPortName sets the string value in the CaptureRequest object func (obj *captureRequest) SetPortName(value string) CaptureRequest { @@ -13679,6 +13759,9 @@ type Layer1 interface { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // PortNames returns a []string func (obj *layer1) PortNames() []string { if obj.obj.PortNames == nil { @@ -13693,6 +13776,9 @@ func (obj *layer1) PortNames() []string { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // SetPortNames sets the []string value in the Layer1 object func (obj *layer1) SetPortNames(value []string) Layer1 { @@ -14202,6 +14288,8 @@ func (obj *capture) setNil() { // Capture is under Review: Information TBD // +// Under Review: Information TBD +// // Configuration for capture settings. type Capture interface { Validation @@ -14272,6 +14360,9 @@ type Capture interface { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // PortNames returns a []string func (obj *capture) PortNames() []string { if obj.obj.PortNames == nil { @@ -14285,6 +14376,9 @@ func (obj *capture) PortNames() []string { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // SetPortNames sets the []string value in the Capture object func (obj *capture) SetPortNames(value []string) Capture { @@ -15274,15 +15368,14 @@ func (obj *device) setDefault() { // ***** Flow ***** type flow struct { validation - obj *otg.Flow - txRxHolder FlowTxRx - packetHolder FlowFlowHeaderIter - ingressPacketHolder FlowFlowHeaderIter - egressPacketHolder FlowFlowHeaderIter - sizeHolder FlowSize - rateHolder FlowRate - durationHolder FlowDuration - metricsHolder FlowMetrics + obj *otg.Flow + txRxHolder FlowTxRx + packetHolder FlowFlowHeaderIter + egressPacketHolder FlowFlowHeaderIter + sizeHolder FlowSize + rateHolder FlowRate + durationHolder FlowDuration + metricsHolder FlowMetrics } func NewFlow() Flow { @@ -15468,7 +15561,6 @@ func (obj *flow) Clone() (Flow, error) { func (obj *flow) setNil() { obj.txRxHolder = nil obj.packetHolder = nil - obj.ingressPacketHolder = nil obj.egressPacketHolder = nil obj.sizeHolder = nil obj.rateHolder = nil @@ -15523,8 +15615,6 @@ type Flow interface { SetTxRx(value FlowTxRx) Flow // Packet returns FlowFlowHeaderIterIter, set in Flow Packet() FlowFlowHeaderIter - // IngressPacket returns FlowFlowHeaderIterIter, set in Flow - IngressPacket() FlowFlowHeaderIter // EgressPacket returns FlowFlowHeaderIterIter, set in Flow EgressPacket() FlowFlowHeaderIter // Size returns FlowSize, set in Flow. @@ -15588,11 +15678,11 @@ func (obj *flow) SetTxRx(value FlowTxRx) Flow { return obj } -// Deprecated: Use flow.ingress_packet instead. +// The list of protocol headers defining the shape of all +// intended packets in corresponding flow as it is transmitted +// by traffic-generator port. // -// The header is a list of traffic protocol headers. -// -// The order of traffic protocol headers assigned to the list is the +// The order of protocol headers assigned to the list is the // order they will appear on the wire. // // In the case of an empty list the keyword/value of minItems: 1 @@ -15688,19 +15778,15 @@ func (obj *flowFlowHeaderIter) appendHolderSlice(item FlowHeader) FlowFlowHeader return obj } -// Ingress packet -// IngressPacket returns a []FlowHeader -func (obj *flow) IngressPacket() FlowFlowHeaderIter { - if len(obj.obj.IngressPacket) == 0 { - obj.obj.IngressPacket = []*otg.FlowHeader{} - } - if obj.ingressPacketHolder == nil { - obj.ingressPacketHolder = newFlowFlowHeaderIter(&obj.obj.IngressPacket).setMsg(obj) - } - return obj.ingressPacketHolder -} - -// Egress packets +// Under Review: The packet header schema for egress tracking currently exposes unwanted fields. The query structure for tagged metrics inside flows metrics requires documenting expected response format. +// +// Under Review: The packet header schema for egress tracking currently exposes unwanted fields. The query structure for tagged metrics inside flows metrics requires documenting expected response format. +// +// The list of protocol headers defining the shape of all +// intended packets in corresponding flow as it is received +// by traffic-generator port. +// +// For all protocol headers, only the `metric_tags` property is configurable. // EgressPacket returns a []FlowHeader func (obj *flow) EgressPacket() FlowFlowHeaderIter { if len(obj.obj.EgressPacket) == 0 { @@ -15855,7 +15941,6 @@ func (obj *flow) validateObj(vObj *validation, set_default bool) { } if len(obj.obj.Packet) != 0 { - obj.addWarnings("Packet property in schema Flow is deprecated, Use flow.ingress_packet instead.") if set_default { obj.Packet().clearHolderSlice() @@ -15869,20 +15954,6 @@ func (obj *flow) validateObj(vObj *validation, set_default bool) { } - if len(obj.obj.IngressPacket) != 0 { - - if set_default { - obj.IngressPacket().clearHolderSlice() - for _, item := range obj.obj.IngressPacket { - obj.IngressPacket().appendHolderSlice(&flowHeader{obj: item}) - } - } - for _, item := range obj.IngressPacket().Items() { - item.validateObj(vObj, set_default) - } - - } - if len(obj.obj.EgressPacket) != 0 { if set_default { @@ -19292,6 +19363,8 @@ func (obj *lacpMemberState) Clone() (LacpMemberState, error) { // LacpMemberState is deprecated: Please use `StateProtocolLacpAdmin` instead // +// Deprecated: Please use `StateProtocolLacpAdmin` instead +// // Set LACP state for specified LAG Member Port(s). type LacpMemberState interface { Validation @@ -19341,6 +19414,9 @@ type LacpMemberState interface { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // LagMemberPortNames returns a []string func (obj *lacpMemberState) LagMemberPortNames() []string { if obj.obj.LagMemberPortNames == nil { @@ -19354,6 +19430,9 @@ func (obj *lacpMemberState) LagMemberPortNames() []string { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // SetLagMemberPortNames sets the []string value in the LacpMemberState object func (obj *lacpMemberState) SetLagMemberPortNames(value []string) LacpMemberState { @@ -19644,6 +19723,9 @@ type PortMetricsRequest interface { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // PortNames returns a []string func (obj *portMetricsRequest) PortNames() []string { if obj.obj.PortNames == nil { @@ -19657,6 +19739,9 @@ func (obj *portMetricsRequest) PortNames() []string { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // SetPortNames sets the []string value in the PortMetricsRequest object func (obj *portMetricsRequest) SetPortNames(value []string) PortMetricsRequest { @@ -19984,6 +20069,9 @@ type FlowMetricsRequest interface { // x-constraint: // - /components/schemas/Flow/properties/name // +// x-constraint: +// - /components/schemas/Flow/properties/name +// // FlowNames returns a []string func (obj *flowMetricsRequest) FlowNames() []string { if obj.obj.FlowNames == nil { @@ -19998,6 +20086,9 @@ func (obj *flowMetricsRequest) FlowNames() []string { // x-constraint: // - /components/schemas/Flow/properties/name // +// x-constraint: +// - /components/schemas/Flow/properties/name +// // SetFlowNames sets the []string value in the FlowMetricsRequest object func (obj *flowMetricsRequest) SetFlowNames(value []string) FlowMetricsRequest { @@ -20330,6 +20421,9 @@ type Bgpv4MetricsRequest interface { // x-constraint: // - /components/schemas/Bgp.V4peer/properties/name // +// x-constraint: +// - /components/schemas/Bgp.V4peer/properties/name +// // PeerNames returns a []string func (obj *bgpv4MetricsRequest) PeerNames() []string { if obj.obj.PeerNames == nil { @@ -20343,6 +20437,9 @@ func (obj *bgpv4MetricsRequest) PeerNames() []string { // x-constraint: // - /components/schemas/Bgp.V4peer/properties/name // +// x-constraint: +// - /components/schemas/Bgp.V4peer/properties/name +// // SetPeerNames sets the []string value in the Bgpv4MetricsRequest object func (obj *bgpv4MetricsRequest) SetPeerNames(value []string) Bgpv4MetricsRequest { @@ -20658,6 +20755,9 @@ type Bgpv6MetricsRequest interface { // x-constraint: // - /components/schemas/Bgp.V6peer/properties/name // +// x-constraint: +// - /components/schemas/Bgp.V6peer/properties/name +// // PeerNames returns a []string func (obj *bgpv6MetricsRequest) PeerNames() []string { if obj.obj.PeerNames == nil { @@ -20671,6 +20771,9 @@ func (obj *bgpv6MetricsRequest) PeerNames() []string { // x-constraint: // - /components/schemas/Bgp.V6peer/properties/name // +// x-constraint: +// - /components/schemas/Bgp.V6peer/properties/name +// // SetPeerNames sets the []string value in the Bgpv6MetricsRequest object func (obj *bgpv6MetricsRequest) SetPeerNames(value []string) Bgpv6MetricsRequest { @@ -20986,6 +21089,9 @@ type IsisMetricsRequest interface { // x-constraint: // - /components/schemas/Device.IsisRouter/properties/name // +// x-constraint: +// - /components/schemas/Device.IsisRouter/properties/name +// // RouterNames returns a []string func (obj *isisMetricsRequest) RouterNames() []string { if obj.obj.RouterNames == nil { @@ -20999,6 +21105,9 @@ func (obj *isisMetricsRequest) RouterNames() []string { // x-constraint: // - /components/schemas/Device.IsisRouter/properties/name // +// x-constraint: +// - /components/schemas/Device.IsisRouter/properties/name +// // SetRouterNames sets the []string value in the IsisMetricsRequest object func (obj *isisMetricsRequest) SetRouterNames(value []string) IsisMetricsRequest { @@ -21336,6 +21445,9 @@ type LagMetricsRequest interface { // x-constraint: // - /components/schemas/Lag/properties/name // +// x-constraint: +// - /components/schemas/Lag/properties/name +// // LagNames returns a []string func (obj *lagMetricsRequest) LagNames() []string { if obj.obj.LagNames == nil { @@ -21349,6 +21461,9 @@ func (obj *lagMetricsRequest) LagNames() []string { // x-constraint: // - /components/schemas/Lag/properties/name // +// x-constraint: +// - /components/schemas/Lag/properties/name +// // SetLagNames sets the []string value in the LagMetricsRequest object func (obj *lagMetricsRequest) SetLagNames(value []string) LagMetricsRequest { @@ -21658,6 +21773,9 @@ type LacpMetricsRequest interface { // x-constraint: // - /components/schemas/Lag/properties/name // +// x-constraint: +// - /components/schemas/Lag/properties/name +// // LagNames returns a []string func (obj *lacpMetricsRequest) LagNames() []string { if obj.obj.LagNames == nil { @@ -21671,6 +21789,9 @@ func (obj *lacpMetricsRequest) LagNames() []string { // x-constraint: // - /components/schemas/Lag/properties/name // +// x-constraint: +// - /components/schemas/Lag/properties/name +// // SetLagNames sets the []string value in the LacpMetricsRequest object func (obj *lacpMetricsRequest) SetLagNames(value []string) LacpMetricsRequest { @@ -21687,6 +21808,9 @@ func (obj *lacpMetricsRequest) SetLagNames(value []string) LacpMetricsRequest { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // LagMemberPortNames returns a []string func (obj *lacpMetricsRequest) LagMemberPortNames() []string { if obj.obj.LagMemberPortNames == nil { @@ -21700,6 +21824,9 @@ func (obj *lacpMetricsRequest) LagMemberPortNames() []string { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // SetLagMemberPortNames sets the []string value in the LacpMetricsRequest object func (obj *lacpMetricsRequest) SetLagMemberPortNames(value []string) LacpMetricsRequest { @@ -22015,6 +22142,9 @@ type LldpMetricsRequest interface { // x-constraint: // - /components/schemas/Lldp/properties/name // +// x-constraint: +// - /components/schemas/Lldp/properties/name +// // LldpNames returns a []string func (obj *lldpMetricsRequest) LldpNames() []string { if obj.obj.LldpNames == nil { @@ -22028,6 +22158,9 @@ func (obj *lldpMetricsRequest) LldpNames() []string { // x-constraint: // - /components/schemas/Lldp/properties/name // +// x-constraint: +// - /components/schemas/Lldp/properties/name +// // SetLldpNames sets the []string value in the LldpMetricsRequest object func (obj *lldpMetricsRequest) SetLldpNames(value []string) LldpMetricsRequest { @@ -22325,6 +22458,9 @@ type RsvpMetricsRequest interface { // x-constraint: // - /components/schemas/Device.Rsvp/properties/name // +// x-constraint: +// - /components/schemas/Device.Rsvp/properties/name +// // RouterNames returns a []string func (obj *rsvpMetricsRequest) RouterNames() []string { if obj.obj.RouterNames == nil { @@ -22338,6 +22474,9 @@ func (obj *rsvpMetricsRequest) RouterNames() []string { // x-constraint: // - /components/schemas/Device.Rsvp/properties/name // +// x-constraint: +// - /components/schemas/Device.Rsvp/properties/name +// // SetRouterNames sets the []string value in the RsvpMetricsRequest object func (obj *rsvpMetricsRequest) SetRouterNames(value []string) RsvpMetricsRequest { @@ -22679,6 +22818,9 @@ type Neighborsv4StatesRequest interface { // x-constraint: // - /components/schemas/Device.Ethernet/properties/name // +// x-constraint: +// - /components/schemas/Device.Ethernet/properties/name +// // EthernetNames returns a []string func (obj *neighborsv4StatesRequest) EthernetNames() []string { if obj.obj.EthernetNames == nil { @@ -22692,6 +22834,9 @@ func (obj *neighborsv4StatesRequest) EthernetNames() []string { // x-constraint: // - /components/schemas/Device.Ethernet/properties/name // +// x-constraint: +// - /components/schemas/Device.Ethernet/properties/name +// // SetEthernetNames sets the []string value in the Neighborsv4StatesRequest object func (obj *neighborsv4StatesRequest) SetEthernetNames(value []string) Neighborsv4StatesRequest { @@ -22945,6 +23090,9 @@ type Neighborsv6StatesRequest interface { // x-constraint: // - /components/schemas/Device.Ethernet/properties/name // +// x-constraint: +// - /components/schemas/Device.Ethernet/properties/name +// // EthernetNames returns a []string func (obj *neighborsv6StatesRequest) EthernetNames() []string { if obj.obj.EthernetNames == nil { @@ -22958,6 +23106,9 @@ func (obj *neighborsv6StatesRequest) EthernetNames() []string { // x-constraint: // - /components/schemas/Device.Ethernet/properties/name // +// x-constraint: +// - /components/schemas/Device.Ethernet/properties/name +// // SetEthernetNames sets the []string value in the Neighborsv6StatesRequest object func (obj *neighborsv6StatesRequest) SetEthernetNames(value []string) Neighborsv6StatesRequest { @@ -23231,6 +23382,10 @@ type BgpPrefixStateRequest interface { // - /components/schemas/Bgp.V4Peer/properties/name // - /components/schemas/Bgp.V6Peer/properties/name // +// x-constraint: +// - /components/schemas/Bgp.V4Peer/properties/name +// - /components/schemas/Bgp.V6Peer/properties/name +// // BgpPeerNames returns a []string func (obj *bgpPrefixStateRequest) BgpPeerNames() []string { if obj.obj.BgpPeerNames == nil { @@ -23245,6 +23400,10 @@ func (obj *bgpPrefixStateRequest) BgpPeerNames() []string { // - /components/schemas/Bgp.V4Peer/properties/name // - /components/schemas/Bgp.V6Peer/properties/name // +// x-constraint: +// - /components/schemas/Bgp.V4Peer/properties/name +// - /components/schemas/Bgp.V6Peer/properties/name +// // SetBgpPeerNames sets the []string value in the BgpPrefixStateRequest object func (obj *bgpPrefixStateRequest) SetBgpPeerNames(value []string) BgpPrefixStateRequest { @@ -23732,6 +23891,9 @@ type IsisLspsStateRequest interface { // x-constraint: // - /components/schemas/Device.IsisRouter/properties/name // +// x-constraint: +// - /components/schemas/Device.IsisRouter/properties/name +// // IsisRouterNames returns a []string func (obj *isisLspsStateRequest) IsisRouterNames() []string { if obj.obj.IsisRouterNames == nil { @@ -23745,6 +23907,9 @@ func (obj *isisLspsStateRequest) IsisRouterNames() []string { // x-constraint: // - /components/schemas/Device.IsisRouter/properties/name // +// x-constraint: +// - /components/schemas/Device.IsisRouter/properties/name +// // SetIsisRouterNames sets the []string value in the IsisLspsStateRequest object func (obj *isisLspsStateRequest) SetIsisRouterNames(value []string) IsisLspsStateRequest { @@ -24002,6 +24167,9 @@ type LldpNeighborsStateRequest interface { // x-constraint: // - /components/schemas/Lldp/properties/name // +// x-constraint: +// - /components/schemas/Lldp/properties/name +// // LldpNames returns a []string func (obj *lldpNeighborsStateRequest) LldpNames() []string { if obj.obj.LldpNames == nil { @@ -24015,6 +24183,9 @@ func (obj *lldpNeighborsStateRequest) LldpNames() []string { // x-constraint: // - /components/schemas/Lldp/properties/name // +// x-constraint: +// - /components/schemas/Lldp/properties/name +// // SetLldpNames sets the []string value in the LldpNeighborsStateRequest object func (obj *lldpNeighborsStateRequest) SetLldpNames(value []string) LldpNeighborsStateRequest { @@ -24289,6 +24460,9 @@ type RsvpLspsStateRequest interface { // x-constraint: // - /components/schemas/Device.Rsvp/properties/name // +// x-constraint: +// - /components/schemas/Device.Rsvp/properties/name +// // RsvpRouterNames returns a []string func (obj *rsvpLspsStateRequest) RsvpRouterNames() []string { if obj.obj.RsvpRouterNames == nil { @@ -24302,6 +24476,9 @@ func (obj *rsvpLspsStateRequest) RsvpRouterNames() []string { // x-constraint: // - /components/schemas/Device.Rsvp/properties/name // +// x-constraint: +// - /components/schemas/Device.Rsvp/properties/name +// // SetRsvpRouterNames sets the []string value in the RsvpLspsStateRequest object func (obj *rsvpLspsStateRequest) SetRsvpRouterNames(value []string) RsvpLspsStateRequest { @@ -28414,6 +28591,9 @@ type LagPort interface { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // PortName returns a string func (obj *lagPort) PortName() string { @@ -28425,6 +28605,9 @@ func (obj *lagPort) PortName() string { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // SetPortName sets the string value in the LagPort object func (obj *lagPort) SetPortName(value string) LagPort { @@ -30589,6 +30772,8 @@ type DeviceEthernet interface { setNil() } +// Deprecated: This property is deprecated in favor of property connection.port_name +// // Deprecated: This property is deprecated in favor of property connection.port_name // // The unique name of a Port or a LAG that will emulate this interface. @@ -30598,6 +30783,10 @@ type DeviceEthernet interface { // - /components/schemas/Port/properties/name // - /components/schemas/Lag/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// - /components/schemas/Lag/properties/name +// // PortName returns a string func (obj *deviceEthernet) PortName() string { @@ -30605,6 +30794,8 @@ func (obj *deviceEthernet) PortName() string { } +// Deprecated: This property is deprecated in favor of property connection.port_name +// // Deprecated: This property is deprecated in favor of property connection.port_name // // The unique name of a Port or a LAG that will emulate this interface. @@ -30614,11 +30805,17 @@ func (obj *deviceEthernet) PortName() string { // - /components/schemas/Port/properties/name // - /components/schemas/Lag/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// - /components/schemas/Lag/properties/name +// // PortName returns a string func (obj *deviceEthernet) HasPortName() bool { return obj.obj.PortName != nil } +// Deprecated: This property is deprecated in favor of property connection.port_name +// // Deprecated: This property is deprecated in favor of property connection.port_name // // The unique name of a Port or a LAG that will emulate this interface. @@ -30628,6 +30825,10 @@ func (obj *deviceEthernet) HasPortName() bool { // - /components/schemas/Port/properties/name // - /components/schemas/Lag/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// - /components/schemas/Lag/properties/name +// // SetPortName sets the string value in the DeviceEthernet object func (obj *deviceEthernet) SetPortName(value string) DeviceEthernet { @@ -31311,6 +31512,9 @@ type DeviceIpv4Loopback interface { // x-constraint: // - /components/schemas/Device.Ethernet/properties/name // +// x-constraint: +// - /components/schemas/Device.Ethernet/properties/name +// // EthName returns a string func (obj *deviceIpv4Loopback) EthName() string { @@ -31322,6 +31526,9 @@ func (obj *deviceIpv4Loopback) EthName() string { // x-constraint: // - /components/schemas/Device.Ethernet/properties/name // +// x-constraint: +// - /components/schemas/Device.Ethernet/properties/name +// // SetEthName sets the string value in the DeviceIpv4Loopback object func (obj *deviceIpv4Loopback) SetEthName(value string) DeviceIpv4Loopback { @@ -31640,6 +31847,9 @@ type DeviceIpv6Loopback interface { // x-constraint: // - /components/schemas/Device.Ethernet/properties/name // +// x-constraint: +// - /components/schemas/Device.Ethernet/properties/name +// // EthName returns a string func (obj *deviceIpv6Loopback) EthName() string { @@ -31652,6 +31862,9 @@ func (obj *deviceIpv6Loopback) EthName() string { // x-constraint: // - /components/schemas/Device.Ethernet/properties/name // +// x-constraint: +// - /components/schemas/Device.Ethernet/properties/name +// // SetEthName sets the string value in the DeviceIpv6Loopback object func (obj *deviceIpv6Loopback) SetEthName(value string) DeviceIpv6Loopback { @@ -39076,6 +39289,9 @@ func (obj *lldpConnection) SetChoice(value LldpConnectionChoiceEnum) LldpConnect // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // PortName returns a string func (obj *lldpConnection) PortName() string { @@ -39092,6 +39308,9 @@ func (obj *lldpConnection) PortName() string { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // PortName returns a string func (obj *lldpConnection) HasPortName() bool { return obj.obj.PortName != nil @@ -39102,6 +39321,9 @@ func (obj *lldpConnection) HasPortName() bool { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // SetPortName sets the string value in the LldpConnection object func (obj *lldpConnection) SetPortName(value string) LldpConnection { obj.SetChoice(LldpConnectionChoice.PORT_NAME) @@ -40489,6 +40711,9 @@ type StatePortLink interface { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // PortNames returns a []string func (obj *statePortLink) PortNames() []string { if obj.obj.PortNames == nil { @@ -40502,6 +40727,9 @@ func (obj *statePortLink) PortNames() []string { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // SetPortNames sets the []string value in the StatePortLink object func (obj *statePortLink) SetPortNames(value []string) StatePortLink { @@ -40791,6 +41019,9 @@ type StatePortCapture interface { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // PortNames returns a []string func (obj *statePortCapture) PortNames() []string { if obj.obj.PortNames == nil { @@ -40805,6 +41036,9 @@ func (obj *statePortCapture) PortNames() []string { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // SetPortNames sets the []string value in the StatePortCapture object func (obj *statePortCapture) SetPortNames(value []string) StatePortCapture { @@ -41365,6 +41599,12 @@ type StateProtocolRoute interface { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // +// x-constraint: +// - /components/schemas/Bgp.V4RouteRange/properties/name +// - /components/schemas/Bgp.V6RouteRange/properties/name +// - /components/schemas/Isis.V4RouteRange/properties/name +// - /components/schemas/Isis.V6RouteRange/properties/name +// // Names returns a []string func (obj *stateProtocolRoute) Names() []string { if obj.obj.Names == nil { @@ -41381,6 +41621,12 @@ func (obj *stateProtocolRoute) Names() []string { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // +// x-constraint: +// - /components/schemas/Bgp.V4RouteRange/properties/name +// - /components/schemas/Bgp.V6RouteRange/properties/name +// - /components/schemas/Isis.V4RouteRange/properties/name +// - /components/schemas/Isis.V6RouteRange/properties/name +// // SetNames sets the []string value in the StateProtocolRoute object func (obj *stateProtocolRoute) SetNames(value []string) StateProtocolRoute { @@ -41995,6 +42241,9 @@ type StateTrafficFlowTransmit interface { // x-constraint: // - /components/schemas/Flow/properties/name // +// x-constraint: +// - /components/schemas/Flow/properties/name +// // FlowNames returns a []string func (obj *stateTrafficFlowTransmit) FlowNames() []string { if obj.obj.FlowNames == nil { @@ -42009,6 +42258,9 @@ func (obj *stateTrafficFlowTransmit) FlowNames() []string { // x-constraint: // - /components/schemas/Flow/properties/name // +// x-constraint: +// - /components/schemas/Flow/properties/name +// // SetFlowNames sets the []string value in the StateTrafficFlowTransmit object func (obj *stateTrafficFlowTransmit) SetFlowNames(value []string) StateTrafficFlowTransmit { @@ -43332,6 +43584,9 @@ type PingIpv4 interface { // x-constraint: // - /components/schemas/Device.Ipv4/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv4/properties/name +// // SrcName returns a string func (obj *pingIpv4) SrcName() string { @@ -43344,6 +43599,9 @@ func (obj *pingIpv4) SrcName() string { // x-constraint: // - /components/schemas/Device.Ipv4/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv4/properties/name +// // SrcName returns a string func (obj *pingIpv4) HasSrcName() bool { return obj.obj.SrcName != nil @@ -43354,6 +43612,9 @@ func (obj *pingIpv4) HasSrcName() bool { // x-constraint: // - /components/schemas/Device.Ipv4/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv4/properties/name +// // SetSrcName sets the string value in the PingIpv4 object func (obj *pingIpv4) SetSrcName(value string) PingIpv4 { @@ -43642,6 +43903,9 @@ type PingIpv6 interface { // x-constraint: // - /components/schemas/Device.Ipv6/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv6/properties/name +// // SrcName returns a string func (obj *pingIpv6) SrcName() string { @@ -43654,6 +43918,9 @@ func (obj *pingIpv6) SrcName() string { // x-constraint: // - /components/schemas/Device.Ipv6/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv6/properties/name +// // SrcName returns a string func (obj *pingIpv6) HasSrcName() bool { return obj.obj.SrcName != nil @@ -43664,6 +43931,9 @@ func (obj *pingIpv6) HasSrcName() bool { // x-constraint: // - /components/schemas/Device.Ipv6/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv6/properties/name +// // SetSrcName sets the string value in the PingIpv6 object func (obj *pingIpv6) SetSrcName(value string) PingIpv6 { @@ -45463,6 +45733,10 @@ type Response interface { // - /components/schemas/Device.Ipv4/properties/name // - /components/schemas/Device.Ipv6/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv4/properties/name +// - /components/schemas/Device.Ipv6/properties/name +// // SrcName returns a string func (obj *response) SrcName() string { @@ -45476,6 +45750,10 @@ func (obj *response) SrcName() string { // - /components/schemas/Device.Ipv4/properties/name // - /components/schemas/Device.Ipv6/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv4/properties/name +// - /components/schemas/Device.Ipv6/properties/name +// // SrcName returns a string func (obj *response) HasSrcName() bool { return obj.obj.SrcName != nil @@ -45487,6 +45765,10 @@ func (obj *response) HasSrcName() bool { // - /components/schemas/Device.Ipv4/properties/name // - /components/schemas/Device.Ipv6/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv4/properties/name +// - /components/schemas/Device.Ipv6/properties/name +// // SetSrcName sets the string value in the Response object func (obj *response) SetSrcName(value string) Response { @@ -45870,6 +46152,9 @@ type PortMetric interface { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // Name returns a string func (obj *portMetric) Name() string { @@ -45882,6 +46167,9 @@ func (obj *portMetric) Name() string { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // Name returns a string func (obj *portMetric) HasName() bool { return obj.obj.Name != nil @@ -45892,6 +46180,9 @@ func (obj *portMetric) HasName() bool { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // SetName sets the string value in the PortMetric object func (obj *portMetric) SetName(value string) PortMetric { @@ -46894,7 +47185,9 @@ func (obj *flowMetric) SetLatency(value MetricLatency) FlowMetric { return obj } -// List of tagged metrics +// List of metrics corresponding to a set of values applicable +// for configured metric tags in ingress or egress packet header fields of corresponding flow. +// The container is keyed by list of tag-value pairs. // TaggedMetrics returns a []FlowTaggedMetric func (obj *flowMetric) TaggedMetrics() FlowMetricFlowTaggedMetricIter { if len(obj.obj.TaggedMetrics) == 0 { @@ -49764,6 +50057,9 @@ type LagMetric interface { // x-constraint: // - /components/schemas/Lag/properties/name // +// x-constraint: +// - /components/schemas/Lag/properties/name +// // Name returns a string func (obj *lagMetric) Name() string { @@ -49776,6 +50072,9 @@ func (obj *lagMetric) Name() string { // x-constraint: // - /components/schemas/Lag/properties/name // +// x-constraint: +// - /components/schemas/Lag/properties/name +// // Name returns a string func (obj *lagMetric) HasName() bool { return obj.obj.Name != nil @@ -49786,6 +50085,9 @@ func (obj *lagMetric) HasName() bool { // x-constraint: // - /components/schemas/Lag/properties/name // +// x-constraint: +// - /components/schemas/Lag/properties/name +// // SetName sets the string value in the LagMetric object func (obj *lagMetric) SetName(value string) LagMetric { @@ -60395,6 +60697,9 @@ func (obj *ethernetConnection) SetChoice(value EthernetConnectionChoiceEnum) Eth // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // PortName returns a string func (obj *ethernetConnection) PortName() string { @@ -60411,6 +60716,9 @@ func (obj *ethernetConnection) PortName() string { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // PortName returns a string func (obj *ethernetConnection) HasPortName() bool { return obj.obj.PortName != nil @@ -60421,6 +60729,9 @@ func (obj *ethernetConnection) HasPortName() bool { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // SetPortName sets the string value in the EthernetConnection object func (obj *ethernetConnection) SetPortName(value string) EthernetConnection { obj.SetChoice(EthernetConnectionChoice.PORT_NAME) @@ -60433,6 +60744,9 @@ func (obj *ethernetConnection) SetPortName(value string) EthernetConnection { // x-constraint: // - /components/schemas/Lag/properties/name // +// x-constraint: +// - /components/schemas/Lag/properties/name +// // LagName returns a string func (obj *ethernetConnection) LagName() string { @@ -60449,6 +60763,9 @@ func (obj *ethernetConnection) LagName() string { // x-constraint: // - /components/schemas/Lag/properties/name // +// x-constraint: +// - /components/schemas/Lag/properties/name +// // LagName returns a string func (obj *ethernetConnection) HasLagName() bool { return obj.obj.LagName != nil @@ -60459,6 +60776,9 @@ func (obj *ethernetConnection) HasLagName() bool { // x-constraint: // - /components/schemas/Lag/properties/name // +// x-constraint: +// - /components/schemas/Lag/properties/name +// // SetLagName sets the string value in the EthernetConnection object func (obj *ethernetConnection) SetLagName(value string) EthernetConnection { obj.SetChoice(EthernetConnectionChoice.LAG_NAME) @@ -60472,6 +60792,10 @@ func (obj *ethernetConnection) SetLagName(value string) EthernetConnection { // - #/components/schemas/Vxlan.V4Tunnel/properties/name // - #/components/schemas/Vxlan.V6Tunnel/properties/name // +// x-constraint: +// - #/components/schemas/Vxlan.V4Tunnel/properties/name +// - #/components/schemas/Vxlan.V6Tunnel/properties/name +// // VxlanName returns a string func (obj *ethernetConnection) VxlanName() string { @@ -60489,6 +60813,10 @@ func (obj *ethernetConnection) VxlanName() string { // - #/components/schemas/Vxlan.V4Tunnel/properties/name // - #/components/schemas/Vxlan.V6Tunnel/properties/name // +// x-constraint: +// - #/components/schemas/Vxlan.V4Tunnel/properties/name +// - #/components/schemas/Vxlan.V6Tunnel/properties/name +// // VxlanName returns a string func (obj *ethernetConnection) HasVxlanName() bool { return obj.obj.VxlanName != nil @@ -60500,6 +60828,10 @@ func (obj *ethernetConnection) HasVxlanName() bool { // - #/components/schemas/Vxlan.V4Tunnel/properties/name // - #/components/schemas/Vxlan.V6Tunnel/properties/name // +// x-constraint: +// - #/components/schemas/Vxlan.V4Tunnel/properties/name +// - #/components/schemas/Vxlan.V6Tunnel/properties/name +// // SetVxlanName sets the string value in the EthernetConnection object func (obj *ethernetConnection) SetVxlanName(value string) EthernetConnection { obj.SetChoice(EthernetConnectionChoice.VXLAN_NAME) @@ -62357,6 +62689,9 @@ type IsisInterface interface { // x-constraint: // - /components/schemas/Device.Ethernet/properties/name // +// x-constraint: +// - /components/schemas/Device.Ethernet/properties/name +// // EthName returns a string func (obj *isisInterface) EthName() string { @@ -62368,6 +62703,9 @@ func (obj *isisInterface) EthName() string { // x-constraint: // - /components/schemas/Device.Ethernet/properties/name // +// x-constraint: +// - /components/schemas/Device.Ethernet/properties/name +// // SetEthName sets the string value in the IsisInterface object func (obj *isisInterface) SetEthName(value string) IsisInterface { @@ -65752,6 +66090,10 @@ type BgpV4Interface interface { // - /components/schemas/Device.Ipv4/properties/name // - /components/schemas/Device.Ipv4Loopback/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv4/properties/name +// - /components/schemas/Device.Ipv4Loopback/properties/name +// // Ipv4Name returns a string func (obj *bgpV4Interface) Ipv4Name() string { @@ -65764,6 +66106,10 @@ func (obj *bgpV4Interface) Ipv4Name() string { // - /components/schemas/Device.Ipv4/properties/name // - /components/schemas/Device.Ipv4Loopback/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv4/properties/name +// - /components/schemas/Device.Ipv4Loopback/properties/name +// // SetIpv4Name sets the string value in the BgpV4Interface object func (obj *bgpV4Interface) SetIpv4Name(value string) BgpV4Interface { @@ -66131,6 +66477,10 @@ type BgpV6Interface interface { // - /components/schemas/Device.Ipv6/properties/name // - /components/schemas/Device.Ipv6Loopback/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv6/properties/name +// - /components/schemas/Device.Ipv6Loopback/properties/name +// // Ipv6Name returns a string func (obj *bgpV6Interface) Ipv6Name() string { @@ -66143,6 +66493,10 @@ func (obj *bgpV6Interface) Ipv6Name() string { // - /components/schemas/Device.Ipv6/properties/name // - /components/schemas/Device.Ipv6Loopback/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv6/properties/name +// - /components/schemas/Device.Ipv6Loopback/properties/name +// // SetIpv6Name sets the string value in the BgpV6Interface object func (obj *bgpV6Interface) SetIpv6Name(value string) BgpV6Interface { @@ -66524,6 +66878,10 @@ type VxlanV4Tunnel interface { // - /components/schemas/Device.Ipv4/properties/name // - /components/schemas/Device.Ipv4Loopback/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv4/properties/name +// - /components/schemas/Device.Ipv4Loopback/properties/name +// // SourceInterface returns a string func (obj *vxlanV4Tunnel) SourceInterface() string { @@ -66536,6 +66894,10 @@ func (obj *vxlanV4Tunnel) SourceInterface() string { // - /components/schemas/Device.Ipv4/properties/name // - /components/schemas/Device.Ipv4Loopback/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv4/properties/name +// - /components/schemas/Device.Ipv4Loopback/properties/name +// // SetSourceInterface sets the string value in the VxlanV4Tunnel object func (obj *vxlanV4Tunnel) SetSourceInterface(value string) VxlanV4Tunnel { @@ -66895,6 +67257,10 @@ type VxlanV6Tunnel interface { // - /components/schemas/Device.Ipv6/properties/name // - /components/schemas/Device.Ipv6Loopback/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv6/properties/name +// - /components/schemas/Device.Ipv6Loopback/properties/name +// // SourceInterface returns a string func (obj *vxlanV6Tunnel) SourceInterface() string { @@ -66907,6 +67273,10 @@ func (obj *vxlanV6Tunnel) SourceInterface() string { // - /components/schemas/Device.Ipv6/properties/name // - /components/schemas/Device.Ipv6Loopback/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv6/properties/name +// - /components/schemas/Device.Ipv6Loopback/properties/name +// // SetSourceInterface sets the string value in the VxlanV6Tunnel object func (obj *vxlanV6Tunnel) SetSourceInterface(value string) VxlanV6Tunnel { @@ -67298,6 +67668,9 @@ type RsvpIpv4Interface interface { // x-constraint: // - /components/schemas/Device.Ipv4/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv4/properties/name +// // Ipv4Name returns a string func (obj *rsvpIpv4Interface) Ipv4Name() string { @@ -67309,6 +67682,9 @@ func (obj *rsvpIpv4Interface) Ipv4Name() string { // x-constraint: // - /components/schemas/Device.Ipv4/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv4/properties/name +// // SetIpv4Name sets the string value in the RsvpIpv4Interface object func (obj *rsvpIpv4Interface) SetIpv4Name(value string) RsvpIpv4Interface { @@ -67898,6 +68274,10 @@ type RsvpLspIpv4Interface interface { // - /components/schemas/Device.Ipv4/properties/name // - /components/schemas/Device.Ipv4Loopback/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv4/properties/name +// - /components/schemas/Device.Ipv4Loopback/properties/name +// // Ipv4Name returns a string func (obj *rsvpLspIpv4Interface) Ipv4Name() string { @@ -67910,6 +68290,10 @@ func (obj *rsvpLspIpv4Interface) Ipv4Name() string { // - /components/schemas/Device.Ipv4/properties/name // - /components/schemas/Device.Ipv4Loopback/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv4/properties/name +// - /components/schemas/Device.Ipv4Loopback/properties/name +// // SetIpv4Name sets the string value in the RsvpLspIpv4Interface object func (obj *rsvpLspIpv4Interface) SetIpv4Name(value string) RsvpLspIpv4Interface { @@ -68311,6 +68695,10 @@ type FlowPort interface { // - /components/schemas/Port/properties/name // - /components/schemas/Lag/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// - /components/schemas/Lag/properties/name +// // TxName returns a string func (obj *flowPort) TxName() string { @@ -68323,6 +68711,10 @@ func (obj *flowPort) TxName() string { // - /components/schemas/Port/properties/name // - /components/schemas/Lag/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// - /components/schemas/Lag/properties/name +// // SetTxName sets the string value in the FlowPort object func (obj *flowPort) SetTxName(value string) FlowPort { @@ -68336,6 +68728,10 @@ func (obj *flowPort) SetTxName(value string) FlowPort { // - /components/schemas/Port/properties/name // - /components/schemas/Lag/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// - /components/schemas/Lag/properties/name +// // RxName returns a string func (obj *flowPort) RxName() string { @@ -68349,6 +68745,10 @@ func (obj *flowPort) RxName() string { // - /components/schemas/Port/properties/name // - /components/schemas/Lag/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// - /components/schemas/Lag/properties/name +// // RxName returns a string func (obj *flowPort) HasRxName() bool { return obj.obj.RxName != nil @@ -68360,6 +68760,10 @@ func (obj *flowPort) HasRxName() bool { // - /components/schemas/Port/properties/name // - /components/schemas/Lag/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// - /components/schemas/Lag/properties/name +// // SetRxName sets the string value in the FlowPort object func (obj *flowPort) SetRxName(value string) FlowPort { @@ -68691,6 +69095,17 @@ func (obj *flowRouter) SetMode(value FlowRouterModeEnum) FlowRouter { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // +// x-constraint: +// - /components/schemas/Device.Ethernet/properties/name +// - /components/schemas/Device.Ipv4/properties/name +// - /components/schemas/Device.Ipv6/properties/name +// - /components/schemas/Bgp.V4RouteRange/properties/name +// - /components/schemas/Bgp.V6RouteRange/properties/name +// - /components/schemas/Bgp.CMacIpRange/properties/name +// - /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name +// - /components/schemas/Isis.V4RouteRange/properties/name +// - /components/schemas/Isis.V6RouteRange/properties/name +// // TxNames returns a []string func (obj *flowRouter) TxNames() []string { if obj.obj.TxNames == nil { @@ -68712,6 +69127,17 @@ func (obj *flowRouter) TxNames() []string { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // +// x-constraint: +// - /components/schemas/Device.Ethernet/properties/name +// - /components/schemas/Device.Ipv4/properties/name +// - /components/schemas/Device.Ipv6/properties/name +// - /components/schemas/Bgp.V4RouteRange/properties/name +// - /components/schemas/Bgp.V6RouteRange/properties/name +// - /components/schemas/Bgp.CMacIpRange/properties/name +// - /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name +// - /components/schemas/Isis.V4RouteRange/properties/name +// - /components/schemas/Isis.V6RouteRange/properties/name +// // SetTxNames sets the []string value in the FlowRouter object func (obj *flowRouter) SetTxNames(value []string) FlowRouter { @@ -68736,6 +69162,17 @@ func (obj *flowRouter) SetTxNames(value []string) FlowRouter { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // +// x-constraint: +// - /components/schemas/Device.Ethernet/properties/name +// - /components/schemas/Device.Ipv4/properties/name +// - /components/schemas/Device.Ipv6/properties/name +// - /components/schemas/Bgp.V4RouteRange/properties/name +// - /components/schemas/Bgp.V6RouteRange/properties/name +// - /components/schemas/Bgp.CMacIpRange/properties/name +// - /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name +// - /components/schemas/Isis.V4RouteRange/properties/name +// - /components/schemas/Isis.V6RouteRange/properties/name +// // RxNames returns a []string func (obj *flowRouter) RxNames() []string { if obj.obj.RxNames == nil { @@ -68757,6 +69194,17 @@ func (obj *flowRouter) RxNames() []string { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // +// x-constraint: +// - /components/schemas/Device.Ethernet/properties/name +// - /components/schemas/Device.Ipv4/properties/name +// - /components/schemas/Device.Ipv6/properties/name +// - /components/schemas/Bgp.V4RouteRange/properties/name +// - /components/schemas/Bgp.V6RouteRange/properties/name +// - /components/schemas/Bgp.CMacIpRange/properties/name +// - /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name +// - /components/schemas/Isis.V4RouteRange/properties/name +// - /components/schemas/Isis.V6RouteRange/properties/name +// // SetRxNames sets the []string value in the FlowRouter object func (obj *flowRouter) SetRxNames(value []string) FlowRouter { @@ -69044,7 +69492,9 @@ func (obj *flowCustom) SetBytes(value string) FlowCustom { return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits +// in a corresponding header field for metrics per each applicable value. +// These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []FlowCustomMetricTag func (obj *flowCustom) MetricTags() FlowCustomFlowCustomMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -82246,6 +82696,9 @@ type StateProtocolLacpAdmin interface { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // LagMemberNames returns a []string func (obj *stateProtocolLacpAdmin) LagMemberNames() []string { if obj.obj.LagMemberNames == nil { @@ -82259,6 +82712,9 @@ func (obj *stateProtocolLacpAdmin) LagMemberNames() []string { // x-constraint: // - /components/schemas/Port/properties/name // +// x-constraint: +// - /components/schemas/Port/properties/name +// // SetLagMemberNames sets the []string value in the StateProtocolLacpAdmin object func (obj *stateProtocolLacpAdmin) SetLagMemberNames(value []string) StateProtocolLacpAdmin { @@ -83319,6 +83775,9 @@ type ActionProtocolBgpNotification interface { // x-constraint: // - /components/schemas/Device.Bgp/properties/name // +// x-constraint: +// - /components/schemas/Device.Bgp/properties/name +// // Names returns a []string func (obj *actionProtocolBgpNotification) Names() []string { if obj.obj.Names == nil { @@ -83332,6 +83791,9 @@ func (obj *actionProtocolBgpNotification) Names() []string { // x-constraint: // - /components/schemas/Device.Bgp/properties/name // +// x-constraint: +// - /components/schemas/Device.Bgp/properties/name +// // SetNames sets the []string value in the ActionProtocolBgpNotification object func (obj *actionProtocolBgpNotification) SetNames(value []string) ActionProtocolBgpNotification { @@ -83912,6 +84374,9 @@ type ActionProtocolBgpInitiateGracefulRestart interface { // x-constraint: // - /components/schemas/Device.Bgp/properties/name // +// x-constraint: +// - /components/schemas/Device.Bgp/properties/name +// // PeerNames returns a []string func (obj *actionProtocolBgpInitiateGracefulRestart) PeerNames() []string { if obj.obj.PeerNames == nil { @@ -83925,6 +84390,9 @@ func (obj *actionProtocolBgpInitiateGracefulRestart) PeerNames() []string { // x-constraint: // - /components/schemas/Device.Bgp/properties/name // +// x-constraint: +// - /components/schemas/Device.Bgp/properties/name +// // SetPeerNames sets the []string value in the ActionProtocolBgpInitiateGracefulRestart object func (obj *actionProtocolBgpInitiateGracefulRestart) SetPeerNames(value []string) ActionProtocolBgpInitiateGracefulRestart { @@ -85461,7 +85929,9 @@ func (obj *flowTaggedMetric) setNil() { obj.constraints = make(map[string]map[string]Constraints) } -// FlowTaggedMetric is a container for tagged flow metrics. The container is keyed by list of tags. +// FlowTaggedMetric is metrics for each set of values applicable for configured +// metric tags in ingress or egress packet header fields of corresponding flow. +// The container is keyed by list of tag-value pairs. type FlowTaggedMetric interface { Validation // Msg marshals FlowTaggedMetric to protobuf object *otg.FlowTaggedMetric @@ -97749,7 +98219,9 @@ func (obj *flowCustomMetricTag) Clone() (FlowCustomMetricTag, error) { return newObj, nil } -// FlowCustomMetricTag is description is TBD +// FlowCustomMetricTag is metric Tag can be used to enable tracking portion of or all bits +// in a corresponding header field for metrics per each applicable value. +// These would appear as tagged metrics in corresponding flow metrics. type FlowCustomMetricTag interface { Validation // Msg marshals FlowCustomMetricTag to protobuf object *otg.FlowCustomMetricTag @@ -97801,14 +98273,16 @@ type FlowCustomMetricTag interface { HasLength() bool } -// Globally unique name of an object. It also serves as the primary key for arrays of objects. +// Name used to identify the metrics associated with the values applicable +// for configured offset and length inside corresponding header field // Name returns a string func (obj *flowCustomMetricTag) Name() string { return obj.obj.Name } -// Globally unique name of an object. It also serves as the primary key for arrays of objects. +// Name used to identify the metrics associated with the values applicable +// for configured offset and length inside corresponding header field // SetName sets the string value in the FlowCustomMetricTag object func (obj *flowCustomMetricTag) SetName(value string) FlowCustomMetricTag { @@ -97816,7 +98290,7 @@ func (obj *flowCustomMetricTag) SetName(value string) FlowCustomMetricTag { return obj } -// This is in bits and relative to start of the field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *flowCustomMetricTag) Offset() int32 { @@ -97824,13 +98298,13 @@ func (obj *flowCustomMetricTag) Offset() int32 { } -// This is in bits and relative to start of the field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *flowCustomMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// This is in bits and relative to start of the field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the FlowCustomMetricTag object func (obj *flowCustomMetricTag) SetOffset(value int32) FlowCustomMetricTag { @@ -97838,7 +98312,8 @@ func (obj *flowCustomMetricTag) SetOffset(value int32) FlowCustomMetricTag { return obj } -// This is in bits +// Number of bits to track for metrics starting from configured offset +// of corresponding header field // Length returns a int32 func (obj *flowCustomMetricTag) Length() int32 { @@ -97846,13 +98321,15 @@ func (obj *flowCustomMetricTag) Length() int32 { } -// This is in bits +// Number of bits to track for metrics starting from configured offset +// of corresponding header field // Length returns a int32 func (obj *flowCustomMetricTag) HasLength() bool { return obj.obj.Length != nil } -// This is in bits +// Number of bits to track for metrics starting from configured offset +// of corresponding header field // SetLength sets the int32 value in the FlowCustomMetricTag object func (obj *flowCustomMetricTag) SetLength(value int32) FlowCustomMetricTag { @@ -97872,20 +98349,20 @@ func (obj *flowCustomMetricTag) validateObj(vObj *validation, set_default bool) if obj.obj.Offset != nil { - if *obj.obj.Offset < 0 || *obj.obj.Offset > 0 { + if *obj.obj.Offset < 0 || *obj.obj.Offset > 2147483647 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("0 <= FlowCustomMetricTag.Offset <= 0 but Got %d", *obj.obj.Offset)) + fmt.Sprintf("0 <= FlowCustomMetricTag.Offset <= 2147483647 but Got %d", *obj.obj.Offset)) } } if obj.obj.Length != nil { - if *obj.obj.Length < 1 || *obj.obj.Length > 1 { + if *obj.obj.Length < 1 || *obj.obj.Length > 2147483647 { vObj.validationErrors = append( vObj.validationErrors, - fmt.Sprintf("1 <= FlowCustomMetricTag.Length <= 1 but Got %d", *obj.obj.Length)) + fmt.Sprintf("1 <= FlowCustomMetricTag.Length <= 2147483647 but Got %d", *obj.obj.Length)) } } @@ -98314,7 +98791,7 @@ func (obj *patternFlowEthernetDst) HasAuto() bool { return obj.obj.Auto != nil } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowEthernetDstMetricTag func (obj *patternFlowEthernetDst) MetricTags() PatternFlowEthernetDstPatternFlowEthernetDstMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -98901,7 +99378,7 @@ func (obj *patternFlowEthernetSrc) SetValues(value []string) PatternFlowEthernet return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowEthernetSrcMetricTag func (obj *patternFlowEthernetSrc) MetricTags() PatternFlowEthernetSrcPatternFlowEthernetSrcMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -99513,7 +99990,7 @@ func (obj *patternFlowEthernetEtherType) HasAuto() bool { return obj.obj.Auto != nil } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowEthernetEtherTypeMetricTag func (obj *patternFlowEthernetEtherType) MetricTags() PatternFlowEthernetEtherTypePatternFlowEthernetEtherTypeMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -100106,7 +100583,7 @@ func (obj *patternFlowEthernetPfcQueue) SetValues(value []int32) PatternFlowEthe return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowEthernetPfcQueueMetricTag func (obj *patternFlowEthernetPfcQueue) MetricTags() PatternFlowEthernetPfcQueuePatternFlowEthernetPfcQueueMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -100689,7 +101166,7 @@ func (obj *patternFlowVlanPriority) SetValues(value []int32) PatternFlowVlanPrio return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowVlanPriorityMetricTag func (obj *patternFlowVlanPriority) MetricTags() PatternFlowVlanPriorityPatternFlowVlanPriorityMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -101272,7 +101749,7 @@ func (obj *patternFlowVlanCfi) SetValues(value []int32) PatternFlowVlanCfi { return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowVlanCfiMetricTag func (obj *patternFlowVlanCfi) MetricTags() PatternFlowVlanCfiPatternFlowVlanCfiMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -101855,7 +102332,7 @@ func (obj *patternFlowVlanId) SetValues(value []int32) PatternFlowVlanId { return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowVlanIdMetricTag func (obj *patternFlowVlanId) MetricTags() PatternFlowVlanIdPatternFlowVlanIdMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -102438,7 +102915,7 @@ func (obj *patternFlowVlanTpid) SetValues(value []int32) PatternFlowVlanTpid { return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowVlanTpidMetricTag func (obj *patternFlowVlanTpid) MetricTags() PatternFlowVlanTpidPatternFlowVlanTpidMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -103021,7 +103498,7 @@ func (obj *patternFlowVxlanFlags) SetValues(value []int32) PatternFlowVxlanFlags return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowVxlanFlagsMetricTag func (obj *patternFlowVxlanFlags) MetricTags() PatternFlowVxlanFlagsPatternFlowVxlanFlagsMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -103604,7 +104081,7 @@ func (obj *patternFlowVxlanReserved0) SetValues(value []int32) PatternFlowVxlanR return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowVxlanReserved0MetricTag func (obj *patternFlowVxlanReserved0) MetricTags() PatternFlowVxlanReserved0PatternFlowVxlanReserved0MetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -104221,7 +104698,7 @@ func (obj *patternFlowVxlanVni) HasAuto() bool { return obj.obj.Auto != nil } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowVxlanVniMetricTag func (obj *patternFlowVxlanVni) MetricTags() PatternFlowVxlanVniPatternFlowVxlanVniMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -104814,7 +105291,7 @@ func (obj *patternFlowVxlanReserved1) SetValues(value []int32) PatternFlowVxlanR return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowVxlanReserved1MetricTag func (obj *patternFlowVxlanReserved1) MetricTags() PatternFlowVxlanReserved1PatternFlowVxlanReserved1MetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -105397,7 +105874,7 @@ func (obj *patternFlowIpv4Version) SetValues(value []int32) PatternFlowIpv4Versi return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv4VersionMetricTag func (obj *patternFlowIpv4Version) MetricTags() PatternFlowIpv4VersionPatternFlowIpv4VersionMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -106014,7 +106491,7 @@ func (obj *patternFlowIpv4HeaderLength) HasAuto() bool { return obj.obj.Auto != nil } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv4HeaderLengthMetricTag func (obj *patternFlowIpv4HeaderLength) MetricTags() PatternFlowIpv4HeaderLengthPatternFlowIpv4HeaderLengthMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -107074,7 +107551,7 @@ func (obj *patternFlowIpv4TotalLength) HasAuto() bool { return obj.obj.Auto != nil } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv4TotalLengthMetricTag func (obj *patternFlowIpv4TotalLength) MetricTags() PatternFlowIpv4TotalLengthPatternFlowIpv4TotalLengthMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -107667,7 +108144,7 @@ func (obj *patternFlowIpv4Identification) SetValues(value []int32) PatternFlowIp return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv4IdentificationMetricTag func (obj *patternFlowIpv4Identification) MetricTags() PatternFlowIpv4IdentificationPatternFlowIpv4IdentificationMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -108250,7 +108727,7 @@ func (obj *patternFlowIpv4Reserved) SetValues(value []int32) PatternFlowIpv4Rese return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv4ReservedMetricTag func (obj *patternFlowIpv4Reserved) MetricTags() PatternFlowIpv4ReservedPatternFlowIpv4ReservedMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -108833,7 +109310,7 @@ func (obj *patternFlowIpv4DontFragment) SetValues(value []int32) PatternFlowIpv4 return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv4DontFragmentMetricTag func (obj *patternFlowIpv4DontFragment) MetricTags() PatternFlowIpv4DontFragmentPatternFlowIpv4DontFragmentMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -109416,7 +109893,7 @@ func (obj *patternFlowIpv4MoreFragments) SetValues(value []int32) PatternFlowIpv return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv4MoreFragmentsMetricTag func (obj *patternFlowIpv4MoreFragments) MetricTags() PatternFlowIpv4MoreFragmentsPatternFlowIpv4MoreFragmentsMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -109999,7 +110476,7 @@ func (obj *patternFlowIpv4FragmentOffset) SetValues(value []int32) PatternFlowIp return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv4FragmentOffsetMetricTag func (obj *patternFlowIpv4FragmentOffset) MetricTags() PatternFlowIpv4FragmentOffsetPatternFlowIpv4FragmentOffsetMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -110582,7 +111059,7 @@ func (obj *patternFlowIpv4TimeToLive) SetValues(value []int32) PatternFlowIpv4Ti return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv4TimeToLiveMetricTag func (obj *patternFlowIpv4TimeToLive) MetricTags() PatternFlowIpv4TimeToLivePatternFlowIpv4TimeToLiveMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -111199,7 +111676,7 @@ func (obj *patternFlowIpv4Protocol) HasAuto() bool { return obj.obj.Auto != nil } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv4ProtocolMetricTag func (obj *patternFlowIpv4Protocol) MetricTags() PatternFlowIpv4ProtocolPatternFlowIpv4ProtocolMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -112156,7 +112633,7 @@ func (obj *patternFlowIpv4Src) SetValues(value []string) PatternFlowIpv4Src { return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv4SrcMetricTag func (obj *patternFlowIpv4Src) MetricTags() PatternFlowIpv4SrcPatternFlowIpv4SrcMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -112734,7 +113211,7 @@ func (obj *patternFlowIpv4Dst) SetValues(value []string) PatternFlowIpv4Dst { return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv4DstMetricTag func (obj *patternFlowIpv4Dst) MetricTags() PatternFlowIpv4DstPatternFlowIpv4DstMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -113312,7 +113789,7 @@ func (obj *patternFlowIpv6Version) SetValues(value []int32) PatternFlowIpv6Versi return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv6VersionMetricTag func (obj *patternFlowIpv6Version) MetricTags() PatternFlowIpv6VersionPatternFlowIpv6VersionMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -113895,7 +114372,7 @@ func (obj *patternFlowIpv6TrafficClass) SetValues(value []int32) PatternFlowIpv6 return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv6TrafficClassMetricTag func (obj *patternFlowIpv6TrafficClass) MetricTags() PatternFlowIpv6TrafficClassPatternFlowIpv6TrafficClassMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -114478,7 +114955,7 @@ func (obj *patternFlowIpv6FlowLabel) SetValues(value []int32) PatternFlowIpv6Flo return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv6FlowLabelMetricTag func (obj *patternFlowIpv6FlowLabel) MetricTags() PatternFlowIpv6FlowLabelPatternFlowIpv6FlowLabelMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -115095,7 +115572,7 @@ func (obj *patternFlowIpv6PayloadLength) HasAuto() bool { return obj.obj.Auto != nil } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv6PayloadLengthMetricTag func (obj *patternFlowIpv6PayloadLength) MetricTags() PatternFlowIpv6PayloadLengthPatternFlowIpv6PayloadLengthMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -115722,7 +116199,7 @@ func (obj *patternFlowIpv6NextHeader) HasAuto() bool { return obj.obj.Auto != nil } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv6NextHeaderMetricTag func (obj *patternFlowIpv6NextHeader) MetricTags() PatternFlowIpv6NextHeaderPatternFlowIpv6NextHeaderMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -116315,7 +116792,7 @@ func (obj *patternFlowIpv6HopLimit) SetValues(value []int32) PatternFlowIpv6HopL return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv6HopLimitMetricTag func (obj *patternFlowIpv6HopLimit) MetricTags() PatternFlowIpv6HopLimitPatternFlowIpv6HopLimitMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -116898,7 +117375,7 @@ func (obj *patternFlowIpv6Src) SetValues(value []string) PatternFlowIpv6Src { return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv6SrcMetricTag func (obj *patternFlowIpv6Src) MetricTags() PatternFlowIpv6SrcPatternFlowIpv6SrcMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -117476,7 +117953,7 @@ func (obj *patternFlowIpv6Dst) SetValues(value []string) PatternFlowIpv6Dst { return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv6DstMetricTag func (obj *patternFlowIpv6Dst) MetricTags() PatternFlowIpv6DstPatternFlowIpv6DstMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -118054,7 +118531,7 @@ func (obj *patternFlowPfcPauseDst) SetValues(value []string) PatternFlowPfcPause return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowPfcPauseDstMetricTag func (obj *patternFlowPfcPauseDst) MetricTags() PatternFlowPfcPauseDstPatternFlowPfcPauseDstMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -118632,7 +119109,7 @@ func (obj *patternFlowPfcPauseSrc) SetValues(value []string) PatternFlowPfcPause return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowPfcPauseSrcMetricTag func (obj *patternFlowPfcPauseSrc) MetricTags() PatternFlowPfcPauseSrcPatternFlowPfcPauseSrcMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -119210,7 +119687,7 @@ func (obj *patternFlowPfcPauseEtherType) SetValues(value []int32) PatternFlowPfc return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowPfcPauseEtherTypeMetricTag func (obj *patternFlowPfcPauseEtherType) MetricTags() PatternFlowPfcPauseEtherTypePatternFlowPfcPauseEtherTypeMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -119793,7 +120270,7 @@ func (obj *patternFlowPfcPauseControlOpCode) SetValues(value []int32) PatternFlo return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowPfcPauseControlOpCodeMetricTag func (obj *patternFlowPfcPauseControlOpCode) MetricTags() PatternFlowPfcPauseControlOpCodePatternFlowPfcPauseControlOpCodeMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -120376,7 +120853,7 @@ func (obj *patternFlowPfcPauseClassEnableVector) SetValues(value []int32) Patter return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowPfcPauseClassEnableVectorMetricTag func (obj *patternFlowPfcPauseClassEnableVector) MetricTags() PatternFlowPfcPauseClassEnableVectorPatternFlowPfcPauseClassEnableVectorMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -120959,7 +121436,7 @@ func (obj *patternFlowPfcPausePauseClass0) SetValues(value []int32) PatternFlowP return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowPfcPausePauseClass0MetricTag func (obj *patternFlowPfcPausePauseClass0) MetricTags() PatternFlowPfcPausePauseClass0PatternFlowPfcPausePauseClass0MetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -121542,7 +122019,7 @@ func (obj *patternFlowPfcPausePauseClass1) SetValues(value []int32) PatternFlowP return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowPfcPausePauseClass1MetricTag func (obj *patternFlowPfcPausePauseClass1) MetricTags() PatternFlowPfcPausePauseClass1PatternFlowPfcPausePauseClass1MetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -122125,7 +122602,7 @@ func (obj *patternFlowPfcPausePauseClass2) SetValues(value []int32) PatternFlowP return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowPfcPausePauseClass2MetricTag func (obj *patternFlowPfcPausePauseClass2) MetricTags() PatternFlowPfcPausePauseClass2PatternFlowPfcPausePauseClass2MetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -122708,7 +123185,7 @@ func (obj *patternFlowPfcPausePauseClass3) SetValues(value []int32) PatternFlowP return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowPfcPausePauseClass3MetricTag func (obj *patternFlowPfcPausePauseClass3) MetricTags() PatternFlowPfcPausePauseClass3PatternFlowPfcPausePauseClass3MetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -123291,7 +123768,7 @@ func (obj *patternFlowPfcPausePauseClass4) SetValues(value []int32) PatternFlowP return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowPfcPausePauseClass4MetricTag func (obj *patternFlowPfcPausePauseClass4) MetricTags() PatternFlowPfcPausePauseClass4PatternFlowPfcPausePauseClass4MetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -123874,7 +124351,7 @@ func (obj *patternFlowPfcPausePauseClass5) SetValues(value []int32) PatternFlowP return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowPfcPausePauseClass5MetricTag func (obj *patternFlowPfcPausePauseClass5) MetricTags() PatternFlowPfcPausePauseClass5PatternFlowPfcPausePauseClass5MetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -124457,7 +124934,7 @@ func (obj *patternFlowPfcPausePauseClass6) SetValues(value []int32) PatternFlowP return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowPfcPausePauseClass6MetricTag func (obj *patternFlowPfcPausePauseClass6) MetricTags() PatternFlowPfcPausePauseClass6PatternFlowPfcPausePauseClass6MetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -125040,7 +125517,7 @@ func (obj *patternFlowPfcPausePauseClass7) SetValues(value []int32) PatternFlowP return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowPfcPausePauseClass7MetricTag func (obj *patternFlowPfcPausePauseClass7) MetricTags() PatternFlowPfcPausePauseClass7PatternFlowPfcPausePauseClass7MetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -125623,7 +126100,7 @@ func (obj *patternFlowEthernetPauseDst) SetValues(value []string) PatternFlowEth return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowEthernetPauseDstMetricTag func (obj *patternFlowEthernetPauseDst) MetricTags() PatternFlowEthernetPauseDstPatternFlowEthernetPauseDstMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -126201,7 +126678,7 @@ func (obj *patternFlowEthernetPauseSrc) SetValues(value []string) PatternFlowEth return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowEthernetPauseSrcMetricTag func (obj *patternFlowEthernetPauseSrc) MetricTags() PatternFlowEthernetPauseSrcPatternFlowEthernetPauseSrcMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -126779,7 +127256,7 @@ func (obj *patternFlowEthernetPauseEtherType) SetValues(value []int32) PatternFl return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowEthernetPauseEtherTypeMetricTag func (obj *patternFlowEthernetPauseEtherType) MetricTags() PatternFlowEthernetPauseEtherTypePatternFlowEthernetPauseEtherTypeMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -127362,7 +127839,7 @@ func (obj *patternFlowEthernetPauseControlOpCode) SetValues(value []int32) Patte return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowEthernetPauseControlOpCodeMetricTag func (obj *patternFlowEthernetPauseControlOpCode) MetricTags() PatternFlowEthernetPauseControlOpCodePatternFlowEthernetPauseControlOpCodeMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -127945,7 +128422,7 @@ func (obj *patternFlowEthernetPauseTime) SetValues(value []int32) PatternFlowEth return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowEthernetPauseTimeMetricTag func (obj *patternFlowEthernetPauseTime) MetricTags() PatternFlowEthernetPauseTimePatternFlowEthernetPauseTimeMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -128528,7 +129005,7 @@ func (obj *patternFlowTcpSrcPort) SetValues(value []int32) PatternFlowTcpSrcPort return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowTcpSrcPortMetricTag func (obj *patternFlowTcpSrcPort) MetricTags() PatternFlowTcpSrcPortPatternFlowTcpSrcPortMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -129111,7 +129588,7 @@ func (obj *patternFlowTcpDstPort) SetValues(value []int32) PatternFlowTcpDstPort return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowTcpDstPortMetricTag func (obj *patternFlowTcpDstPort) MetricTags() PatternFlowTcpDstPortPatternFlowTcpDstPortMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -129694,7 +130171,7 @@ func (obj *patternFlowTcpSeqNum) SetValues(value []int64) PatternFlowTcpSeqNum { return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowTcpSeqNumMetricTag func (obj *patternFlowTcpSeqNum) MetricTags() PatternFlowTcpSeqNumPatternFlowTcpSeqNumMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -130277,7 +130754,7 @@ func (obj *patternFlowTcpAckNum) SetValues(value []int64) PatternFlowTcpAckNum { return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowTcpAckNumMetricTag func (obj *patternFlowTcpAckNum) MetricTags() PatternFlowTcpAckNumPatternFlowTcpAckNumMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -130860,7 +131337,7 @@ func (obj *patternFlowTcpDataOffset) SetValues(value []int32) PatternFlowTcpData return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowTcpDataOffsetMetricTag func (obj *patternFlowTcpDataOffset) MetricTags() PatternFlowTcpDataOffsetPatternFlowTcpDataOffsetMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -131443,7 +131920,7 @@ func (obj *patternFlowTcpEcnNs) SetValues(value []int32) PatternFlowTcpEcnNs { return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowTcpEcnNsMetricTag func (obj *patternFlowTcpEcnNs) MetricTags() PatternFlowTcpEcnNsPatternFlowTcpEcnNsMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -132026,7 +132503,7 @@ func (obj *patternFlowTcpEcnCwr) SetValues(value []int32) PatternFlowTcpEcnCwr { return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowTcpEcnCwrMetricTag func (obj *patternFlowTcpEcnCwr) MetricTags() PatternFlowTcpEcnCwrPatternFlowTcpEcnCwrMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -132609,7 +133086,7 @@ func (obj *patternFlowTcpEcnEcho) SetValues(value []int32) PatternFlowTcpEcnEcho return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowTcpEcnEchoMetricTag func (obj *patternFlowTcpEcnEcho) MetricTags() PatternFlowTcpEcnEchoPatternFlowTcpEcnEchoMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -133192,7 +133669,7 @@ func (obj *patternFlowTcpCtlUrg) SetValues(value []int32) PatternFlowTcpCtlUrg { return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowTcpCtlUrgMetricTag func (obj *patternFlowTcpCtlUrg) MetricTags() PatternFlowTcpCtlUrgPatternFlowTcpCtlUrgMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -133775,7 +134252,7 @@ func (obj *patternFlowTcpCtlAck) SetValues(value []int32) PatternFlowTcpCtlAck { return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowTcpCtlAckMetricTag func (obj *patternFlowTcpCtlAck) MetricTags() PatternFlowTcpCtlAckPatternFlowTcpCtlAckMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -134358,7 +134835,7 @@ func (obj *patternFlowTcpCtlPsh) SetValues(value []int32) PatternFlowTcpCtlPsh { return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowTcpCtlPshMetricTag func (obj *patternFlowTcpCtlPsh) MetricTags() PatternFlowTcpCtlPshPatternFlowTcpCtlPshMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -134941,7 +135418,7 @@ func (obj *patternFlowTcpCtlRst) SetValues(value []int32) PatternFlowTcpCtlRst { return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowTcpCtlRstMetricTag func (obj *patternFlowTcpCtlRst) MetricTags() PatternFlowTcpCtlRstPatternFlowTcpCtlRstMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -135524,7 +136001,7 @@ func (obj *patternFlowTcpCtlSyn) SetValues(value []int32) PatternFlowTcpCtlSyn { return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowTcpCtlSynMetricTag func (obj *patternFlowTcpCtlSyn) MetricTags() PatternFlowTcpCtlSynPatternFlowTcpCtlSynMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -136107,7 +136584,7 @@ func (obj *patternFlowTcpCtlFin) SetValues(value []int32) PatternFlowTcpCtlFin { return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowTcpCtlFinMetricTag func (obj *patternFlowTcpCtlFin) MetricTags() PatternFlowTcpCtlFinPatternFlowTcpCtlFinMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -136690,7 +137167,7 @@ func (obj *patternFlowTcpWindow) SetValues(value []int32) PatternFlowTcpWindow { return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowTcpWindowMetricTag func (obj *patternFlowTcpWindow) MetricTags() PatternFlowTcpWindowPatternFlowTcpWindowMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -137273,7 +137750,7 @@ func (obj *patternFlowUdpSrcPort) SetValues(value []int32) PatternFlowUdpSrcPort return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowUdpSrcPortMetricTag func (obj *patternFlowUdpSrcPort) MetricTags() PatternFlowUdpSrcPortPatternFlowUdpSrcPortMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -137856,7 +138333,7 @@ func (obj *patternFlowUdpDstPort) SetValues(value []int32) PatternFlowUdpDstPort return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowUdpDstPortMetricTag func (obj *patternFlowUdpDstPort) MetricTags() PatternFlowUdpDstPortPatternFlowUdpDstPortMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -138439,7 +138916,7 @@ func (obj *patternFlowUdpLength) SetValues(value []int32) PatternFlowUdpLength { return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowUdpLengthMetricTag func (obj *patternFlowUdpLength) MetricTags() PatternFlowUdpLengthPatternFlowUdpLengthMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -139386,7 +139863,7 @@ func (obj *patternFlowGreChecksumPresent) SetValues(value []int32) PatternFlowGr return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGreChecksumPresentMetricTag func (obj *patternFlowGreChecksumPresent) MetricTags() PatternFlowGreChecksumPresentPatternFlowGreChecksumPresentMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -139969,7 +140446,7 @@ func (obj *patternFlowGreReserved0) SetValues(value []int32) PatternFlowGreReser return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGreReserved0MetricTag func (obj *patternFlowGreReserved0) MetricTags() PatternFlowGreReserved0PatternFlowGreReserved0MetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -140552,7 +141029,7 @@ func (obj *patternFlowGreVersion) SetValues(value []int32) PatternFlowGreVersion return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGreVersionMetricTag func (obj *patternFlowGreVersion) MetricTags() PatternFlowGreVersionPatternFlowGreVersionMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -141135,7 +141612,7 @@ func (obj *patternFlowGreProtocol) SetValues(value []int32) PatternFlowGreProtoc return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGreProtocolMetricTag func (obj *patternFlowGreProtocol) MetricTags() PatternFlowGreProtocolPatternFlowGreProtocolMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -142082,7 +142559,7 @@ func (obj *patternFlowGreReserved1) SetValues(value []int32) PatternFlowGreReser return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGreReserved1MetricTag func (obj *patternFlowGreReserved1) MetricTags() PatternFlowGreReserved1PatternFlowGreReserved1MetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -142665,7 +143142,7 @@ func (obj *patternFlowGtpv1Version) SetValues(value []int32) PatternFlowGtpv1Ver return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpv1VersionMetricTag func (obj *patternFlowGtpv1Version) MetricTags() PatternFlowGtpv1VersionPatternFlowGtpv1VersionMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -143248,7 +143725,7 @@ func (obj *patternFlowGtpv1ProtocolType) SetValues(value []int32) PatternFlowGtp return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpv1ProtocolTypeMetricTag func (obj *patternFlowGtpv1ProtocolType) MetricTags() PatternFlowGtpv1ProtocolTypePatternFlowGtpv1ProtocolTypeMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -143831,7 +144308,7 @@ func (obj *patternFlowGtpv1Reserved) SetValues(value []int32) PatternFlowGtpv1Re return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpv1ReservedMetricTag func (obj *patternFlowGtpv1Reserved) MetricTags() PatternFlowGtpv1ReservedPatternFlowGtpv1ReservedMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -144414,7 +144891,7 @@ func (obj *patternFlowGtpv1EFlag) SetValues(value []int32) PatternFlowGtpv1EFlag return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpv1EFlagMetricTag func (obj *patternFlowGtpv1EFlag) MetricTags() PatternFlowGtpv1EFlagPatternFlowGtpv1EFlagMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -144997,7 +145474,7 @@ func (obj *patternFlowGtpv1SFlag) SetValues(value []int32) PatternFlowGtpv1SFlag return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpv1SFlagMetricTag func (obj *patternFlowGtpv1SFlag) MetricTags() PatternFlowGtpv1SFlagPatternFlowGtpv1SFlagMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -145580,7 +146057,7 @@ func (obj *patternFlowGtpv1PnFlag) SetValues(value []int32) PatternFlowGtpv1PnFl return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpv1PnFlagMetricTag func (obj *patternFlowGtpv1PnFlag) MetricTags() PatternFlowGtpv1PnFlagPatternFlowGtpv1PnFlagMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -146163,7 +146640,7 @@ func (obj *patternFlowGtpv1MessageType) SetValues(value []int32) PatternFlowGtpv return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpv1MessageTypeMetricTag func (obj *patternFlowGtpv1MessageType) MetricTags() PatternFlowGtpv1MessageTypePatternFlowGtpv1MessageTypeMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -146746,7 +147223,7 @@ func (obj *patternFlowGtpv1MessageLength) SetValues(value []int32) PatternFlowGt return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpv1MessageLengthMetricTag func (obj *patternFlowGtpv1MessageLength) MetricTags() PatternFlowGtpv1MessageLengthPatternFlowGtpv1MessageLengthMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -147329,7 +147806,7 @@ func (obj *patternFlowGtpv1Teid) SetValues(value []int64) PatternFlowGtpv1Teid { return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpv1TeidMetricTag func (obj *patternFlowGtpv1Teid) MetricTags() PatternFlowGtpv1TeidPatternFlowGtpv1TeidMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -147912,7 +148389,7 @@ func (obj *patternFlowGtpv1SquenceNumber) SetValues(value []int32) PatternFlowGt return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpv1SquenceNumberMetricTag func (obj *patternFlowGtpv1SquenceNumber) MetricTags() PatternFlowGtpv1SquenceNumberPatternFlowGtpv1SquenceNumberMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -148495,7 +148972,7 @@ func (obj *patternFlowGtpv1NPduNumber) SetValues(value []int32) PatternFlowGtpv1 return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpv1NPduNumberMetricTag func (obj *patternFlowGtpv1NPduNumber) MetricTags() PatternFlowGtpv1NPduNumberPatternFlowGtpv1NPduNumberMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -149078,7 +149555,7 @@ func (obj *patternFlowGtpv1NextExtensionHeaderType) SetValues(value []int32) Pat return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpv1NextExtensionHeaderTypeMetricTag func (obj *patternFlowGtpv1NextExtensionHeaderType) MetricTags() PatternFlowGtpv1NextExtensionHeaderTypePatternFlowGtpv1NextExtensionHeaderTypeMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -150030,7 +150507,7 @@ func (obj *patternFlowGtpv2Version) SetValues(value []int32) PatternFlowGtpv2Ver return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpv2VersionMetricTag func (obj *patternFlowGtpv2Version) MetricTags() PatternFlowGtpv2VersionPatternFlowGtpv2VersionMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -150613,7 +151090,7 @@ func (obj *patternFlowGtpv2PiggybackingFlag) SetValues(value []int32) PatternFlo return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpv2PiggybackingFlagMetricTag func (obj *patternFlowGtpv2PiggybackingFlag) MetricTags() PatternFlowGtpv2PiggybackingFlagPatternFlowGtpv2PiggybackingFlagMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -151196,7 +151673,7 @@ func (obj *patternFlowGtpv2TeidFlag) SetValues(value []int32) PatternFlowGtpv2Te return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpv2TeidFlagMetricTag func (obj *patternFlowGtpv2TeidFlag) MetricTags() PatternFlowGtpv2TeidFlagPatternFlowGtpv2TeidFlagMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -151779,7 +152256,7 @@ func (obj *patternFlowGtpv2Spare1) SetValues(value []int32) PatternFlowGtpv2Spar return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpv2Spare1MetricTag func (obj *patternFlowGtpv2Spare1) MetricTags() PatternFlowGtpv2Spare1PatternFlowGtpv2Spare1MetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -152362,7 +152839,7 @@ func (obj *patternFlowGtpv2MessageType) SetValues(value []int32) PatternFlowGtpv return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpv2MessageTypeMetricTag func (obj *patternFlowGtpv2MessageType) MetricTags() PatternFlowGtpv2MessageTypePatternFlowGtpv2MessageTypeMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -152945,7 +153422,7 @@ func (obj *patternFlowGtpv2MessageLength) SetValues(value []int32) PatternFlowGt return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpv2MessageLengthMetricTag func (obj *patternFlowGtpv2MessageLength) MetricTags() PatternFlowGtpv2MessageLengthPatternFlowGtpv2MessageLengthMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -153528,7 +154005,7 @@ func (obj *patternFlowGtpv2Teid) SetValues(value []int64) PatternFlowGtpv2Teid { return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpv2TeidMetricTag func (obj *patternFlowGtpv2Teid) MetricTags() PatternFlowGtpv2TeidPatternFlowGtpv2TeidMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -154111,7 +154588,7 @@ func (obj *patternFlowGtpv2SequenceNumber) SetValues(value []int32) PatternFlowG return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpv2SequenceNumberMetricTag func (obj *patternFlowGtpv2SequenceNumber) MetricTags() PatternFlowGtpv2SequenceNumberPatternFlowGtpv2SequenceNumberMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -154694,7 +155171,7 @@ func (obj *patternFlowGtpv2Spare2) SetValues(value []int32) PatternFlowGtpv2Spar return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpv2Spare2MetricTag func (obj *patternFlowGtpv2Spare2) MetricTags() PatternFlowGtpv2Spare2PatternFlowGtpv2Spare2MetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -155277,7 +155754,7 @@ func (obj *patternFlowArpHardwareType) SetValues(value []int32) PatternFlowArpHa return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowArpHardwareTypeMetricTag func (obj *patternFlowArpHardwareType) MetricTags() PatternFlowArpHardwareTypePatternFlowArpHardwareTypeMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -155860,7 +156337,7 @@ func (obj *patternFlowArpProtocolType) SetValues(value []int32) PatternFlowArpPr return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowArpProtocolTypeMetricTag func (obj *patternFlowArpProtocolType) MetricTags() PatternFlowArpProtocolTypePatternFlowArpProtocolTypeMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -156443,7 +156920,7 @@ func (obj *patternFlowArpHardwareLength) SetValues(value []int32) PatternFlowArp return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowArpHardwareLengthMetricTag func (obj *patternFlowArpHardwareLength) MetricTags() PatternFlowArpHardwareLengthPatternFlowArpHardwareLengthMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -157026,7 +157503,7 @@ func (obj *patternFlowArpProtocolLength) SetValues(value []int32) PatternFlowArp return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowArpProtocolLengthMetricTag func (obj *patternFlowArpProtocolLength) MetricTags() PatternFlowArpProtocolLengthPatternFlowArpProtocolLengthMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -157609,7 +158086,7 @@ func (obj *patternFlowArpOperation) SetValues(value []int32) PatternFlowArpOpera return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowArpOperationMetricTag func (obj *patternFlowArpOperation) MetricTags() PatternFlowArpOperationPatternFlowArpOperationMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -158192,7 +158669,7 @@ func (obj *patternFlowArpSenderHardwareAddr) SetValues(value []string) PatternFl return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowArpSenderHardwareAddrMetricTag func (obj *patternFlowArpSenderHardwareAddr) MetricTags() PatternFlowArpSenderHardwareAddrPatternFlowArpSenderHardwareAddrMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -158770,7 +159247,7 @@ func (obj *patternFlowArpSenderProtocolAddr) SetValues(value []string) PatternFl return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowArpSenderProtocolAddrMetricTag func (obj *patternFlowArpSenderProtocolAddr) MetricTags() PatternFlowArpSenderProtocolAddrPatternFlowArpSenderProtocolAddrMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -159348,7 +159825,7 @@ func (obj *patternFlowArpTargetHardwareAddr) SetValues(value []string) PatternFl return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowArpTargetHardwareAddrMetricTag func (obj *patternFlowArpTargetHardwareAddr) MetricTags() PatternFlowArpTargetHardwareAddrPatternFlowArpTargetHardwareAddrMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -159926,7 +160403,7 @@ func (obj *patternFlowArpTargetProtocolAddr) SetValues(value []string) PatternFl return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowArpTargetProtocolAddrMetricTag func (obj *patternFlowArpTargetProtocolAddr) MetricTags() PatternFlowArpTargetProtocolAddrPatternFlowArpTargetProtocolAddrMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -161414,7 +161891,7 @@ func (obj *patternFlowPppAddress) SetValues(value []int32) PatternFlowPppAddress return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowPppAddressMetricTag func (obj *patternFlowPppAddress) MetricTags() PatternFlowPppAddressPatternFlowPppAddressMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -161997,7 +162474,7 @@ func (obj *patternFlowPppControl) SetValues(value []int32) PatternFlowPppControl return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowPppControlMetricTag func (obj *patternFlowPppControl) MetricTags() PatternFlowPppControlPatternFlowPppControlMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -162614,7 +163091,7 @@ func (obj *patternFlowPppProtocolType) HasAuto() bool { return obj.obj.Auto != nil } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowPppProtocolTypeMetricTag func (obj *patternFlowPppProtocolType) MetricTags() PatternFlowPppProtocolTypePatternFlowPppProtocolTypeMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -163207,7 +163684,7 @@ func (obj *patternFlowIgmpv1Version) SetValues(value []int32) PatternFlowIgmpv1V return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIgmpv1VersionMetricTag func (obj *patternFlowIgmpv1Version) MetricTags() PatternFlowIgmpv1VersionPatternFlowIgmpv1VersionMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -163790,7 +164267,7 @@ func (obj *patternFlowIgmpv1Type) SetValues(value []int32) PatternFlowIgmpv1Type return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIgmpv1TypeMetricTag func (obj *patternFlowIgmpv1Type) MetricTags() PatternFlowIgmpv1TypePatternFlowIgmpv1TypeMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -164373,7 +164850,7 @@ func (obj *patternFlowIgmpv1Unused) SetValues(value []int32) PatternFlowIgmpv1Un return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIgmpv1UnusedMetricTag func (obj *patternFlowIgmpv1Unused) MetricTags() PatternFlowIgmpv1UnusedPatternFlowIgmpv1UnusedMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -165320,7 +165797,7 @@ func (obj *patternFlowIgmpv1GroupAddress) SetValues(value []string) PatternFlowI return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIgmpv1GroupAddressMetricTag func (obj *patternFlowIgmpv1GroupAddress) MetricTags() PatternFlowIgmpv1GroupAddressPatternFlowIgmpv1GroupAddressMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -165932,7 +166409,7 @@ func (obj *patternFlowMplsLabel) HasAuto() bool { return obj.obj.Auto != nil } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowMplsLabelMetricTag func (obj *patternFlowMplsLabel) MetricTags() PatternFlowMplsLabelPatternFlowMplsLabelMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -166525,7 +167002,7 @@ func (obj *patternFlowMplsTrafficClass) SetValues(value []int32) PatternFlowMpls return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowMplsTrafficClassMetricTag func (obj *patternFlowMplsTrafficClass) MetricTags() PatternFlowMplsTrafficClassPatternFlowMplsTrafficClassMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -167142,7 +167619,7 @@ func (obj *patternFlowMplsBottomOfStack) HasAuto() bool { return obj.obj.Auto != nil } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowMplsBottomOfStackMetricTag func (obj *patternFlowMplsBottomOfStack) MetricTags() PatternFlowMplsBottomOfStackPatternFlowMplsBottomOfStackMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -167735,7 +168212,7 @@ func (obj *patternFlowMplsTimeToLive) SetValues(value []int32) PatternFlowMplsTi return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowMplsTimeToLiveMetricTag func (obj *patternFlowMplsTimeToLive) MetricTags() PatternFlowMplsTimeToLivePatternFlowMplsTimeToLiveMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -168993,6 +169470,8 @@ func (obj *actionProtocolIpv4PingRequest) Clone() (ActionProtocolIpv4PingRequest // ActionProtocolIpv4PingRequest is under Review: Most ping request parameters are still TBD. // +// Under Review: Most ping request parameters are still TBD. +// // Request for initiating ping between a single source and destination pair. // For ping request, 1 IPv4 ICMP Echo Request shall be sent and wait for ping response to either succeed or time out. The API wait timeout for each request shall be 300ms. type ActionProtocolIpv4PingRequest interface { @@ -169047,6 +169526,9 @@ type ActionProtocolIpv4PingRequest interface { // x-constraint: // - /components/schemas/Device.Ipv4/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv4/properties/name +// // SrcName returns a string func (obj *actionProtocolIpv4PingRequest) SrcName() string { @@ -169059,6 +169541,9 @@ func (obj *actionProtocolIpv4PingRequest) SrcName() string { // x-constraint: // - /components/schemas/Device.Ipv4/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv4/properties/name +// // SrcName returns a string func (obj *actionProtocolIpv4PingRequest) HasSrcName() bool { return obj.obj.SrcName != nil @@ -169069,6 +169554,9 @@ func (obj *actionProtocolIpv4PingRequest) HasSrcName() bool { // x-constraint: // - /components/schemas/Device.Ipv4/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv4/properties/name +// // SetSrcName sets the string value in the ActionProtocolIpv4PingRequest object func (obj *actionProtocolIpv4PingRequest) SetSrcName(value string) ActionProtocolIpv4PingRequest { @@ -169308,6 +169796,8 @@ func (obj *actionProtocolIpv6PingRequest) Clone() (ActionProtocolIpv6PingRequest // ActionProtocolIpv6PingRequest is under Review: Most ping request parameters are still TBD. // +// Under Review: Most ping request parameters are still TBD. +// // Request for initiating ping between a single source and destination pair. // For ping request, 1 IPv6 ICMP Echo Request shall be sent and wait for ping response to either succeed or time out. The API wait timeout for each request shall be 300ms. type ActionProtocolIpv6PingRequest interface { @@ -169362,6 +169852,9 @@ type ActionProtocolIpv6PingRequest interface { // x-constraint: // - /components/schemas/Device.Ipv6/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv6/properties/name +// // SrcName returns a string func (obj *actionProtocolIpv6PingRequest) SrcName() string { @@ -169374,6 +169867,9 @@ func (obj *actionProtocolIpv6PingRequest) SrcName() string { // x-constraint: // - /components/schemas/Device.Ipv6/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv6/properties/name +// // SrcName returns a string func (obj *actionProtocolIpv6PingRequest) HasSrcName() bool { return obj.obj.SrcName != nil @@ -169384,6 +169880,9 @@ func (obj *actionProtocolIpv6PingRequest) HasSrcName() bool { // x-constraint: // - /components/schemas/Device.Ipv6/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv6/properties/name +// // SetSrcName sets the string value in the ActionProtocolIpv6PingRequest object func (obj *actionProtocolIpv6PingRequest) SetSrcName(value string) ActionProtocolIpv6PingRequest { @@ -187506,7 +188005,7 @@ func (obj *patternFlowEthernetDstMetricTag) Clone() (PatternFlowEthernetDstMetri return newObj, nil } -// PatternFlowEthernetDstMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowEthernetDstMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowEthernetDstMetricTag interface { Validation // Msg marshals PatternFlowEthernetDstMetricTag to protobuf object *otg.PatternFlowEthernetDstMetricTag @@ -187558,14 +188057,14 @@ type PatternFlowEthernetDstMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowEthernetDstMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowEthernetDstMetricTag object func (obj *patternFlowEthernetDstMetricTag) SetName(value string) PatternFlowEthernetDstMetricTag { @@ -187573,7 +188072,7 @@ func (obj *patternFlowEthernetDstMetricTag) SetName(value string) PatternFlowEth return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowEthernetDstMetricTag) Offset() int32 { @@ -187581,13 +188080,13 @@ func (obj *patternFlowEthernetDstMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowEthernetDstMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowEthernetDstMetricTag object func (obj *patternFlowEthernetDstMetricTag) SetOffset(value int32) PatternFlowEthernetDstMetricTag { @@ -187595,7 +188094,7 @@ func (obj *patternFlowEthernetDstMetricTag) SetOffset(value int32) PatternFlowEt return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowEthernetDstMetricTag) Length() int32 { @@ -187603,13 +188102,13 @@ func (obj *patternFlowEthernetDstMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowEthernetDstMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowEthernetDstMetricTag object func (obj *patternFlowEthernetDstMetricTag) SetLength(value int32) PatternFlowEthernetDstMetricTag { @@ -188189,7 +188688,7 @@ func (obj *patternFlowEthernetSrcMetricTag) Clone() (PatternFlowEthernetSrcMetri return newObj, nil } -// PatternFlowEthernetSrcMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowEthernetSrcMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowEthernetSrcMetricTag interface { Validation // Msg marshals PatternFlowEthernetSrcMetricTag to protobuf object *otg.PatternFlowEthernetSrcMetricTag @@ -188241,14 +188740,14 @@ type PatternFlowEthernetSrcMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowEthernetSrcMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowEthernetSrcMetricTag object func (obj *patternFlowEthernetSrcMetricTag) SetName(value string) PatternFlowEthernetSrcMetricTag { @@ -188256,7 +188755,7 @@ func (obj *patternFlowEthernetSrcMetricTag) SetName(value string) PatternFlowEth return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowEthernetSrcMetricTag) Offset() int32 { @@ -188264,13 +188763,13 @@ func (obj *patternFlowEthernetSrcMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowEthernetSrcMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowEthernetSrcMetricTag object func (obj *patternFlowEthernetSrcMetricTag) SetOffset(value int32) PatternFlowEthernetSrcMetricTag { @@ -188278,7 +188777,7 @@ func (obj *patternFlowEthernetSrcMetricTag) SetOffset(value int32) PatternFlowEt return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowEthernetSrcMetricTag) Length() int32 { @@ -188286,13 +188785,13 @@ func (obj *patternFlowEthernetSrcMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowEthernetSrcMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowEthernetSrcMetricTag object func (obj *patternFlowEthernetSrcMetricTag) SetLength(value int32) PatternFlowEthernetSrcMetricTag { @@ -188872,7 +189371,7 @@ func (obj *patternFlowEthernetEtherTypeMetricTag) Clone() (PatternFlowEthernetEt return newObj, nil } -// PatternFlowEthernetEtherTypeMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowEthernetEtherTypeMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowEthernetEtherTypeMetricTag interface { Validation // Msg marshals PatternFlowEthernetEtherTypeMetricTag to protobuf object *otg.PatternFlowEthernetEtherTypeMetricTag @@ -188924,14 +189423,14 @@ type PatternFlowEthernetEtherTypeMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowEthernetEtherTypeMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowEthernetEtherTypeMetricTag object func (obj *patternFlowEthernetEtherTypeMetricTag) SetName(value string) PatternFlowEthernetEtherTypeMetricTag { @@ -188939,7 +189438,7 @@ func (obj *patternFlowEthernetEtherTypeMetricTag) SetName(value string) PatternF return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowEthernetEtherTypeMetricTag) Offset() int32 { @@ -188947,13 +189446,13 @@ func (obj *patternFlowEthernetEtherTypeMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowEthernetEtherTypeMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowEthernetEtherTypeMetricTag object func (obj *patternFlowEthernetEtherTypeMetricTag) SetOffset(value int32) PatternFlowEthernetEtherTypeMetricTag { @@ -188961,7 +189460,7 @@ func (obj *patternFlowEthernetEtherTypeMetricTag) SetOffset(value int32) Pattern return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowEthernetEtherTypeMetricTag) Length() int32 { @@ -188969,13 +189468,13 @@ func (obj *patternFlowEthernetEtherTypeMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowEthernetEtherTypeMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowEthernetEtherTypeMetricTag object func (obj *patternFlowEthernetEtherTypeMetricTag) SetLength(value int32) PatternFlowEthernetEtherTypeMetricTag { @@ -189557,7 +190056,7 @@ func (obj *patternFlowEthernetPfcQueueMetricTag) Clone() (PatternFlowEthernetPfc return newObj, nil } -// PatternFlowEthernetPfcQueueMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowEthernetPfcQueueMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowEthernetPfcQueueMetricTag interface { Validation // Msg marshals PatternFlowEthernetPfcQueueMetricTag to protobuf object *otg.PatternFlowEthernetPfcQueueMetricTag @@ -189609,14 +190108,14 @@ type PatternFlowEthernetPfcQueueMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowEthernetPfcQueueMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowEthernetPfcQueueMetricTag object func (obj *patternFlowEthernetPfcQueueMetricTag) SetName(value string) PatternFlowEthernetPfcQueueMetricTag { @@ -189624,7 +190123,7 @@ func (obj *patternFlowEthernetPfcQueueMetricTag) SetName(value string) PatternFl return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowEthernetPfcQueueMetricTag) Offset() int32 { @@ -189632,13 +190131,13 @@ func (obj *patternFlowEthernetPfcQueueMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowEthernetPfcQueueMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowEthernetPfcQueueMetricTag object func (obj *patternFlowEthernetPfcQueueMetricTag) SetOffset(value int32) PatternFlowEthernetPfcQueueMetricTag { @@ -189646,7 +190145,7 @@ func (obj *patternFlowEthernetPfcQueueMetricTag) SetOffset(value int32) PatternF return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowEthernetPfcQueueMetricTag) Length() int32 { @@ -189654,13 +190153,13 @@ func (obj *patternFlowEthernetPfcQueueMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowEthernetPfcQueueMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowEthernetPfcQueueMetricTag object func (obj *patternFlowEthernetPfcQueueMetricTag) SetLength(value int32) PatternFlowEthernetPfcQueueMetricTag { @@ -190242,7 +190741,7 @@ func (obj *patternFlowVlanPriorityMetricTag) Clone() (PatternFlowVlanPriorityMet return newObj, nil } -// PatternFlowVlanPriorityMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowVlanPriorityMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowVlanPriorityMetricTag interface { Validation // Msg marshals PatternFlowVlanPriorityMetricTag to protobuf object *otg.PatternFlowVlanPriorityMetricTag @@ -190294,14 +190793,14 @@ type PatternFlowVlanPriorityMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowVlanPriorityMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowVlanPriorityMetricTag object func (obj *patternFlowVlanPriorityMetricTag) SetName(value string) PatternFlowVlanPriorityMetricTag { @@ -190309,7 +190808,7 @@ func (obj *patternFlowVlanPriorityMetricTag) SetName(value string) PatternFlowVl return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowVlanPriorityMetricTag) Offset() int32 { @@ -190317,13 +190816,13 @@ func (obj *patternFlowVlanPriorityMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowVlanPriorityMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowVlanPriorityMetricTag object func (obj *patternFlowVlanPriorityMetricTag) SetOffset(value int32) PatternFlowVlanPriorityMetricTag { @@ -190331,7 +190830,7 @@ func (obj *patternFlowVlanPriorityMetricTag) SetOffset(value int32) PatternFlowV return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowVlanPriorityMetricTag) Length() int32 { @@ -190339,13 +190838,13 @@ func (obj *patternFlowVlanPriorityMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowVlanPriorityMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowVlanPriorityMetricTag object func (obj *patternFlowVlanPriorityMetricTag) SetLength(value int32) PatternFlowVlanPriorityMetricTag { @@ -190927,7 +191426,7 @@ func (obj *patternFlowVlanCfiMetricTag) Clone() (PatternFlowVlanCfiMetricTag, er return newObj, nil } -// PatternFlowVlanCfiMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowVlanCfiMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowVlanCfiMetricTag interface { Validation // Msg marshals PatternFlowVlanCfiMetricTag to protobuf object *otg.PatternFlowVlanCfiMetricTag @@ -190979,14 +191478,14 @@ type PatternFlowVlanCfiMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowVlanCfiMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowVlanCfiMetricTag object func (obj *patternFlowVlanCfiMetricTag) SetName(value string) PatternFlowVlanCfiMetricTag { @@ -190994,7 +191493,7 @@ func (obj *patternFlowVlanCfiMetricTag) SetName(value string) PatternFlowVlanCfi return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowVlanCfiMetricTag) Offset() int32 { @@ -191002,13 +191501,13 @@ func (obj *patternFlowVlanCfiMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowVlanCfiMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowVlanCfiMetricTag object func (obj *patternFlowVlanCfiMetricTag) SetOffset(value int32) PatternFlowVlanCfiMetricTag { @@ -191016,7 +191515,7 @@ func (obj *patternFlowVlanCfiMetricTag) SetOffset(value int32) PatternFlowVlanCf return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowVlanCfiMetricTag) Length() int32 { @@ -191024,13 +191523,13 @@ func (obj *patternFlowVlanCfiMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowVlanCfiMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowVlanCfiMetricTag object func (obj *patternFlowVlanCfiMetricTag) SetLength(value int32) PatternFlowVlanCfiMetricTag { @@ -191612,7 +192111,7 @@ func (obj *patternFlowVlanIdMetricTag) Clone() (PatternFlowVlanIdMetricTag, erro return newObj, nil } -// PatternFlowVlanIdMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowVlanIdMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowVlanIdMetricTag interface { Validation // Msg marshals PatternFlowVlanIdMetricTag to protobuf object *otg.PatternFlowVlanIdMetricTag @@ -191664,14 +192163,14 @@ type PatternFlowVlanIdMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowVlanIdMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowVlanIdMetricTag object func (obj *patternFlowVlanIdMetricTag) SetName(value string) PatternFlowVlanIdMetricTag { @@ -191679,7 +192178,7 @@ func (obj *patternFlowVlanIdMetricTag) SetName(value string) PatternFlowVlanIdMe return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowVlanIdMetricTag) Offset() int32 { @@ -191687,13 +192186,13 @@ func (obj *patternFlowVlanIdMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowVlanIdMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowVlanIdMetricTag object func (obj *patternFlowVlanIdMetricTag) SetOffset(value int32) PatternFlowVlanIdMetricTag { @@ -191701,7 +192200,7 @@ func (obj *patternFlowVlanIdMetricTag) SetOffset(value int32) PatternFlowVlanIdM return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowVlanIdMetricTag) Length() int32 { @@ -191709,13 +192208,13 @@ func (obj *patternFlowVlanIdMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowVlanIdMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowVlanIdMetricTag object func (obj *patternFlowVlanIdMetricTag) SetLength(value int32) PatternFlowVlanIdMetricTag { @@ -192297,7 +192796,7 @@ func (obj *patternFlowVlanTpidMetricTag) Clone() (PatternFlowVlanTpidMetricTag, return newObj, nil } -// PatternFlowVlanTpidMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowVlanTpidMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowVlanTpidMetricTag interface { Validation // Msg marshals PatternFlowVlanTpidMetricTag to protobuf object *otg.PatternFlowVlanTpidMetricTag @@ -192349,14 +192848,14 @@ type PatternFlowVlanTpidMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowVlanTpidMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowVlanTpidMetricTag object func (obj *patternFlowVlanTpidMetricTag) SetName(value string) PatternFlowVlanTpidMetricTag { @@ -192364,7 +192863,7 @@ func (obj *patternFlowVlanTpidMetricTag) SetName(value string) PatternFlowVlanTp return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowVlanTpidMetricTag) Offset() int32 { @@ -192372,13 +192871,13 @@ func (obj *patternFlowVlanTpidMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowVlanTpidMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowVlanTpidMetricTag object func (obj *patternFlowVlanTpidMetricTag) SetOffset(value int32) PatternFlowVlanTpidMetricTag { @@ -192386,7 +192885,7 @@ func (obj *patternFlowVlanTpidMetricTag) SetOffset(value int32) PatternFlowVlanT return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowVlanTpidMetricTag) Length() int32 { @@ -192394,13 +192893,13 @@ func (obj *patternFlowVlanTpidMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowVlanTpidMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowVlanTpidMetricTag object func (obj *patternFlowVlanTpidMetricTag) SetLength(value int32) PatternFlowVlanTpidMetricTag { @@ -192982,7 +193481,7 @@ func (obj *patternFlowVxlanFlagsMetricTag) Clone() (PatternFlowVxlanFlagsMetricT return newObj, nil } -// PatternFlowVxlanFlagsMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowVxlanFlagsMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowVxlanFlagsMetricTag interface { Validation // Msg marshals PatternFlowVxlanFlagsMetricTag to protobuf object *otg.PatternFlowVxlanFlagsMetricTag @@ -193034,14 +193533,14 @@ type PatternFlowVxlanFlagsMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowVxlanFlagsMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowVxlanFlagsMetricTag object func (obj *patternFlowVxlanFlagsMetricTag) SetName(value string) PatternFlowVxlanFlagsMetricTag { @@ -193049,7 +193548,7 @@ func (obj *patternFlowVxlanFlagsMetricTag) SetName(value string) PatternFlowVxla return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowVxlanFlagsMetricTag) Offset() int32 { @@ -193057,13 +193556,13 @@ func (obj *patternFlowVxlanFlagsMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowVxlanFlagsMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowVxlanFlagsMetricTag object func (obj *patternFlowVxlanFlagsMetricTag) SetOffset(value int32) PatternFlowVxlanFlagsMetricTag { @@ -193071,7 +193570,7 @@ func (obj *patternFlowVxlanFlagsMetricTag) SetOffset(value int32) PatternFlowVxl return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowVxlanFlagsMetricTag) Length() int32 { @@ -193079,13 +193578,13 @@ func (obj *patternFlowVxlanFlagsMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowVxlanFlagsMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowVxlanFlagsMetricTag object func (obj *patternFlowVxlanFlagsMetricTag) SetLength(value int32) PatternFlowVxlanFlagsMetricTag { @@ -193667,7 +194166,7 @@ func (obj *patternFlowVxlanReserved0MetricTag) Clone() (PatternFlowVxlanReserved return newObj, nil } -// PatternFlowVxlanReserved0MetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowVxlanReserved0MetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowVxlanReserved0MetricTag interface { Validation // Msg marshals PatternFlowVxlanReserved0MetricTag to protobuf object *otg.PatternFlowVxlanReserved0MetricTag @@ -193719,14 +194218,14 @@ type PatternFlowVxlanReserved0MetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowVxlanReserved0MetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowVxlanReserved0MetricTag object func (obj *patternFlowVxlanReserved0MetricTag) SetName(value string) PatternFlowVxlanReserved0MetricTag { @@ -193734,7 +194233,7 @@ func (obj *patternFlowVxlanReserved0MetricTag) SetName(value string) PatternFlow return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowVxlanReserved0MetricTag) Offset() int32 { @@ -193742,13 +194241,13 @@ func (obj *patternFlowVxlanReserved0MetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowVxlanReserved0MetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowVxlanReserved0MetricTag object func (obj *patternFlowVxlanReserved0MetricTag) SetOffset(value int32) PatternFlowVxlanReserved0MetricTag { @@ -193756,7 +194255,7 @@ func (obj *patternFlowVxlanReserved0MetricTag) SetOffset(value int32) PatternFlo return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowVxlanReserved0MetricTag) Length() int32 { @@ -193764,13 +194263,13 @@ func (obj *patternFlowVxlanReserved0MetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowVxlanReserved0MetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowVxlanReserved0MetricTag object func (obj *patternFlowVxlanReserved0MetricTag) SetLength(value int32) PatternFlowVxlanReserved0MetricTag { @@ -194352,7 +194851,7 @@ func (obj *patternFlowVxlanVniMetricTag) Clone() (PatternFlowVxlanVniMetricTag, return newObj, nil } -// PatternFlowVxlanVniMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowVxlanVniMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowVxlanVniMetricTag interface { Validation // Msg marshals PatternFlowVxlanVniMetricTag to protobuf object *otg.PatternFlowVxlanVniMetricTag @@ -194404,14 +194903,14 @@ type PatternFlowVxlanVniMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowVxlanVniMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowVxlanVniMetricTag object func (obj *patternFlowVxlanVniMetricTag) SetName(value string) PatternFlowVxlanVniMetricTag { @@ -194419,7 +194918,7 @@ func (obj *patternFlowVxlanVniMetricTag) SetName(value string) PatternFlowVxlanV return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowVxlanVniMetricTag) Offset() int32 { @@ -194427,13 +194926,13 @@ func (obj *patternFlowVxlanVniMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowVxlanVniMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowVxlanVniMetricTag object func (obj *patternFlowVxlanVniMetricTag) SetOffset(value int32) PatternFlowVxlanVniMetricTag { @@ -194441,7 +194940,7 @@ func (obj *patternFlowVxlanVniMetricTag) SetOffset(value int32) PatternFlowVxlan return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowVxlanVniMetricTag) Length() int32 { @@ -194449,13 +194948,13 @@ func (obj *patternFlowVxlanVniMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowVxlanVniMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowVxlanVniMetricTag object func (obj *patternFlowVxlanVniMetricTag) SetLength(value int32) PatternFlowVxlanVniMetricTag { @@ -195037,7 +195536,7 @@ func (obj *patternFlowVxlanReserved1MetricTag) Clone() (PatternFlowVxlanReserved return newObj, nil } -// PatternFlowVxlanReserved1MetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowVxlanReserved1MetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowVxlanReserved1MetricTag interface { Validation // Msg marshals PatternFlowVxlanReserved1MetricTag to protobuf object *otg.PatternFlowVxlanReserved1MetricTag @@ -195089,14 +195588,14 @@ type PatternFlowVxlanReserved1MetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowVxlanReserved1MetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowVxlanReserved1MetricTag object func (obj *patternFlowVxlanReserved1MetricTag) SetName(value string) PatternFlowVxlanReserved1MetricTag { @@ -195104,7 +195603,7 @@ func (obj *patternFlowVxlanReserved1MetricTag) SetName(value string) PatternFlow return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowVxlanReserved1MetricTag) Offset() int32 { @@ -195112,13 +195611,13 @@ func (obj *patternFlowVxlanReserved1MetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowVxlanReserved1MetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowVxlanReserved1MetricTag object func (obj *patternFlowVxlanReserved1MetricTag) SetOffset(value int32) PatternFlowVxlanReserved1MetricTag { @@ -195126,7 +195625,7 @@ func (obj *patternFlowVxlanReserved1MetricTag) SetOffset(value int32) PatternFlo return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowVxlanReserved1MetricTag) Length() int32 { @@ -195134,13 +195633,13 @@ func (obj *patternFlowVxlanReserved1MetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowVxlanReserved1MetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowVxlanReserved1MetricTag object func (obj *patternFlowVxlanReserved1MetricTag) SetLength(value int32) PatternFlowVxlanReserved1MetricTag { @@ -195722,7 +196221,7 @@ func (obj *patternFlowIpv4VersionMetricTag) Clone() (PatternFlowIpv4VersionMetri return newObj, nil } -// PatternFlowIpv4VersionMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv4VersionMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv4VersionMetricTag interface { Validation // Msg marshals PatternFlowIpv4VersionMetricTag to protobuf object *otg.PatternFlowIpv4VersionMetricTag @@ -195774,14 +196273,14 @@ type PatternFlowIpv4VersionMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv4VersionMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4VersionMetricTag object func (obj *patternFlowIpv4VersionMetricTag) SetName(value string) PatternFlowIpv4VersionMetricTag { @@ -195789,7 +196288,7 @@ func (obj *patternFlowIpv4VersionMetricTag) SetName(value string) PatternFlowIpv return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4VersionMetricTag) Offset() int32 { @@ -195797,13 +196296,13 @@ func (obj *patternFlowIpv4VersionMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4VersionMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv4VersionMetricTag object func (obj *patternFlowIpv4VersionMetricTag) SetOffset(value int32) PatternFlowIpv4VersionMetricTag { @@ -195811,7 +196310,7 @@ func (obj *patternFlowIpv4VersionMetricTag) SetOffset(value int32) PatternFlowIp return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4VersionMetricTag) Length() int32 { @@ -195819,13 +196318,13 @@ func (obj *patternFlowIpv4VersionMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4VersionMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv4VersionMetricTag object func (obj *patternFlowIpv4VersionMetricTag) SetLength(value int32) PatternFlowIpv4VersionMetricTag { @@ -196407,7 +196906,7 @@ func (obj *patternFlowIpv4HeaderLengthMetricTag) Clone() (PatternFlowIpv4HeaderL return newObj, nil } -// PatternFlowIpv4HeaderLengthMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv4HeaderLengthMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv4HeaderLengthMetricTag interface { Validation // Msg marshals PatternFlowIpv4HeaderLengthMetricTag to protobuf object *otg.PatternFlowIpv4HeaderLengthMetricTag @@ -196459,14 +196958,14 @@ type PatternFlowIpv4HeaderLengthMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv4HeaderLengthMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4HeaderLengthMetricTag object func (obj *patternFlowIpv4HeaderLengthMetricTag) SetName(value string) PatternFlowIpv4HeaderLengthMetricTag { @@ -196474,7 +196973,7 @@ func (obj *patternFlowIpv4HeaderLengthMetricTag) SetName(value string) PatternFl return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4HeaderLengthMetricTag) Offset() int32 { @@ -196482,13 +196981,13 @@ func (obj *patternFlowIpv4HeaderLengthMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4HeaderLengthMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv4HeaderLengthMetricTag object func (obj *patternFlowIpv4HeaderLengthMetricTag) SetOffset(value int32) PatternFlowIpv4HeaderLengthMetricTag { @@ -196496,7 +196995,7 @@ func (obj *patternFlowIpv4HeaderLengthMetricTag) SetOffset(value int32) PatternF return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4HeaderLengthMetricTag) Length() int32 { @@ -196504,13 +197003,13 @@ func (obj *patternFlowIpv4HeaderLengthMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4HeaderLengthMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv4HeaderLengthMetricTag object func (obj *patternFlowIpv4HeaderLengthMetricTag) SetLength(value int32) PatternFlowIpv4HeaderLengthMetricTag { @@ -197284,7 +197783,7 @@ func (obj *patternFlowIpv4PriorityRaw) SetValues(value []int32) PatternFlowIpv4P return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv4PriorityRawMetricTag func (obj *patternFlowIpv4PriorityRaw) MetricTags() PatternFlowIpv4PriorityRawPatternFlowIpv4PriorityRawMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -198499,7 +198998,7 @@ func (obj *patternFlowIpv4TotalLengthMetricTag) Clone() (PatternFlowIpv4TotalLen return newObj, nil } -// PatternFlowIpv4TotalLengthMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv4TotalLengthMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv4TotalLengthMetricTag interface { Validation // Msg marshals PatternFlowIpv4TotalLengthMetricTag to protobuf object *otg.PatternFlowIpv4TotalLengthMetricTag @@ -198551,14 +199050,14 @@ type PatternFlowIpv4TotalLengthMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv4TotalLengthMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4TotalLengthMetricTag object func (obj *patternFlowIpv4TotalLengthMetricTag) SetName(value string) PatternFlowIpv4TotalLengthMetricTag { @@ -198566,7 +199065,7 @@ func (obj *patternFlowIpv4TotalLengthMetricTag) SetName(value string) PatternFlo return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4TotalLengthMetricTag) Offset() int32 { @@ -198574,13 +199073,13 @@ func (obj *patternFlowIpv4TotalLengthMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4TotalLengthMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv4TotalLengthMetricTag object func (obj *patternFlowIpv4TotalLengthMetricTag) SetOffset(value int32) PatternFlowIpv4TotalLengthMetricTag { @@ -198588,7 +199087,7 @@ func (obj *patternFlowIpv4TotalLengthMetricTag) SetOffset(value int32) PatternFl return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4TotalLengthMetricTag) Length() int32 { @@ -198596,13 +199095,13 @@ func (obj *patternFlowIpv4TotalLengthMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4TotalLengthMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv4TotalLengthMetricTag object func (obj *patternFlowIpv4TotalLengthMetricTag) SetLength(value int32) PatternFlowIpv4TotalLengthMetricTag { @@ -199184,7 +199683,7 @@ func (obj *patternFlowIpv4IdentificationMetricTag) Clone() (PatternFlowIpv4Ident return newObj, nil } -// PatternFlowIpv4IdentificationMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv4IdentificationMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv4IdentificationMetricTag interface { Validation // Msg marshals PatternFlowIpv4IdentificationMetricTag to protobuf object *otg.PatternFlowIpv4IdentificationMetricTag @@ -199236,14 +199735,14 @@ type PatternFlowIpv4IdentificationMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv4IdentificationMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4IdentificationMetricTag object func (obj *patternFlowIpv4IdentificationMetricTag) SetName(value string) PatternFlowIpv4IdentificationMetricTag { @@ -199251,7 +199750,7 @@ func (obj *patternFlowIpv4IdentificationMetricTag) SetName(value string) Pattern return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4IdentificationMetricTag) Offset() int32 { @@ -199259,13 +199758,13 @@ func (obj *patternFlowIpv4IdentificationMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4IdentificationMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv4IdentificationMetricTag object func (obj *patternFlowIpv4IdentificationMetricTag) SetOffset(value int32) PatternFlowIpv4IdentificationMetricTag { @@ -199273,7 +199772,7 @@ func (obj *patternFlowIpv4IdentificationMetricTag) SetOffset(value int32) Patter return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4IdentificationMetricTag) Length() int32 { @@ -199281,13 +199780,13 @@ func (obj *patternFlowIpv4IdentificationMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4IdentificationMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv4IdentificationMetricTag object func (obj *patternFlowIpv4IdentificationMetricTag) SetLength(value int32) PatternFlowIpv4IdentificationMetricTag { @@ -199869,7 +200368,7 @@ func (obj *patternFlowIpv4ReservedMetricTag) Clone() (PatternFlowIpv4ReservedMet return newObj, nil } -// PatternFlowIpv4ReservedMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv4ReservedMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv4ReservedMetricTag interface { Validation // Msg marshals PatternFlowIpv4ReservedMetricTag to protobuf object *otg.PatternFlowIpv4ReservedMetricTag @@ -199921,14 +200420,14 @@ type PatternFlowIpv4ReservedMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv4ReservedMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4ReservedMetricTag object func (obj *patternFlowIpv4ReservedMetricTag) SetName(value string) PatternFlowIpv4ReservedMetricTag { @@ -199936,7 +200435,7 @@ func (obj *patternFlowIpv4ReservedMetricTag) SetName(value string) PatternFlowIp return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4ReservedMetricTag) Offset() int32 { @@ -199944,13 +200443,13 @@ func (obj *patternFlowIpv4ReservedMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4ReservedMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv4ReservedMetricTag object func (obj *patternFlowIpv4ReservedMetricTag) SetOffset(value int32) PatternFlowIpv4ReservedMetricTag { @@ -199958,7 +200457,7 @@ func (obj *patternFlowIpv4ReservedMetricTag) SetOffset(value int32) PatternFlowI return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4ReservedMetricTag) Length() int32 { @@ -199966,13 +200465,13 @@ func (obj *patternFlowIpv4ReservedMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4ReservedMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv4ReservedMetricTag object func (obj *patternFlowIpv4ReservedMetricTag) SetLength(value int32) PatternFlowIpv4ReservedMetricTag { @@ -200554,7 +201053,7 @@ func (obj *patternFlowIpv4DontFragmentMetricTag) Clone() (PatternFlowIpv4DontFra return newObj, nil } -// PatternFlowIpv4DontFragmentMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv4DontFragmentMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv4DontFragmentMetricTag interface { Validation // Msg marshals PatternFlowIpv4DontFragmentMetricTag to protobuf object *otg.PatternFlowIpv4DontFragmentMetricTag @@ -200606,14 +201105,14 @@ type PatternFlowIpv4DontFragmentMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv4DontFragmentMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4DontFragmentMetricTag object func (obj *patternFlowIpv4DontFragmentMetricTag) SetName(value string) PatternFlowIpv4DontFragmentMetricTag { @@ -200621,7 +201120,7 @@ func (obj *patternFlowIpv4DontFragmentMetricTag) SetName(value string) PatternFl return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4DontFragmentMetricTag) Offset() int32 { @@ -200629,13 +201128,13 @@ func (obj *patternFlowIpv4DontFragmentMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4DontFragmentMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv4DontFragmentMetricTag object func (obj *patternFlowIpv4DontFragmentMetricTag) SetOffset(value int32) PatternFlowIpv4DontFragmentMetricTag { @@ -200643,7 +201142,7 @@ func (obj *patternFlowIpv4DontFragmentMetricTag) SetOffset(value int32) PatternF return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4DontFragmentMetricTag) Length() int32 { @@ -200651,13 +201150,13 @@ func (obj *patternFlowIpv4DontFragmentMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4DontFragmentMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv4DontFragmentMetricTag object func (obj *patternFlowIpv4DontFragmentMetricTag) SetLength(value int32) PatternFlowIpv4DontFragmentMetricTag { @@ -201239,7 +201738,7 @@ func (obj *patternFlowIpv4MoreFragmentsMetricTag) Clone() (PatternFlowIpv4MoreFr return newObj, nil } -// PatternFlowIpv4MoreFragmentsMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv4MoreFragmentsMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv4MoreFragmentsMetricTag interface { Validation // Msg marshals PatternFlowIpv4MoreFragmentsMetricTag to protobuf object *otg.PatternFlowIpv4MoreFragmentsMetricTag @@ -201291,14 +201790,14 @@ type PatternFlowIpv4MoreFragmentsMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv4MoreFragmentsMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4MoreFragmentsMetricTag object func (obj *patternFlowIpv4MoreFragmentsMetricTag) SetName(value string) PatternFlowIpv4MoreFragmentsMetricTag { @@ -201306,7 +201805,7 @@ func (obj *patternFlowIpv4MoreFragmentsMetricTag) SetName(value string) PatternF return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4MoreFragmentsMetricTag) Offset() int32 { @@ -201314,13 +201813,13 @@ func (obj *patternFlowIpv4MoreFragmentsMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4MoreFragmentsMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv4MoreFragmentsMetricTag object func (obj *patternFlowIpv4MoreFragmentsMetricTag) SetOffset(value int32) PatternFlowIpv4MoreFragmentsMetricTag { @@ -201328,7 +201827,7 @@ func (obj *patternFlowIpv4MoreFragmentsMetricTag) SetOffset(value int32) Pattern return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4MoreFragmentsMetricTag) Length() int32 { @@ -201336,13 +201835,13 @@ func (obj *patternFlowIpv4MoreFragmentsMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4MoreFragmentsMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv4MoreFragmentsMetricTag object func (obj *patternFlowIpv4MoreFragmentsMetricTag) SetLength(value int32) PatternFlowIpv4MoreFragmentsMetricTag { @@ -201924,7 +202423,7 @@ func (obj *patternFlowIpv4FragmentOffsetMetricTag) Clone() (PatternFlowIpv4Fragm return newObj, nil } -// PatternFlowIpv4FragmentOffsetMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv4FragmentOffsetMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv4FragmentOffsetMetricTag interface { Validation // Msg marshals PatternFlowIpv4FragmentOffsetMetricTag to protobuf object *otg.PatternFlowIpv4FragmentOffsetMetricTag @@ -201976,14 +202475,14 @@ type PatternFlowIpv4FragmentOffsetMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv4FragmentOffsetMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4FragmentOffsetMetricTag object func (obj *patternFlowIpv4FragmentOffsetMetricTag) SetName(value string) PatternFlowIpv4FragmentOffsetMetricTag { @@ -201991,7 +202490,7 @@ func (obj *patternFlowIpv4FragmentOffsetMetricTag) SetName(value string) Pattern return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4FragmentOffsetMetricTag) Offset() int32 { @@ -201999,13 +202498,13 @@ func (obj *patternFlowIpv4FragmentOffsetMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4FragmentOffsetMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv4FragmentOffsetMetricTag object func (obj *patternFlowIpv4FragmentOffsetMetricTag) SetOffset(value int32) PatternFlowIpv4FragmentOffsetMetricTag { @@ -202013,7 +202512,7 @@ func (obj *patternFlowIpv4FragmentOffsetMetricTag) SetOffset(value int32) Patter return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4FragmentOffsetMetricTag) Length() int32 { @@ -202021,13 +202520,13 @@ func (obj *patternFlowIpv4FragmentOffsetMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4FragmentOffsetMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv4FragmentOffsetMetricTag object func (obj *patternFlowIpv4FragmentOffsetMetricTag) SetLength(value int32) PatternFlowIpv4FragmentOffsetMetricTag { @@ -202609,7 +203108,7 @@ func (obj *patternFlowIpv4TimeToLiveMetricTag) Clone() (PatternFlowIpv4TimeToLiv return newObj, nil } -// PatternFlowIpv4TimeToLiveMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv4TimeToLiveMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv4TimeToLiveMetricTag interface { Validation // Msg marshals PatternFlowIpv4TimeToLiveMetricTag to protobuf object *otg.PatternFlowIpv4TimeToLiveMetricTag @@ -202661,14 +203160,14 @@ type PatternFlowIpv4TimeToLiveMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv4TimeToLiveMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4TimeToLiveMetricTag object func (obj *patternFlowIpv4TimeToLiveMetricTag) SetName(value string) PatternFlowIpv4TimeToLiveMetricTag { @@ -202676,7 +203175,7 @@ func (obj *patternFlowIpv4TimeToLiveMetricTag) SetName(value string) PatternFlow return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4TimeToLiveMetricTag) Offset() int32 { @@ -202684,13 +203183,13 @@ func (obj *patternFlowIpv4TimeToLiveMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4TimeToLiveMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv4TimeToLiveMetricTag object func (obj *patternFlowIpv4TimeToLiveMetricTag) SetOffset(value int32) PatternFlowIpv4TimeToLiveMetricTag { @@ -202698,7 +203197,7 @@ func (obj *patternFlowIpv4TimeToLiveMetricTag) SetOffset(value int32) PatternFlo return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4TimeToLiveMetricTag) Length() int32 { @@ -202706,13 +203205,13 @@ func (obj *patternFlowIpv4TimeToLiveMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4TimeToLiveMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv4TimeToLiveMetricTag object func (obj *patternFlowIpv4TimeToLiveMetricTag) SetLength(value int32) PatternFlowIpv4TimeToLiveMetricTag { @@ -203294,7 +203793,7 @@ func (obj *patternFlowIpv4ProtocolMetricTag) Clone() (PatternFlowIpv4ProtocolMet return newObj, nil } -// PatternFlowIpv4ProtocolMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv4ProtocolMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv4ProtocolMetricTag interface { Validation // Msg marshals PatternFlowIpv4ProtocolMetricTag to protobuf object *otg.PatternFlowIpv4ProtocolMetricTag @@ -203346,14 +203845,14 @@ type PatternFlowIpv4ProtocolMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv4ProtocolMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4ProtocolMetricTag object func (obj *patternFlowIpv4ProtocolMetricTag) SetName(value string) PatternFlowIpv4ProtocolMetricTag { @@ -203361,7 +203860,7 @@ func (obj *patternFlowIpv4ProtocolMetricTag) SetName(value string) PatternFlowIp return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4ProtocolMetricTag) Offset() int32 { @@ -203369,13 +203868,13 @@ func (obj *patternFlowIpv4ProtocolMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4ProtocolMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv4ProtocolMetricTag object func (obj *patternFlowIpv4ProtocolMetricTag) SetOffset(value int32) PatternFlowIpv4ProtocolMetricTag { @@ -203383,7 +203882,7 @@ func (obj *patternFlowIpv4ProtocolMetricTag) SetOffset(value int32) PatternFlowI return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4ProtocolMetricTag) Length() int32 { @@ -203391,13 +203890,13 @@ func (obj *patternFlowIpv4ProtocolMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4ProtocolMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv4ProtocolMetricTag object func (obj *patternFlowIpv4ProtocolMetricTag) SetLength(value int32) PatternFlowIpv4ProtocolMetricTag { @@ -203979,7 +204478,7 @@ func (obj *patternFlowIpv4SrcMetricTag) Clone() (PatternFlowIpv4SrcMetricTag, er return newObj, nil } -// PatternFlowIpv4SrcMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv4SrcMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv4SrcMetricTag interface { Validation // Msg marshals PatternFlowIpv4SrcMetricTag to protobuf object *otg.PatternFlowIpv4SrcMetricTag @@ -204031,14 +204530,14 @@ type PatternFlowIpv4SrcMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv4SrcMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4SrcMetricTag object func (obj *patternFlowIpv4SrcMetricTag) SetName(value string) PatternFlowIpv4SrcMetricTag { @@ -204046,7 +204545,7 @@ func (obj *patternFlowIpv4SrcMetricTag) SetName(value string) PatternFlowIpv4Src return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4SrcMetricTag) Offset() int32 { @@ -204054,13 +204553,13 @@ func (obj *patternFlowIpv4SrcMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4SrcMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv4SrcMetricTag object func (obj *patternFlowIpv4SrcMetricTag) SetOffset(value int32) PatternFlowIpv4SrcMetricTag { @@ -204068,7 +204567,7 @@ func (obj *patternFlowIpv4SrcMetricTag) SetOffset(value int32) PatternFlowIpv4Sr return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4SrcMetricTag) Length() int32 { @@ -204076,13 +204575,13 @@ func (obj *patternFlowIpv4SrcMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4SrcMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv4SrcMetricTag object func (obj *patternFlowIpv4SrcMetricTag) SetLength(value int32) PatternFlowIpv4SrcMetricTag { @@ -204662,7 +205161,7 @@ func (obj *patternFlowIpv4DstMetricTag) Clone() (PatternFlowIpv4DstMetricTag, er return newObj, nil } -// PatternFlowIpv4DstMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv4DstMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv4DstMetricTag interface { Validation // Msg marshals PatternFlowIpv4DstMetricTag to protobuf object *otg.PatternFlowIpv4DstMetricTag @@ -204714,14 +205213,14 @@ type PatternFlowIpv4DstMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv4DstMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4DstMetricTag object func (obj *patternFlowIpv4DstMetricTag) SetName(value string) PatternFlowIpv4DstMetricTag { @@ -204729,7 +205228,7 @@ func (obj *patternFlowIpv4DstMetricTag) SetName(value string) PatternFlowIpv4Dst return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4DstMetricTag) Offset() int32 { @@ -204737,13 +205236,13 @@ func (obj *patternFlowIpv4DstMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4DstMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv4DstMetricTag object func (obj *patternFlowIpv4DstMetricTag) SetOffset(value int32) PatternFlowIpv4DstMetricTag { @@ -204751,7 +205250,7 @@ func (obj *patternFlowIpv4DstMetricTag) SetOffset(value int32) PatternFlowIpv4Ds return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4DstMetricTag) Length() int32 { @@ -204759,13 +205258,13 @@ func (obj *patternFlowIpv4DstMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4DstMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv4DstMetricTag object func (obj *patternFlowIpv4DstMetricTag) SetLength(value int32) PatternFlowIpv4DstMetricTag { @@ -205345,7 +205844,7 @@ func (obj *patternFlowIpv6VersionMetricTag) Clone() (PatternFlowIpv6VersionMetri return newObj, nil } -// PatternFlowIpv6VersionMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv6VersionMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv6VersionMetricTag interface { Validation // Msg marshals PatternFlowIpv6VersionMetricTag to protobuf object *otg.PatternFlowIpv6VersionMetricTag @@ -205397,14 +205896,14 @@ type PatternFlowIpv6VersionMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv6VersionMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv6VersionMetricTag object func (obj *patternFlowIpv6VersionMetricTag) SetName(value string) PatternFlowIpv6VersionMetricTag { @@ -205412,7 +205911,7 @@ func (obj *patternFlowIpv6VersionMetricTag) SetName(value string) PatternFlowIpv return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv6VersionMetricTag) Offset() int32 { @@ -205420,13 +205919,13 @@ func (obj *patternFlowIpv6VersionMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv6VersionMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv6VersionMetricTag object func (obj *patternFlowIpv6VersionMetricTag) SetOffset(value int32) PatternFlowIpv6VersionMetricTag { @@ -205434,7 +205933,7 @@ func (obj *patternFlowIpv6VersionMetricTag) SetOffset(value int32) PatternFlowIp return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv6VersionMetricTag) Length() int32 { @@ -205442,13 +205941,13 @@ func (obj *patternFlowIpv6VersionMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv6VersionMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv6VersionMetricTag object func (obj *patternFlowIpv6VersionMetricTag) SetLength(value int32) PatternFlowIpv6VersionMetricTag { @@ -206030,7 +206529,7 @@ func (obj *patternFlowIpv6TrafficClassMetricTag) Clone() (PatternFlowIpv6Traffic return newObj, nil } -// PatternFlowIpv6TrafficClassMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv6TrafficClassMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv6TrafficClassMetricTag interface { Validation // Msg marshals PatternFlowIpv6TrafficClassMetricTag to protobuf object *otg.PatternFlowIpv6TrafficClassMetricTag @@ -206082,14 +206581,14 @@ type PatternFlowIpv6TrafficClassMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv6TrafficClassMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv6TrafficClassMetricTag object func (obj *patternFlowIpv6TrafficClassMetricTag) SetName(value string) PatternFlowIpv6TrafficClassMetricTag { @@ -206097,7 +206596,7 @@ func (obj *patternFlowIpv6TrafficClassMetricTag) SetName(value string) PatternFl return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv6TrafficClassMetricTag) Offset() int32 { @@ -206105,13 +206604,13 @@ func (obj *patternFlowIpv6TrafficClassMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv6TrafficClassMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv6TrafficClassMetricTag object func (obj *patternFlowIpv6TrafficClassMetricTag) SetOffset(value int32) PatternFlowIpv6TrafficClassMetricTag { @@ -206119,7 +206618,7 @@ func (obj *patternFlowIpv6TrafficClassMetricTag) SetOffset(value int32) PatternF return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv6TrafficClassMetricTag) Length() int32 { @@ -206127,13 +206626,13 @@ func (obj *patternFlowIpv6TrafficClassMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv6TrafficClassMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv6TrafficClassMetricTag object func (obj *patternFlowIpv6TrafficClassMetricTag) SetLength(value int32) PatternFlowIpv6TrafficClassMetricTag { @@ -206715,7 +207214,7 @@ func (obj *patternFlowIpv6FlowLabelMetricTag) Clone() (PatternFlowIpv6FlowLabelM return newObj, nil } -// PatternFlowIpv6FlowLabelMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv6FlowLabelMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv6FlowLabelMetricTag interface { Validation // Msg marshals PatternFlowIpv6FlowLabelMetricTag to protobuf object *otg.PatternFlowIpv6FlowLabelMetricTag @@ -206767,14 +207266,14 @@ type PatternFlowIpv6FlowLabelMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv6FlowLabelMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv6FlowLabelMetricTag object func (obj *patternFlowIpv6FlowLabelMetricTag) SetName(value string) PatternFlowIpv6FlowLabelMetricTag { @@ -206782,7 +207281,7 @@ func (obj *patternFlowIpv6FlowLabelMetricTag) SetName(value string) PatternFlowI return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv6FlowLabelMetricTag) Offset() int32 { @@ -206790,13 +207289,13 @@ func (obj *patternFlowIpv6FlowLabelMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv6FlowLabelMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv6FlowLabelMetricTag object func (obj *patternFlowIpv6FlowLabelMetricTag) SetOffset(value int32) PatternFlowIpv6FlowLabelMetricTag { @@ -206804,7 +207303,7 @@ func (obj *patternFlowIpv6FlowLabelMetricTag) SetOffset(value int32) PatternFlow return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv6FlowLabelMetricTag) Length() int32 { @@ -206812,13 +207311,13 @@ func (obj *patternFlowIpv6FlowLabelMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv6FlowLabelMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv6FlowLabelMetricTag object func (obj *patternFlowIpv6FlowLabelMetricTag) SetLength(value int32) PatternFlowIpv6FlowLabelMetricTag { @@ -207400,7 +207899,7 @@ func (obj *patternFlowIpv6PayloadLengthMetricTag) Clone() (PatternFlowIpv6Payloa return newObj, nil } -// PatternFlowIpv6PayloadLengthMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv6PayloadLengthMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv6PayloadLengthMetricTag interface { Validation // Msg marshals PatternFlowIpv6PayloadLengthMetricTag to protobuf object *otg.PatternFlowIpv6PayloadLengthMetricTag @@ -207452,14 +207951,14 @@ type PatternFlowIpv6PayloadLengthMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv6PayloadLengthMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv6PayloadLengthMetricTag object func (obj *patternFlowIpv6PayloadLengthMetricTag) SetName(value string) PatternFlowIpv6PayloadLengthMetricTag { @@ -207467,7 +207966,7 @@ func (obj *patternFlowIpv6PayloadLengthMetricTag) SetName(value string) PatternF return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv6PayloadLengthMetricTag) Offset() int32 { @@ -207475,13 +207974,13 @@ func (obj *patternFlowIpv6PayloadLengthMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv6PayloadLengthMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv6PayloadLengthMetricTag object func (obj *patternFlowIpv6PayloadLengthMetricTag) SetOffset(value int32) PatternFlowIpv6PayloadLengthMetricTag { @@ -207489,7 +207988,7 @@ func (obj *patternFlowIpv6PayloadLengthMetricTag) SetOffset(value int32) Pattern return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv6PayloadLengthMetricTag) Length() int32 { @@ -207497,13 +207996,13 @@ func (obj *patternFlowIpv6PayloadLengthMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv6PayloadLengthMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv6PayloadLengthMetricTag object func (obj *patternFlowIpv6PayloadLengthMetricTag) SetLength(value int32) PatternFlowIpv6PayloadLengthMetricTag { @@ -208085,7 +208584,7 @@ func (obj *patternFlowIpv6NextHeaderMetricTag) Clone() (PatternFlowIpv6NextHeade return newObj, nil } -// PatternFlowIpv6NextHeaderMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv6NextHeaderMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv6NextHeaderMetricTag interface { Validation // Msg marshals PatternFlowIpv6NextHeaderMetricTag to protobuf object *otg.PatternFlowIpv6NextHeaderMetricTag @@ -208137,14 +208636,14 @@ type PatternFlowIpv6NextHeaderMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv6NextHeaderMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv6NextHeaderMetricTag object func (obj *patternFlowIpv6NextHeaderMetricTag) SetName(value string) PatternFlowIpv6NextHeaderMetricTag { @@ -208152,7 +208651,7 @@ func (obj *patternFlowIpv6NextHeaderMetricTag) SetName(value string) PatternFlow return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv6NextHeaderMetricTag) Offset() int32 { @@ -208160,13 +208659,13 @@ func (obj *patternFlowIpv6NextHeaderMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv6NextHeaderMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv6NextHeaderMetricTag object func (obj *patternFlowIpv6NextHeaderMetricTag) SetOffset(value int32) PatternFlowIpv6NextHeaderMetricTag { @@ -208174,7 +208673,7 @@ func (obj *patternFlowIpv6NextHeaderMetricTag) SetOffset(value int32) PatternFlo return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv6NextHeaderMetricTag) Length() int32 { @@ -208182,13 +208681,13 @@ func (obj *patternFlowIpv6NextHeaderMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv6NextHeaderMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv6NextHeaderMetricTag object func (obj *patternFlowIpv6NextHeaderMetricTag) SetLength(value int32) PatternFlowIpv6NextHeaderMetricTag { @@ -208770,7 +209269,7 @@ func (obj *patternFlowIpv6HopLimitMetricTag) Clone() (PatternFlowIpv6HopLimitMet return newObj, nil } -// PatternFlowIpv6HopLimitMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv6HopLimitMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv6HopLimitMetricTag interface { Validation // Msg marshals PatternFlowIpv6HopLimitMetricTag to protobuf object *otg.PatternFlowIpv6HopLimitMetricTag @@ -208822,14 +209321,14 @@ type PatternFlowIpv6HopLimitMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv6HopLimitMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv6HopLimitMetricTag object func (obj *patternFlowIpv6HopLimitMetricTag) SetName(value string) PatternFlowIpv6HopLimitMetricTag { @@ -208837,7 +209336,7 @@ func (obj *patternFlowIpv6HopLimitMetricTag) SetName(value string) PatternFlowIp return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv6HopLimitMetricTag) Offset() int32 { @@ -208845,13 +209344,13 @@ func (obj *patternFlowIpv6HopLimitMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv6HopLimitMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv6HopLimitMetricTag object func (obj *patternFlowIpv6HopLimitMetricTag) SetOffset(value int32) PatternFlowIpv6HopLimitMetricTag { @@ -208859,7 +209358,7 @@ func (obj *patternFlowIpv6HopLimitMetricTag) SetOffset(value int32) PatternFlowI return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv6HopLimitMetricTag) Length() int32 { @@ -208867,13 +209366,13 @@ func (obj *patternFlowIpv6HopLimitMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv6HopLimitMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv6HopLimitMetricTag object func (obj *patternFlowIpv6HopLimitMetricTag) SetLength(value int32) PatternFlowIpv6HopLimitMetricTag { @@ -209455,7 +209954,7 @@ func (obj *patternFlowIpv6SrcMetricTag) Clone() (PatternFlowIpv6SrcMetricTag, er return newObj, nil } -// PatternFlowIpv6SrcMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv6SrcMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv6SrcMetricTag interface { Validation // Msg marshals PatternFlowIpv6SrcMetricTag to protobuf object *otg.PatternFlowIpv6SrcMetricTag @@ -209507,14 +210006,14 @@ type PatternFlowIpv6SrcMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv6SrcMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv6SrcMetricTag object func (obj *patternFlowIpv6SrcMetricTag) SetName(value string) PatternFlowIpv6SrcMetricTag { @@ -209522,7 +210021,7 @@ func (obj *patternFlowIpv6SrcMetricTag) SetName(value string) PatternFlowIpv6Src return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv6SrcMetricTag) Offset() int32 { @@ -209530,13 +210029,13 @@ func (obj *patternFlowIpv6SrcMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv6SrcMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv6SrcMetricTag object func (obj *patternFlowIpv6SrcMetricTag) SetOffset(value int32) PatternFlowIpv6SrcMetricTag { @@ -209544,7 +210043,7 @@ func (obj *patternFlowIpv6SrcMetricTag) SetOffset(value int32) PatternFlowIpv6Sr return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv6SrcMetricTag) Length() int32 { @@ -209552,13 +210051,13 @@ func (obj *patternFlowIpv6SrcMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv6SrcMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv6SrcMetricTag object func (obj *patternFlowIpv6SrcMetricTag) SetLength(value int32) PatternFlowIpv6SrcMetricTag { @@ -210138,7 +210637,7 @@ func (obj *patternFlowIpv6DstMetricTag) Clone() (PatternFlowIpv6DstMetricTag, er return newObj, nil } -// PatternFlowIpv6DstMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv6DstMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv6DstMetricTag interface { Validation // Msg marshals PatternFlowIpv6DstMetricTag to protobuf object *otg.PatternFlowIpv6DstMetricTag @@ -210190,14 +210689,14 @@ type PatternFlowIpv6DstMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv6DstMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv6DstMetricTag object func (obj *patternFlowIpv6DstMetricTag) SetName(value string) PatternFlowIpv6DstMetricTag { @@ -210205,7 +210704,7 @@ func (obj *patternFlowIpv6DstMetricTag) SetName(value string) PatternFlowIpv6Dst return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv6DstMetricTag) Offset() int32 { @@ -210213,13 +210712,13 @@ func (obj *patternFlowIpv6DstMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv6DstMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv6DstMetricTag object func (obj *patternFlowIpv6DstMetricTag) SetOffset(value int32) PatternFlowIpv6DstMetricTag { @@ -210227,7 +210726,7 @@ func (obj *patternFlowIpv6DstMetricTag) SetOffset(value int32) PatternFlowIpv6Ds return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv6DstMetricTag) Length() int32 { @@ -210235,13 +210734,13 @@ func (obj *patternFlowIpv6DstMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv6DstMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv6DstMetricTag object func (obj *patternFlowIpv6DstMetricTag) SetLength(value int32) PatternFlowIpv6DstMetricTag { @@ -210821,7 +211320,7 @@ func (obj *patternFlowPfcPauseDstMetricTag) Clone() (PatternFlowPfcPauseDstMetri return newObj, nil } -// PatternFlowPfcPauseDstMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowPfcPauseDstMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowPfcPauseDstMetricTag interface { Validation // Msg marshals PatternFlowPfcPauseDstMetricTag to protobuf object *otg.PatternFlowPfcPauseDstMetricTag @@ -210873,14 +211372,14 @@ type PatternFlowPfcPauseDstMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowPfcPauseDstMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPauseDstMetricTag object func (obj *patternFlowPfcPauseDstMetricTag) SetName(value string) PatternFlowPfcPauseDstMetricTag { @@ -210888,7 +211387,7 @@ func (obj *patternFlowPfcPauseDstMetricTag) SetName(value string) PatternFlowPfc return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPauseDstMetricTag) Offset() int32 { @@ -210896,13 +211395,13 @@ func (obj *patternFlowPfcPauseDstMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPauseDstMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowPfcPauseDstMetricTag object func (obj *patternFlowPfcPauseDstMetricTag) SetOffset(value int32) PatternFlowPfcPauseDstMetricTag { @@ -210910,7 +211409,7 @@ func (obj *patternFlowPfcPauseDstMetricTag) SetOffset(value int32) PatternFlowPf return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPauseDstMetricTag) Length() int32 { @@ -210918,13 +211417,13 @@ func (obj *patternFlowPfcPauseDstMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPauseDstMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowPfcPauseDstMetricTag object func (obj *patternFlowPfcPauseDstMetricTag) SetLength(value int32) PatternFlowPfcPauseDstMetricTag { @@ -211504,7 +212003,7 @@ func (obj *patternFlowPfcPauseSrcMetricTag) Clone() (PatternFlowPfcPauseSrcMetri return newObj, nil } -// PatternFlowPfcPauseSrcMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowPfcPauseSrcMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowPfcPauseSrcMetricTag interface { Validation // Msg marshals PatternFlowPfcPauseSrcMetricTag to protobuf object *otg.PatternFlowPfcPauseSrcMetricTag @@ -211556,14 +212055,14 @@ type PatternFlowPfcPauseSrcMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowPfcPauseSrcMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPauseSrcMetricTag object func (obj *patternFlowPfcPauseSrcMetricTag) SetName(value string) PatternFlowPfcPauseSrcMetricTag { @@ -211571,7 +212070,7 @@ func (obj *patternFlowPfcPauseSrcMetricTag) SetName(value string) PatternFlowPfc return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPauseSrcMetricTag) Offset() int32 { @@ -211579,13 +212078,13 @@ func (obj *patternFlowPfcPauseSrcMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPauseSrcMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowPfcPauseSrcMetricTag object func (obj *patternFlowPfcPauseSrcMetricTag) SetOffset(value int32) PatternFlowPfcPauseSrcMetricTag { @@ -211593,7 +212092,7 @@ func (obj *patternFlowPfcPauseSrcMetricTag) SetOffset(value int32) PatternFlowPf return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPauseSrcMetricTag) Length() int32 { @@ -211601,13 +212100,13 @@ func (obj *patternFlowPfcPauseSrcMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPauseSrcMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowPfcPauseSrcMetricTag object func (obj *patternFlowPfcPauseSrcMetricTag) SetLength(value int32) PatternFlowPfcPauseSrcMetricTag { @@ -212187,7 +212686,7 @@ func (obj *patternFlowPfcPauseEtherTypeMetricTag) Clone() (PatternFlowPfcPauseEt return newObj, nil } -// PatternFlowPfcPauseEtherTypeMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowPfcPauseEtherTypeMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowPfcPauseEtherTypeMetricTag interface { Validation // Msg marshals PatternFlowPfcPauseEtherTypeMetricTag to protobuf object *otg.PatternFlowPfcPauseEtherTypeMetricTag @@ -212239,14 +212738,14 @@ type PatternFlowPfcPauseEtherTypeMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowPfcPauseEtherTypeMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPauseEtherTypeMetricTag object func (obj *patternFlowPfcPauseEtherTypeMetricTag) SetName(value string) PatternFlowPfcPauseEtherTypeMetricTag { @@ -212254,7 +212753,7 @@ func (obj *patternFlowPfcPauseEtherTypeMetricTag) SetName(value string) PatternF return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPauseEtherTypeMetricTag) Offset() int32 { @@ -212262,13 +212761,13 @@ func (obj *patternFlowPfcPauseEtherTypeMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPauseEtherTypeMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowPfcPauseEtherTypeMetricTag object func (obj *patternFlowPfcPauseEtherTypeMetricTag) SetOffset(value int32) PatternFlowPfcPauseEtherTypeMetricTag { @@ -212276,7 +212775,7 @@ func (obj *patternFlowPfcPauseEtherTypeMetricTag) SetOffset(value int32) Pattern return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPauseEtherTypeMetricTag) Length() int32 { @@ -212284,13 +212783,13 @@ func (obj *patternFlowPfcPauseEtherTypeMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPauseEtherTypeMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowPfcPauseEtherTypeMetricTag object func (obj *patternFlowPfcPauseEtherTypeMetricTag) SetLength(value int32) PatternFlowPfcPauseEtherTypeMetricTag { @@ -212872,7 +213371,7 @@ func (obj *patternFlowPfcPauseControlOpCodeMetricTag) Clone() (PatternFlowPfcPau return newObj, nil } -// PatternFlowPfcPauseControlOpCodeMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowPfcPauseControlOpCodeMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowPfcPauseControlOpCodeMetricTag interface { Validation // Msg marshals PatternFlowPfcPauseControlOpCodeMetricTag to protobuf object *otg.PatternFlowPfcPauseControlOpCodeMetricTag @@ -212924,14 +213423,14 @@ type PatternFlowPfcPauseControlOpCodeMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowPfcPauseControlOpCodeMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPauseControlOpCodeMetricTag object func (obj *patternFlowPfcPauseControlOpCodeMetricTag) SetName(value string) PatternFlowPfcPauseControlOpCodeMetricTag { @@ -212939,7 +213438,7 @@ func (obj *patternFlowPfcPauseControlOpCodeMetricTag) SetName(value string) Patt return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPauseControlOpCodeMetricTag) Offset() int32 { @@ -212947,13 +213446,13 @@ func (obj *patternFlowPfcPauseControlOpCodeMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPauseControlOpCodeMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowPfcPauseControlOpCodeMetricTag object func (obj *patternFlowPfcPauseControlOpCodeMetricTag) SetOffset(value int32) PatternFlowPfcPauseControlOpCodeMetricTag { @@ -212961,7 +213460,7 @@ func (obj *patternFlowPfcPauseControlOpCodeMetricTag) SetOffset(value int32) Pat return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPauseControlOpCodeMetricTag) Length() int32 { @@ -212969,13 +213468,13 @@ func (obj *patternFlowPfcPauseControlOpCodeMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPauseControlOpCodeMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowPfcPauseControlOpCodeMetricTag object func (obj *patternFlowPfcPauseControlOpCodeMetricTag) SetLength(value int32) PatternFlowPfcPauseControlOpCodeMetricTag { @@ -213557,7 +214056,7 @@ func (obj *patternFlowPfcPauseClassEnableVectorMetricTag) Clone() (PatternFlowPf return newObj, nil } -// PatternFlowPfcPauseClassEnableVectorMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowPfcPauseClassEnableVectorMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowPfcPauseClassEnableVectorMetricTag interface { Validation // Msg marshals PatternFlowPfcPauseClassEnableVectorMetricTag to protobuf object *otg.PatternFlowPfcPauseClassEnableVectorMetricTag @@ -213609,14 +214108,14 @@ type PatternFlowPfcPauseClassEnableVectorMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowPfcPauseClassEnableVectorMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPauseClassEnableVectorMetricTag object func (obj *patternFlowPfcPauseClassEnableVectorMetricTag) SetName(value string) PatternFlowPfcPauseClassEnableVectorMetricTag { @@ -213624,7 +214123,7 @@ func (obj *patternFlowPfcPauseClassEnableVectorMetricTag) SetName(value string) return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPauseClassEnableVectorMetricTag) Offset() int32 { @@ -213632,13 +214131,13 @@ func (obj *patternFlowPfcPauseClassEnableVectorMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPauseClassEnableVectorMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowPfcPauseClassEnableVectorMetricTag object func (obj *patternFlowPfcPauseClassEnableVectorMetricTag) SetOffset(value int32) PatternFlowPfcPauseClassEnableVectorMetricTag { @@ -213646,7 +214145,7 @@ func (obj *patternFlowPfcPauseClassEnableVectorMetricTag) SetOffset(value int32) return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPauseClassEnableVectorMetricTag) Length() int32 { @@ -213654,13 +214153,13 @@ func (obj *patternFlowPfcPauseClassEnableVectorMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPauseClassEnableVectorMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowPfcPauseClassEnableVectorMetricTag object func (obj *patternFlowPfcPauseClassEnableVectorMetricTag) SetLength(value int32) PatternFlowPfcPauseClassEnableVectorMetricTag { @@ -214242,7 +214741,7 @@ func (obj *patternFlowPfcPausePauseClass0MetricTag) Clone() (PatternFlowPfcPause return newObj, nil } -// PatternFlowPfcPausePauseClass0MetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowPfcPausePauseClass0MetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowPfcPausePauseClass0MetricTag interface { Validation // Msg marshals PatternFlowPfcPausePauseClass0MetricTag to protobuf object *otg.PatternFlowPfcPausePauseClass0MetricTag @@ -214294,14 +214793,14 @@ type PatternFlowPfcPausePauseClass0MetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowPfcPausePauseClass0MetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPausePauseClass0MetricTag object func (obj *patternFlowPfcPausePauseClass0MetricTag) SetName(value string) PatternFlowPfcPausePauseClass0MetricTag { @@ -214309,7 +214808,7 @@ func (obj *patternFlowPfcPausePauseClass0MetricTag) SetName(value string) Patter return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPausePauseClass0MetricTag) Offset() int32 { @@ -214317,13 +214816,13 @@ func (obj *patternFlowPfcPausePauseClass0MetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPausePauseClass0MetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowPfcPausePauseClass0MetricTag object func (obj *patternFlowPfcPausePauseClass0MetricTag) SetOffset(value int32) PatternFlowPfcPausePauseClass0MetricTag { @@ -214331,7 +214830,7 @@ func (obj *patternFlowPfcPausePauseClass0MetricTag) SetOffset(value int32) Patte return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPausePauseClass0MetricTag) Length() int32 { @@ -214339,13 +214838,13 @@ func (obj *patternFlowPfcPausePauseClass0MetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPausePauseClass0MetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowPfcPausePauseClass0MetricTag object func (obj *patternFlowPfcPausePauseClass0MetricTag) SetLength(value int32) PatternFlowPfcPausePauseClass0MetricTag { @@ -214927,7 +215426,7 @@ func (obj *patternFlowPfcPausePauseClass1MetricTag) Clone() (PatternFlowPfcPause return newObj, nil } -// PatternFlowPfcPausePauseClass1MetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowPfcPausePauseClass1MetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowPfcPausePauseClass1MetricTag interface { Validation // Msg marshals PatternFlowPfcPausePauseClass1MetricTag to protobuf object *otg.PatternFlowPfcPausePauseClass1MetricTag @@ -214979,14 +215478,14 @@ type PatternFlowPfcPausePauseClass1MetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowPfcPausePauseClass1MetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPausePauseClass1MetricTag object func (obj *patternFlowPfcPausePauseClass1MetricTag) SetName(value string) PatternFlowPfcPausePauseClass1MetricTag { @@ -214994,7 +215493,7 @@ func (obj *patternFlowPfcPausePauseClass1MetricTag) SetName(value string) Patter return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPausePauseClass1MetricTag) Offset() int32 { @@ -215002,13 +215501,13 @@ func (obj *patternFlowPfcPausePauseClass1MetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPausePauseClass1MetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowPfcPausePauseClass1MetricTag object func (obj *patternFlowPfcPausePauseClass1MetricTag) SetOffset(value int32) PatternFlowPfcPausePauseClass1MetricTag { @@ -215016,7 +215515,7 @@ func (obj *patternFlowPfcPausePauseClass1MetricTag) SetOffset(value int32) Patte return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPausePauseClass1MetricTag) Length() int32 { @@ -215024,13 +215523,13 @@ func (obj *patternFlowPfcPausePauseClass1MetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPausePauseClass1MetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowPfcPausePauseClass1MetricTag object func (obj *patternFlowPfcPausePauseClass1MetricTag) SetLength(value int32) PatternFlowPfcPausePauseClass1MetricTag { @@ -215612,7 +216111,7 @@ func (obj *patternFlowPfcPausePauseClass2MetricTag) Clone() (PatternFlowPfcPause return newObj, nil } -// PatternFlowPfcPausePauseClass2MetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowPfcPausePauseClass2MetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowPfcPausePauseClass2MetricTag interface { Validation // Msg marshals PatternFlowPfcPausePauseClass2MetricTag to protobuf object *otg.PatternFlowPfcPausePauseClass2MetricTag @@ -215664,14 +216163,14 @@ type PatternFlowPfcPausePauseClass2MetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowPfcPausePauseClass2MetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPausePauseClass2MetricTag object func (obj *patternFlowPfcPausePauseClass2MetricTag) SetName(value string) PatternFlowPfcPausePauseClass2MetricTag { @@ -215679,7 +216178,7 @@ func (obj *patternFlowPfcPausePauseClass2MetricTag) SetName(value string) Patter return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPausePauseClass2MetricTag) Offset() int32 { @@ -215687,13 +216186,13 @@ func (obj *patternFlowPfcPausePauseClass2MetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPausePauseClass2MetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowPfcPausePauseClass2MetricTag object func (obj *patternFlowPfcPausePauseClass2MetricTag) SetOffset(value int32) PatternFlowPfcPausePauseClass2MetricTag { @@ -215701,7 +216200,7 @@ func (obj *patternFlowPfcPausePauseClass2MetricTag) SetOffset(value int32) Patte return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPausePauseClass2MetricTag) Length() int32 { @@ -215709,13 +216208,13 @@ func (obj *patternFlowPfcPausePauseClass2MetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPausePauseClass2MetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowPfcPausePauseClass2MetricTag object func (obj *patternFlowPfcPausePauseClass2MetricTag) SetLength(value int32) PatternFlowPfcPausePauseClass2MetricTag { @@ -216297,7 +216796,7 @@ func (obj *patternFlowPfcPausePauseClass3MetricTag) Clone() (PatternFlowPfcPause return newObj, nil } -// PatternFlowPfcPausePauseClass3MetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowPfcPausePauseClass3MetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowPfcPausePauseClass3MetricTag interface { Validation // Msg marshals PatternFlowPfcPausePauseClass3MetricTag to protobuf object *otg.PatternFlowPfcPausePauseClass3MetricTag @@ -216349,14 +216848,14 @@ type PatternFlowPfcPausePauseClass3MetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowPfcPausePauseClass3MetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPausePauseClass3MetricTag object func (obj *patternFlowPfcPausePauseClass3MetricTag) SetName(value string) PatternFlowPfcPausePauseClass3MetricTag { @@ -216364,7 +216863,7 @@ func (obj *patternFlowPfcPausePauseClass3MetricTag) SetName(value string) Patter return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPausePauseClass3MetricTag) Offset() int32 { @@ -216372,13 +216871,13 @@ func (obj *patternFlowPfcPausePauseClass3MetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPausePauseClass3MetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowPfcPausePauseClass3MetricTag object func (obj *patternFlowPfcPausePauseClass3MetricTag) SetOffset(value int32) PatternFlowPfcPausePauseClass3MetricTag { @@ -216386,7 +216885,7 @@ func (obj *patternFlowPfcPausePauseClass3MetricTag) SetOffset(value int32) Patte return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPausePauseClass3MetricTag) Length() int32 { @@ -216394,13 +216893,13 @@ func (obj *patternFlowPfcPausePauseClass3MetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPausePauseClass3MetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowPfcPausePauseClass3MetricTag object func (obj *patternFlowPfcPausePauseClass3MetricTag) SetLength(value int32) PatternFlowPfcPausePauseClass3MetricTag { @@ -216982,7 +217481,7 @@ func (obj *patternFlowPfcPausePauseClass4MetricTag) Clone() (PatternFlowPfcPause return newObj, nil } -// PatternFlowPfcPausePauseClass4MetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowPfcPausePauseClass4MetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowPfcPausePauseClass4MetricTag interface { Validation // Msg marshals PatternFlowPfcPausePauseClass4MetricTag to protobuf object *otg.PatternFlowPfcPausePauseClass4MetricTag @@ -217034,14 +217533,14 @@ type PatternFlowPfcPausePauseClass4MetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowPfcPausePauseClass4MetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPausePauseClass4MetricTag object func (obj *patternFlowPfcPausePauseClass4MetricTag) SetName(value string) PatternFlowPfcPausePauseClass4MetricTag { @@ -217049,7 +217548,7 @@ func (obj *patternFlowPfcPausePauseClass4MetricTag) SetName(value string) Patter return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPausePauseClass4MetricTag) Offset() int32 { @@ -217057,13 +217556,13 @@ func (obj *patternFlowPfcPausePauseClass4MetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPausePauseClass4MetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowPfcPausePauseClass4MetricTag object func (obj *patternFlowPfcPausePauseClass4MetricTag) SetOffset(value int32) PatternFlowPfcPausePauseClass4MetricTag { @@ -217071,7 +217570,7 @@ func (obj *patternFlowPfcPausePauseClass4MetricTag) SetOffset(value int32) Patte return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPausePauseClass4MetricTag) Length() int32 { @@ -217079,13 +217578,13 @@ func (obj *patternFlowPfcPausePauseClass4MetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPausePauseClass4MetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowPfcPausePauseClass4MetricTag object func (obj *patternFlowPfcPausePauseClass4MetricTag) SetLength(value int32) PatternFlowPfcPausePauseClass4MetricTag { @@ -217667,7 +218166,7 @@ func (obj *patternFlowPfcPausePauseClass5MetricTag) Clone() (PatternFlowPfcPause return newObj, nil } -// PatternFlowPfcPausePauseClass5MetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowPfcPausePauseClass5MetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowPfcPausePauseClass5MetricTag interface { Validation // Msg marshals PatternFlowPfcPausePauseClass5MetricTag to protobuf object *otg.PatternFlowPfcPausePauseClass5MetricTag @@ -217719,14 +218218,14 @@ type PatternFlowPfcPausePauseClass5MetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowPfcPausePauseClass5MetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPausePauseClass5MetricTag object func (obj *patternFlowPfcPausePauseClass5MetricTag) SetName(value string) PatternFlowPfcPausePauseClass5MetricTag { @@ -217734,7 +218233,7 @@ func (obj *patternFlowPfcPausePauseClass5MetricTag) SetName(value string) Patter return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPausePauseClass5MetricTag) Offset() int32 { @@ -217742,13 +218241,13 @@ func (obj *patternFlowPfcPausePauseClass5MetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPausePauseClass5MetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowPfcPausePauseClass5MetricTag object func (obj *patternFlowPfcPausePauseClass5MetricTag) SetOffset(value int32) PatternFlowPfcPausePauseClass5MetricTag { @@ -217756,7 +218255,7 @@ func (obj *patternFlowPfcPausePauseClass5MetricTag) SetOffset(value int32) Patte return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPausePauseClass5MetricTag) Length() int32 { @@ -217764,13 +218263,13 @@ func (obj *patternFlowPfcPausePauseClass5MetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPausePauseClass5MetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowPfcPausePauseClass5MetricTag object func (obj *patternFlowPfcPausePauseClass5MetricTag) SetLength(value int32) PatternFlowPfcPausePauseClass5MetricTag { @@ -218352,7 +218851,7 @@ func (obj *patternFlowPfcPausePauseClass6MetricTag) Clone() (PatternFlowPfcPause return newObj, nil } -// PatternFlowPfcPausePauseClass6MetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowPfcPausePauseClass6MetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowPfcPausePauseClass6MetricTag interface { Validation // Msg marshals PatternFlowPfcPausePauseClass6MetricTag to protobuf object *otg.PatternFlowPfcPausePauseClass6MetricTag @@ -218404,14 +218903,14 @@ type PatternFlowPfcPausePauseClass6MetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowPfcPausePauseClass6MetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPausePauseClass6MetricTag object func (obj *patternFlowPfcPausePauseClass6MetricTag) SetName(value string) PatternFlowPfcPausePauseClass6MetricTag { @@ -218419,7 +218918,7 @@ func (obj *patternFlowPfcPausePauseClass6MetricTag) SetName(value string) Patter return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPausePauseClass6MetricTag) Offset() int32 { @@ -218427,13 +218926,13 @@ func (obj *patternFlowPfcPausePauseClass6MetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPausePauseClass6MetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowPfcPausePauseClass6MetricTag object func (obj *patternFlowPfcPausePauseClass6MetricTag) SetOffset(value int32) PatternFlowPfcPausePauseClass6MetricTag { @@ -218441,7 +218940,7 @@ func (obj *patternFlowPfcPausePauseClass6MetricTag) SetOffset(value int32) Patte return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPausePauseClass6MetricTag) Length() int32 { @@ -218449,13 +218948,13 @@ func (obj *patternFlowPfcPausePauseClass6MetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPausePauseClass6MetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowPfcPausePauseClass6MetricTag object func (obj *patternFlowPfcPausePauseClass6MetricTag) SetLength(value int32) PatternFlowPfcPausePauseClass6MetricTag { @@ -219037,7 +219536,7 @@ func (obj *patternFlowPfcPausePauseClass7MetricTag) Clone() (PatternFlowPfcPause return newObj, nil } -// PatternFlowPfcPausePauseClass7MetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowPfcPausePauseClass7MetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowPfcPausePauseClass7MetricTag interface { Validation // Msg marshals PatternFlowPfcPausePauseClass7MetricTag to protobuf object *otg.PatternFlowPfcPausePauseClass7MetricTag @@ -219089,14 +219588,14 @@ type PatternFlowPfcPausePauseClass7MetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowPfcPausePauseClass7MetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPfcPausePauseClass7MetricTag object func (obj *patternFlowPfcPausePauseClass7MetricTag) SetName(value string) PatternFlowPfcPausePauseClass7MetricTag { @@ -219104,7 +219603,7 @@ func (obj *patternFlowPfcPausePauseClass7MetricTag) SetName(value string) Patter return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPausePauseClass7MetricTag) Offset() int32 { @@ -219112,13 +219611,13 @@ func (obj *patternFlowPfcPausePauseClass7MetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPfcPausePauseClass7MetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowPfcPausePauseClass7MetricTag object func (obj *patternFlowPfcPausePauseClass7MetricTag) SetOffset(value int32) PatternFlowPfcPausePauseClass7MetricTag { @@ -219126,7 +219625,7 @@ func (obj *patternFlowPfcPausePauseClass7MetricTag) SetOffset(value int32) Patte return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPausePauseClass7MetricTag) Length() int32 { @@ -219134,13 +219633,13 @@ func (obj *patternFlowPfcPausePauseClass7MetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPfcPausePauseClass7MetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowPfcPausePauseClass7MetricTag object func (obj *patternFlowPfcPausePauseClass7MetricTag) SetLength(value int32) PatternFlowPfcPausePauseClass7MetricTag { @@ -219722,7 +220221,7 @@ func (obj *patternFlowEthernetPauseDstMetricTag) Clone() (PatternFlowEthernetPau return newObj, nil } -// PatternFlowEthernetPauseDstMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowEthernetPauseDstMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowEthernetPauseDstMetricTag interface { Validation // Msg marshals PatternFlowEthernetPauseDstMetricTag to protobuf object *otg.PatternFlowEthernetPauseDstMetricTag @@ -219774,14 +220273,14 @@ type PatternFlowEthernetPauseDstMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowEthernetPauseDstMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowEthernetPauseDstMetricTag object func (obj *patternFlowEthernetPauseDstMetricTag) SetName(value string) PatternFlowEthernetPauseDstMetricTag { @@ -219789,7 +220288,7 @@ func (obj *patternFlowEthernetPauseDstMetricTag) SetName(value string) PatternFl return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowEthernetPauseDstMetricTag) Offset() int32 { @@ -219797,13 +220296,13 @@ func (obj *patternFlowEthernetPauseDstMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowEthernetPauseDstMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowEthernetPauseDstMetricTag object func (obj *patternFlowEthernetPauseDstMetricTag) SetOffset(value int32) PatternFlowEthernetPauseDstMetricTag { @@ -219811,7 +220310,7 @@ func (obj *patternFlowEthernetPauseDstMetricTag) SetOffset(value int32) PatternF return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowEthernetPauseDstMetricTag) Length() int32 { @@ -219819,13 +220318,13 @@ func (obj *patternFlowEthernetPauseDstMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowEthernetPauseDstMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowEthernetPauseDstMetricTag object func (obj *patternFlowEthernetPauseDstMetricTag) SetLength(value int32) PatternFlowEthernetPauseDstMetricTag { @@ -220405,7 +220904,7 @@ func (obj *patternFlowEthernetPauseSrcMetricTag) Clone() (PatternFlowEthernetPau return newObj, nil } -// PatternFlowEthernetPauseSrcMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowEthernetPauseSrcMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowEthernetPauseSrcMetricTag interface { Validation // Msg marshals PatternFlowEthernetPauseSrcMetricTag to protobuf object *otg.PatternFlowEthernetPauseSrcMetricTag @@ -220457,14 +220956,14 @@ type PatternFlowEthernetPauseSrcMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowEthernetPauseSrcMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowEthernetPauseSrcMetricTag object func (obj *patternFlowEthernetPauseSrcMetricTag) SetName(value string) PatternFlowEthernetPauseSrcMetricTag { @@ -220472,7 +220971,7 @@ func (obj *patternFlowEthernetPauseSrcMetricTag) SetName(value string) PatternFl return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowEthernetPauseSrcMetricTag) Offset() int32 { @@ -220480,13 +220979,13 @@ func (obj *patternFlowEthernetPauseSrcMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowEthernetPauseSrcMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowEthernetPauseSrcMetricTag object func (obj *patternFlowEthernetPauseSrcMetricTag) SetOffset(value int32) PatternFlowEthernetPauseSrcMetricTag { @@ -220494,7 +220993,7 @@ func (obj *patternFlowEthernetPauseSrcMetricTag) SetOffset(value int32) PatternF return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowEthernetPauseSrcMetricTag) Length() int32 { @@ -220502,13 +221001,13 @@ func (obj *patternFlowEthernetPauseSrcMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowEthernetPauseSrcMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowEthernetPauseSrcMetricTag object func (obj *patternFlowEthernetPauseSrcMetricTag) SetLength(value int32) PatternFlowEthernetPauseSrcMetricTag { @@ -221088,7 +221587,7 @@ func (obj *patternFlowEthernetPauseEtherTypeMetricTag) Clone() (PatternFlowEther return newObj, nil } -// PatternFlowEthernetPauseEtherTypeMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowEthernetPauseEtherTypeMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowEthernetPauseEtherTypeMetricTag interface { Validation // Msg marshals PatternFlowEthernetPauseEtherTypeMetricTag to protobuf object *otg.PatternFlowEthernetPauseEtherTypeMetricTag @@ -221140,14 +221639,14 @@ type PatternFlowEthernetPauseEtherTypeMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowEthernetPauseEtherTypeMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowEthernetPauseEtherTypeMetricTag object func (obj *patternFlowEthernetPauseEtherTypeMetricTag) SetName(value string) PatternFlowEthernetPauseEtherTypeMetricTag { @@ -221155,7 +221654,7 @@ func (obj *patternFlowEthernetPauseEtherTypeMetricTag) SetName(value string) Pat return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowEthernetPauseEtherTypeMetricTag) Offset() int32 { @@ -221163,13 +221662,13 @@ func (obj *patternFlowEthernetPauseEtherTypeMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowEthernetPauseEtherTypeMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowEthernetPauseEtherTypeMetricTag object func (obj *patternFlowEthernetPauseEtherTypeMetricTag) SetOffset(value int32) PatternFlowEthernetPauseEtherTypeMetricTag { @@ -221177,7 +221676,7 @@ func (obj *patternFlowEthernetPauseEtherTypeMetricTag) SetOffset(value int32) Pa return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowEthernetPauseEtherTypeMetricTag) Length() int32 { @@ -221185,13 +221684,13 @@ func (obj *patternFlowEthernetPauseEtherTypeMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowEthernetPauseEtherTypeMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowEthernetPauseEtherTypeMetricTag object func (obj *patternFlowEthernetPauseEtherTypeMetricTag) SetLength(value int32) PatternFlowEthernetPauseEtherTypeMetricTag { @@ -221773,7 +222272,7 @@ func (obj *patternFlowEthernetPauseControlOpCodeMetricTag) Clone() (PatternFlowE return newObj, nil } -// PatternFlowEthernetPauseControlOpCodeMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowEthernetPauseControlOpCodeMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowEthernetPauseControlOpCodeMetricTag interface { Validation // Msg marshals PatternFlowEthernetPauseControlOpCodeMetricTag to protobuf object *otg.PatternFlowEthernetPauseControlOpCodeMetricTag @@ -221825,14 +222324,14 @@ type PatternFlowEthernetPauseControlOpCodeMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowEthernetPauseControlOpCodeMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowEthernetPauseControlOpCodeMetricTag object func (obj *patternFlowEthernetPauseControlOpCodeMetricTag) SetName(value string) PatternFlowEthernetPauseControlOpCodeMetricTag { @@ -221840,7 +222339,7 @@ func (obj *patternFlowEthernetPauseControlOpCodeMetricTag) SetName(value string) return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowEthernetPauseControlOpCodeMetricTag) Offset() int32 { @@ -221848,13 +222347,13 @@ func (obj *patternFlowEthernetPauseControlOpCodeMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowEthernetPauseControlOpCodeMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowEthernetPauseControlOpCodeMetricTag object func (obj *patternFlowEthernetPauseControlOpCodeMetricTag) SetOffset(value int32) PatternFlowEthernetPauseControlOpCodeMetricTag { @@ -221862,7 +222361,7 @@ func (obj *patternFlowEthernetPauseControlOpCodeMetricTag) SetOffset(value int32 return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowEthernetPauseControlOpCodeMetricTag) Length() int32 { @@ -221870,13 +222369,13 @@ func (obj *patternFlowEthernetPauseControlOpCodeMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowEthernetPauseControlOpCodeMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowEthernetPauseControlOpCodeMetricTag object func (obj *patternFlowEthernetPauseControlOpCodeMetricTag) SetLength(value int32) PatternFlowEthernetPauseControlOpCodeMetricTag { @@ -222458,7 +222957,7 @@ func (obj *patternFlowEthernetPauseTimeMetricTag) Clone() (PatternFlowEthernetPa return newObj, nil } -// PatternFlowEthernetPauseTimeMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowEthernetPauseTimeMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowEthernetPauseTimeMetricTag interface { Validation // Msg marshals PatternFlowEthernetPauseTimeMetricTag to protobuf object *otg.PatternFlowEthernetPauseTimeMetricTag @@ -222510,14 +223009,14 @@ type PatternFlowEthernetPauseTimeMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowEthernetPauseTimeMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowEthernetPauseTimeMetricTag object func (obj *patternFlowEthernetPauseTimeMetricTag) SetName(value string) PatternFlowEthernetPauseTimeMetricTag { @@ -222525,7 +223024,7 @@ func (obj *patternFlowEthernetPauseTimeMetricTag) SetName(value string) PatternF return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowEthernetPauseTimeMetricTag) Offset() int32 { @@ -222533,13 +223032,13 @@ func (obj *patternFlowEthernetPauseTimeMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowEthernetPauseTimeMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowEthernetPauseTimeMetricTag object func (obj *patternFlowEthernetPauseTimeMetricTag) SetOffset(value int32) PatternFlowEthernetPauseTimeMetricTag { @@ -222547,7 +223046,7 @@ func (obj *patternFlowEthernetPauseTimeMetricTag) SetOffset(value int32) Pattern return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowEthernetPauseTimeMetricTag) Length() int32 { @@ -222555,13 +223054,13 @@ func (obj *patternFlowEthernetPauseTimeMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowEthernetPauseTimeMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowEthernetPauseTimeMetricTag object func (obj *patternFlowEthernetPauseTimeMetricTag) SetLength(value int32) PatternFlowEthernetPauseTimeMetricTag { @@ -223143,7 +223642,7 @@ func (obj *patternFlowTcpSrcPortMetricTag) Clone() (PatternFlowTcpSrcPortMetricT return newObj, nil } -// PatternFlowTcpSrcPortMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowTcpSrcPortMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowTcpSrcPortMetricTag interface { Validation // Msg marshals PatternFlowTcpSrcPortMetricTag to protobuf object *otg.PatternFlowTcpSrcPortMetricTag @@ -223195,14 +223694,14 @@ type PatternFlowTcpSrcPortMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowTcpSrcPortMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpSrcPortMetricTag object func (obj *patternFlowTcpSrcPortMetricTag) SetName(value string) PatternFlowTcpSrcPortMetricTag { @@ -223210,7 +223709,7 @@ func (obj *patternFlowTcpSrcPortMetricTag) SetName(value string) PatternFlowTcpS return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpSrcPortMetricTag) Offset() int32 { @@ -223218,13 +223717,13 @@ func (obj *patternFlowTcpSrcPortMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpSrcPortMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowTcpSrcPortMetricTag object func (obj *patternFlowTcpSrcPortMetricTag) SetOffset(value int32) PatternFlowTcpSrcPortMetricTag { @@ -223232,7 +223731,7 @@ func (obj *patternFlowTcpSrcPortMetricTag) SetOffset(value int32) PatternFlowTcp return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpSrcPortMetricTag) Length() int32 { @@ -223240,13 +223739,13 @@ func (obj *patternFlowTcpSrcPortMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpSrcPortMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowTcpSrcPortMetricTag object func (obj *patternFlowTcpSrcPortMetricTag) SetLength(value int32) PatternFlowTcpSrcPortMetricTag { @@ -223828,7 +224327,7 @@ func (obj *patternFlowTcpDstPortMetricTag) Clone() (PatternFlowTcpDstPortMetricT return newObj, nil } -// PatternFlowTcpDstPortMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowTcpDstPortMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowTcpDstPortMetricTag interface { Validation // Msg marshals PatternFlowTcpDstPortMetricTag to protobuf object *otg.PatternFlowTcpDstPortMetricTag @@ -223880,14 +224379,14 @@ type PatternFlowTcpDstPortMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowTcpDstPortMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpDstPortMetricTag object func (obj *patternFlowTcpDstPortMetricTag) SetName(value string) PatternFlowTcpDstPortMetricTag { @@ -223895,7 +224394,7 @@ func (obj *patternFlowTcpDstPortMetricTag) SetName(value string) PatternFlowTcpD return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpDstPortMetricTag) Offset() int32 { @@ -223903,13 +224402,13 @@ func (obj *patternFlowTcpDstPortMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpDstPortMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowTcpDstPortMetricTag object func (obj *patternFlowTcpDstPortMetricTag) SetOffset(value int32) PatternFlowTcpDstPortMetricTag { @@ -223917,7 +224416,7 @@ func (obj *patternFlowTcpDstPortMetricTag) SetOffset(value int32) PatternFlowTcp return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpDstPortMetricTag) Length() int32 { @@ -223925,13 +224424,13 @@ func (obj *patternFlowTcpDstPortMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpDstPortMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowTcpDstPortMetricTag object func (obj *patternFlowTcpDstPortMetricTag) SetLength(value int32) PatternFlowTcpDstPortMetricTag { @@ -224513,7 +225012,7 @@ func (obj *patternFlowTcpSeqNumMetricTag) Clone() (PatternFlowTcpSeqNumMetricTag return newObj, nil } -// PatternFlowTcpSeqNumMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowTcpSeqNumMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowTcpSeqNumMetricTag interface { Validation // Msg marshals PatternFlowTcpSeqNumMetricTag to protobuf object *otg.PatternFlowTcpSeqNumMetricTag @@ -224565,14 +225064,14 @@ type PatternFlowTcpSeqNumMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowTcpSeqNumMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpSeqNumMetricTag object func (obj *patternFlowTcpSeqNumMetricTag) SetName(value string) PatternFlowTcpSeqNumMetricTag { @@ -224580,7 +225079,7 @@ func (obj *patternFlowTcpSeqNumMetricTag) SetName(value string) PatternFlowTcpSe return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpSeqNumMetricTag) Offset() int32 { @@ -224588,13 +225087,13 @@ func (obj *patternFlowTcpSeqNumMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpSeqNumMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowTcpSeqNumMetricTag object func (obj *patternFlowTcpSeqNumMetricTag) SetOffset(value int32) PatternFlowTcpSeqNumMetricTag { @@ -224602,7 +225101,7 @@ func (obj *patternFlowTcpSeqNumMetricTag) SetOffset(value int32) PatternFlowTcpS return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpSeqNumMetricTag) Length() int32 { @@ -224610,13 +225109,13 @@ func (obj *patternFlowTcpSeqNumMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpSeqNumMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowTcpSeqNumMetricTag object func (obj *patternFlowTcpSeqNumMetricTag) SetLength(value int32) PatternFlowTcpSeqNumMetricTag { @@ -225198,7 +225697,7 @@ func (obj *patternFlowTcpAckNumMetricTag) Clone() (PatternFlowTcpAckNumMetricTag return newObj, nil } -// PatternFlowTcpAckNumMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowTcpAckNumMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowTcpAckNumMetricTag interface { Validation // Msg marshals PatternFlowTcpAckNumMetricTag to protobuf object *otg.PatternFlowTcpAckNumMetricTag @@ -225250,14 +225749,14 @@ type PatternFlowTcpAckNumMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowTcpAckNumMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpAckNumMetricTag object func (obj *patternFlowTcpAckNumMetricTag) SetName(value string) PatternFlowTcpAckNumMetricTag { @@ -225265,7 +225764,7 @@ func (obj *patternFlowTcpAckNumMetricTag) SetName(value string) PatternFlowTcpAc return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpAckNumMetricTag) Offset() int32 { @@ -225273,13 +225772,13 @@ func (obj *patternFlowTcpAckNumMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpAckNumMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowTcpAckNumMetricTag object func (obj *patternFlowTcpAckNumMetricTag) SetOffset(value int32) PatternFlowTcpAckNumMetricTag { @@ -225287,7 +225786,7 @@ func (obj *patternFlowTcpAckNumMetricTag) SetOffset(value int32) PatternFlowTcpA return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpAckNumMetricTag) Length() int32 { @@ -225295,13 +225794,13 @@ func (obj *patternFlowTcpAckNumMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpAckNumMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowTcpAckNumMetricTag object func (obj *patternFlowTcpAckNumMetricTag) SetLength(value int32) PatternFlowTcpAckNumMetricTag { @@ -225883,7 +226382,7 @@ func (obj *patternFlowTcpDataOffsetMetricTag) Clone() (PatternFlowTcpDataOffsetM return newObj, nil } -// PatternFlowTcpDataOffsetMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowTcpDataOffsetMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowTcpDataOffsetMetricTag interface { Validation // Msg marshals PatternFlowTcpDataOffsetMetricTag to protobuf object *otg.PatternFlowTcpDataOffsetMetricTag @@ -225935,14 +226434,14 @@ type PatternFlowTcpDataOffsetMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowTcpDataOffsetMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpDataOffsetMetricTag object func (obj *patternFlowTcpDataOffsetMetricTag) SetName(value string) PatternFlowTcpDataOffsetMetricTag { @@ -225950,7 +226449,7 @@ func (obj *patternFlowTcpDataOffsetMetricTag) SetName(value string) PatternFlowT return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpDataOffsetMetricTag) Offset() int32 { @@ -225958,13 +226457,13 @@ func (obj *patternFlowTcpDataOffsetMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpDataOffsetMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowTcpDataOffsetMetricTag object func (obj *patternFlowTcpDataOffsetMetricTag) SetOffset(value int32) PatternFlowTcpDataOffsetMetricTag { @@ -225972,7 +226471,7 @@ func (obj *patternFlowTcpDataOffsetMetricTag) SetOffset(value int32) PatternFlow return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpDataOffsetMetricTag) Length() int32 { @@ -225980,13 +226479,13 @@ func (obj *patternFlowTcpDataOffsetMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpDataOffsetMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowTcpDataOffsetMetricTag object func (obj *patternFlowTcpDataOffsetMetricTag) SetLength(value int32) PatternFlowTcpDataOffsetMetricTag { @@ -226568,7 +227067,7 @@ func (obj *patternFlowTcpEcnNsMetricTag) Clone() (PatternFlowTcpEcnNsMetricTag, return newObj, nil } -// PatternFlowTcpEcnNsMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowTcpEcnNsMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowTcpEcnNsMetricTag interface { Validation // Msg marshals PatternFlowTcpEcnNsMetricTag to protobuf object *otg.PatternFlowTcpEcnNsMetricTag @@ -226620,14 +227119,14 @@ type PatternFlowTcpEcnNsMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowTcpEcnNsMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpEcnNsMetricTag object func (obj *patternFlowTcpEcnNsMetricTag) SetName(value string) PatternFlowTcpEcnNsMetricTag { @@ -226635,7 +227134,7 @@ func (obj *patternFlowTcpEcnNsMetricTag) SetName(value string) PatternFlowTcpEcn return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpEcnNsMetricTag) Offset() int32 { @@ -226643,13 +227142,13 @@ func (obj *patternFlowTcpEcnNsMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpEcnNsMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowTcpEcnNsMetricTag object func (obj *patternFlowTcpEcnNsMetricTag) SetOffset(value int32) PatternFlowTcpEcnNsMetricTag { @@ -226657,7 +227156,7 @@ func (obj *patternFlowTcpEcnNsMetricTag) SetOffset(value int32) PatternFlowTcpEc return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpEcnNsMetricTag) Length() int32 { @@ -226665,13 +227164,13 @@ func (obj *patternFlowTcpEcnNsMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpEcnNsMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowTcpEcnNsMetricTag object func (obj *patternFlowTcpEcnNsMetricTag) SetLength(value int32) PatternFlowTcpEcnNsMetricTag { @@ -227253,7 +227752,7 @@ func (obj *patternFlowTcpEcnCwrMetricTag) Clone() (PatternFlowTcpEcnCwrMetricTag return newObj, nil } -// PatternFlowTcpEcnCwrMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowTcpEcnCwrMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowTcpEcnCwrMetricTag interface { Validation // Msg marshals PatternFlowTcpEcnCwrMetricTag to protobuf object *otg.PatternFlowTcpEcnCwrMetricTag @@ -227305,14 +227804,14 @@ type PatternFlowTcpEcnCwrMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowTcpEcnCwrMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpEcnCwrMetricTag object func (obj *patternFlowTcpEcnCwrMetricTag) SetName(value string) PatternFlowTcpEcnCwrMetricTag { @@ -227320,7 +227819,7 @@ func (obj *patternFlowTcpEcnCwrMetricTag) SetName(value string) PatternFlowTcpEc return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpEcnCwrMetricTag) Offset() int32 { @@ -227328,13 +227827,13 @@ func (obj *patternFlowTcpEcnCwrMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpEcnCwrMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowTcpEcnCwrMetricTag object func (obj *patternFlowTcpEcnCwrMetricTag) SetOffset(value int32) PatternFlowTcpEcnCwrMetricTag { @@ -227342,7 +227841,7 @@ func (obj *patternFlowTcpEcnCwrMetricTag) SetOffset(value int32) PatternFlowTcpE return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpEcnCwrMetricTag) Length() int32 { @@ -227350,13 +227849,13 @@ func (obj *patternFlowTcpEcnCwrMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpEcnCwrMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowTcpEcnCwrMetricTag object func (obj *patternFlowTcpEcnCwrMetricTag) SetLength(value int32) PatternFlowTcpEcnCwrMetricTag { @@ -227938,7 +228437,7 @@ func (obj *patternFlowTcpEcnEchoMetricTag) Clone() (PatternFlowTcpEcnEchoMetricT return newObj, nil } -// PatternFlowTcpEcnEchoMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowTcpEcnEchoMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowTcpEcnEchoMetricTag interface { Validation // Msg marshals PatternFlowTcpEcnEchoMetricTag to protobuf object *otg.PatternFlowTcpEcnEchoMetricTag @@ -227990,14 +228489,14 @@ type PatternFlowTcpEcnEchoMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowTcpEcnEchoMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpEcnEchoMetricTag object func (obj *patternFlowTcpEcnEchoMetricTag) SetName(value string) PatternFlowTcpEcnEchoMetricTag { @@ -228005,7 +228504,7 @@ func (obj *patternFlowTcpEcnEchoMetricTag) SetName(value string) PatternFlowTcpE return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpEcnEchoMetricTag) Offset() int32 { @@ -228013,13 +228512,13 @@ func (obj *patternFlowTcpEcnEchoMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpEcnEchoMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowTcpEcnEchoMetricTag object func (obj *patternFlowTcpEcnEchoMetricTag) SetOffset(value int32) PatternFlowTcpEcnEchoMetricTag { @@ -228027,7 +228526,7 @@ func (obj *patternFlowTcpEcnEchoMetricTag) SetOffset(value int32) PatternFlowTcp return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpEcnEchoMetricTag) Length() int32 { @@ -228035,13 +228534,13 @@ func (obj *patternFlowTcpEcnEchoMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpEcnEchoMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowTcpEcnEchoMetricTag object func (obj *patternFlowTcpEcnEchoMetricTag) SetLength(value int32) PatternFlowTcpEcnEchoMetricTag { @@ -228623,7 +229122,7 @@ func (obj *patternFlowTcpCtlUrgMetricTag) Clone() (PatternFlowTcpCtlUrgMetricTag return newObj, nil } -// PatternFlowTcpCtlUrgMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowTcpCtlUrgMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowTcpCtlUrgMetricTag interface { Validation // Msg marshals PatternFlowTcpCtlUrgMetricTag to protobuf object *otg.PatternFlowTcpCtlUrgMetricTag @@ -228675,14 +229174,14 @@ type PatternFlowTcpCtlUrgMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowTcpCtlUrgMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpCtlUrgMetricTag object func (obj *patternFlowTcpCtlUrgMetricTag) SetName(value string) PatternFlowTcpCtlUrgMetricTag { @@ -228690,7 +229189,7 @@ func (obj *patternFlowTcpCtlUrgMetricTag) SetName(value string) PatternFlowTcpCt return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpCtlUrgMetricTag) Offset() int32 { @@ -228698,13 +229197,13 @@ func (obj *patternFlowTcpCtlUrgMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpCtlUrgMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowTcpCtlUrgMetricTag object func (obj *patternFlowTcpCtlUrgMetricTag) SetOffset(value int32) PatternFlowTcpCtlUrgMetricTag { @@ -228712,7 +229211,7 @@ func (obj *patternFlowTcpCtlUrgMetricTag) SetOffset(value int32) PatternFlowTcpC return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpCtlUrgMetricTag) Length() int32 { @@ -228720,13 +229219,13 @@ func (obj *patternFlowTcpCtlUrgMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpCtlUrgMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowTcpCtlUrgMetricTag object func (obj *patternFlowTcpCtlUrgMetricTag) SetLength(value int32) PatternFlowTcpCtlUrgMetricTag { @@ -229308,7 +229807,7 @@ func (obj *patternFlowTcpCtlAckMetricTag) Clone() (PatternFlowTcpCtlAckMetricTag return newObj, nil } -// PatternFlowTcpCtlAckMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowTcpCtlAckMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowTcpCtlAckMetricTag interface { Validation // Msg marshals PatternFlowTcpCtlAckMetricTag to protobuf object *otg.PatternFlowTcpCtlAckMetricTag @@ -229360,14 +229859,14 @@ type PatternFlowTcpCtlAckMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowTcpCtlAckMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpCtlAckMetricTag object func (obj *patternFlowTcpCtlAckMetricTag) SetName(value string) PatternFlowTcpCtlAckMetricTag { @@ -229375,7 +229874,7 @@ func (obj *patternFlowTcpCtlAckMetricTag) SetName(value string) PatternFlowTcpCt return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpCtlAckMetricTag) Offset() int32 { @@ -229383,13 +229882,13 @@ func (obj *patternFlowTcpCtlAckMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpCtlAckMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowTcpCtlAckMetricTag object func (obj *patternFlowTcpCtlAckMetricTag) SetOffset(value int32) PatternFlowTcpCtlAckMetricTag { @@ -229397,7 +229896,7 @@ func (obj *patternFlowTcpCtlAckMetricTag) SetOffset(value int32) PatternFlowTcpC return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpCtlAckMetricTag) Length() int32 { @@ -229405,13 +229904,13 @@ func (obj *patternFlowTcpCtlAckMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpCtlAckMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowTcpCtlAckMetricTag object func (obj *patternFlowTcpCtlAckMetricTag) SetLength(value int32) PatternFlowTcpCtlAckMetricTag { @@ -229993,7 +230492,7 @@ func (obj *patternFlowTcpCtlPshMetricTag) Clone() (PatternFlowTcpCtlPshMetricTag return newObj, nil } -// PatternFlowTcpCtlPshMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowTcpCtlPshMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowTcpCtlPshMetricTag interface { Validation // Msg marshals PatternFlowTcpCtlPshMetricTag to protobuf object *otg.PatternFlowTcpCtlPshMetricTag @@ -230045,14 +230544,14 @@ type PatternFlowTcpCtlPshMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowTcpCtlPshMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpCtlPshMetricTag object func (obj *patternFlowTcpCtlPshMetricTag) SetName(value string) PatternFlowTcpCtlPshMetricTag { @@ -230060,7 +230559,7 @@ func (obj *patternFlowTcpCtlPshMetricTag) SetName(value string) PatternFlowTcpCt return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpCtlPshMetricTag) Offset() int32 { @@ -230068,13 +230567,13 @@ func (obj *patternFlowTcpCtlPshMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpCtlPshMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowTcpCtlPshMetricTag object func (obj *patternFlowTcpCtlPshMetricTag) SetOffset(value int32) PatternFlowTcpCtlPshMetricTag { @@ -230082,7 +230581,7 @@ func (obj *patternFlowTcpCtlPshMetricTag) SetOffset(value int32) PatternFlowTcpC return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpCtlPshMetricTag) Length() int32 { @@ -230090,13 +230589,13 @@ func (obj *patternFlowTcpCtlPshMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpCtlPshMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowTcpCtlPshMetricTag object func (obj *patternFlowTcpCtlPshMetricTag) SetLength(value int32) PatternFlowTcpCtlPshMetricTag { @@ -230678,7 +231177,7 @@ func (obj *patternFlowTcpCtlRstMetricTag) Clone() (PatternFlowTcpCtlRstMetricTag return newObj, nil } -// PatternFlowTcpCtlRstMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowTcpCtlRstMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowTcpCtlRstMetricTag interface { Validation // Msg marshals PatternFlowTcpCtlRstMetricTag to protobuf object *otg.PatternFlowTcpCtlRstMetricTag @@ -230730,14 +231229,14 @@ type PatternFlowTcpCtlRstMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowTcpCtlRstMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpCtlRstMetricTag object func (obj *patternFlowTcpCtlRstMetricTag) SetName(value string) PatternFlowTcpCtlRstMetricTag { @@ -230745,7 +231244,7 @@ func (obj *patternFlowTcpCtlRstMetricTag) SetName(value string) PatternFlowTcpCt return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpCtlRstMetricTag) Offset() int32 { @@ -230753,13 +231252,13 @@ func (obj *patternFlowTcpCtlRstMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpCtlRstMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowTcpCtlRstMetricTag object func (obj *patternFlowTcpCtlRstMetricTag) SetOffset(value int32) PatternFlowTcpCtlRstMetricTag { @@ -230767,7 +231266,7 @@ func (obj *patternFlowTcpCtlRstMetricTag) SetOffset(value int32) PatternFlowTcpC return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpCtlRstMetricTag) Length() int32 { @@ -230775,13 +231274,13 @@ func (obj *patternFlowTcpCtlRstMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpCtlRstMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowTcpCtlRstMetricTag object func (obj *patternFlowTcpCtlRstMetricTag) SetLength(value int32) PatternFlowTcpCtlRstMetricTag { @@ -231363,7 +231862,7 @@ func (obj *patternFlowTcpCtlSynMetricTag) Clone() (PatternFlowTcpCtlSynMetricTag return newObj, nil } -// PatternFlowTcpCtlSynMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowTcpCtlSynMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowTcpCtlSynMetricTag interface { Validation // Msg marshals PatternFlowTcpCtlSynMetricTag to protobuf object *otg.PatternFlowTcpCtlSynMetricTag @@ -231415,14 +231914,14 @@ type PatternFlowTcpCtlSynMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowTcpCtlSynMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpCtlSynMetricTag object func (obj *patternFlowTcpCtlSynMetricTag) SetName(value string) PatternFlowTcpCtlSynMetricTag { @@ -231430,7 +231929,7 @@ func (obj *patternFlowTcpCtlSynMetricTag) SetName(value string) PatternFlowTcpCt return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpCtlSynMetricTag) Offset() int32 { @@ -231438,13 +231937,13 @@ func (obj *patternFlowTcpCtlSynMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpCtlSynMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowTcpCtlSynMetricTag object func (obj *patternFlowTcpCtlSynMetricTag) SetOffset(value int32) PatternFlowTcpCtlSynMetricTag { @@ -231452,7 +231951,7 @@ func (obj *patternFlowTcpCtlSynMetricTag) SetOffset(value int32) PatternFlowTcpC return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpCtlSynMetricTag) Length() int32 { @@ -231460,13 +231959,13 @@ func (obj *patternFlowTcpCtlSynMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpCtlSynMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowTcpCtlSynMetricTag object func (obj *patternFlowTcpCtlSynMetricTag) SetLength(value int32) PatternFlowTcpCtlSynMetricTag { @@ -232048,7 +232547,7 @@ func (obj *patternFlowTcpCtlFinMetricTag) Clone() (PatternFlowTcpCtlFinMetricTag return newObj, nil } -// PatternFlowTcpCtlFinMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowTcpCtlFinMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowTcpCtlFinMetricTag interface { Validation // Msg marshals PatternFlowTcpCtlFinMetricTag to protobuf object *otg.PatternFlowTcpCtlFinMetricTag @@ -232100,14 +232599,14 @@ type PatternFlowTcpCtlFinMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowTcpCtlFinMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpCtlFinMetricTag object func (obj *patternFlowTcpCtlFinMetricTag) SetName(value string) PatternFlowTcpCtlFinMetricTag { @@ -232115,7 +232614,7 @@ func (obj *patternFlowTcpCtlFinMetricTag) SetName(value string) PatternFlowTcpCt return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpCtlFinMetricTag) Offset() int32 { @@ -232123,13 +232622,13 @@ func (obj *patternFlowTcpCtlFinMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpCtlFinMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowTcpCtlFinMetricTag object func (obj *patternFlowTcpCtlFinMetricTag) SetOffset(value int32) PatternFlowTcpCtlFinMetricTag { @@ -232137,7 +232636,7 @@ func (obj *patternFlowTcpCtlFinMetricTag) SetOffset(value int32) PatternFlowTcpC return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpCtlFinMetricTag) Length() int32 { @@ -232145,13 +232644,13 @@ func (obj *patternFlowTcpCtlFinMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpCtlFinMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowTcpCtlFinMetricTag object func (obj *patternFlowTcpCtlFinMetricTag) SetLength(value int32) PatternFlowTcpCtlFinMetricTag { @@ -232733,7 +233232,7 @@ func (obj *patternFlowTcpWindowMetricTag) Clone() (PatternFlowTcpWindowMetricTag return newObj, nil } -// PatternFlowTcpWindowMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowTcpWindowMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowTcpWindowMetricTag interface { Validation // Msg marshals PatternFlowTcpWindowMetricTag to protobuf object *otg.PatternFlowTcpWindowMetricTag @@ -232785,14 +233284,14 @@ type PatternFlowTcpWindowMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowTcpWindowMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowTcpWindowMetricTag object func (obj *patternFlowTcpWindowMetricTag) SetName(value string) PatternFlowTcpWindowMetricTag { @@ -232800,7 +233299,7 @@ func (obj *patternFlowTcpWindowMetricTag) SetName(value string) PatternFlowTcpWi return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpWindowMetricTag) Offset() int32 { @@ -232808,13 +233307,13 @@ func (obj *patternFlowTcpWindowMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowTcpWindowMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowTcpWindowMetricTag object func (obj *patternFlowTcpWindowMetricTag) SetOffset(value int32) PatternFlowTcpWindowMetricTag { @@ -232822,7 +233321,7 @@ func (obj *patternFlowTcpWindowMetricTag) SetOffset(value int32) PatternFlowTcpW return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpWindowMetricTag) Length() int32 { @@ -232830,13 +233329,13 @@ func (obj *patternFlowTcpWindowMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowTcpWindowMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowTcpWindowMetricTag object func (obj *patternFlowTcpWindowMetricTag) SetLength(value int32) PatternFlowTcpWindowMetricTag { @@ -233418,7 +233917,7 @@ func (obj *patternFlowUdpSrcPortMetricTag) Clone() (PatternFlowUdpSrcPortMetricT return newObj, nil } -// PatternFlowUdpSrcPortMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowUdpSrcPortMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowUdpSrcPortMetricTag interface { Validation // Msg marshals PatternFlowUdpSrcPortMetricTag to protobuf object *otg.PatternFlowUdpSrcPortMetricTag @@ -233470,14 +233969,14 @@ type PatternFlowUdpSrcPortMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowUdpSrcPortMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowUdpSrcPortMetricTag object func (obj *patternFlowUdpSrcPortMetricTag) SetName(value string) PatternFlowUdpSrcPortMetricTag { @@ -233485,7 +233984,7 @@ func (obj *patternFlowUdpSrcPortMetricTag) SetName(value string) PatternFlowUdpS return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowUdpSrcPortMetricTag) Offset() int32 { @@ -233493,13 +233992,13 @@ func (obj *patternFlowUdpSrcPortMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowUdpSrcPortMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowUdpSrcPortMetricTag object func (obj *patternFlowUdpSrcPortMetricTag) SetOffset(value int32) PatternFlowUdpSrcPortMetricTag { @@ -233507,7 +234006,7 @@ func (obj *patternFlowUdpSrcPortMetricTag) SetOffset(value int32) PatternFlowUdp return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowUdpSrcPortMetricTag) Length() int32 { @@ -233515,13 +234014,13 @@ func (obj *patternFlowUdpSrcPortMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowUdpSrcPortMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowUdpSrcPortMetricTag object func (obj *patternFlowUdpSrcPortMetricTag) SetLength(value int32) PatternFlowUdpSrcPortMetricTag { @@ -234103,7 +234602,7 @@ func (obj *patternFlowUdpDstPortMetricTag) Clone() (PatternFlowUdpDstPortMetricT return newObj, nil } -// PatternFlowUdpDstPortMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowUdpDstPortMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowUdpDstPortMetricTag interface { Validation // Msg marshals PatternFlowUdpDstPortMetricTag to protobuf object *otg.PatternFlowUdpDstPortMetricTag @@ -234155,14 +234654,14 @@ type PatternFlowUdpDstPortMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowUdpDstPortMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowUdpDstPortMetricTag object func (obj *patternFlowUdpDstPortMetricTag) SetName(value string) PatternFlowUdpDstPortMetricTag { @@ -234170,7 +234669,7 @@ func (obj *patternFlowUdpDstPortMetricTag) SetName(value string) PatternFlowUdpD return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowUdpDstPortMetricTag) Offset() int32 { @@ -234178,13 +234677,13 @@ func (obj *patternFlowUdpDstPortMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowUdpDstPortMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowUdpDstPortMetricTag object func (obj *patternFlowUdpDstPortMetricTag) SetOffset(value int32) PatternFlowUdpDstPortMetricTag { @@ -234192,7 +234691,7 @@ func (obj *patternFlowUdpDstPortMetricTag) SetOffset(value int32) PatternFlowUdp return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowUdpDstPortMetricTag) Length() int32 { @@ -234200,13 +234699,13 @@ func (obj *patternFlowUdpDstPortMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowUdpDstPortMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowUdpDstPortMetricTag object func (obj *patternFlowUdpDstPortMetricTag) SetLength(value int32) PatternFlowUdpDstPortMetricTag { @@ -234788,7 +235287,7 @@ func (obj *patternFlowUdpLengthMetricTag) Clone() (PatternFlowUdpLengthMetricTag return newObj, nil } -// PatternFlowUdpLengthMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowUdpLengthMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowUdpLengthMetricTag interface { Validation // Msg marshals PatternFlowUdpLengthMetricTag to protobuf object *otg.PatternFlowUdpLengthMetricTag @@ -234840,14 +235339,14 @@ type PatternFlowUdpLengthMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowUdpLengthMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowUdpLengthMetricTag object func (obj *patternFlowUdpLengthMetricTag) SetName(value string) PatternFlowUdpLengthMetricTag { @@ -234855,7 +235354,7 @@ func (obj *patternFlowUdpLengthMetricTag) SetName(value string) PatternFlowUdpLe return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowUdpLengthMetricTag) Offset() int32 { @@ -234863,13 +235362,13 @@ func (obj *patternFlowUdpLengthMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowUdpLengthMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowUdpLengthMetricTag object func (obj *patternFlowUdpLengthMetricTag) SetOffset(value int32) PatternFlowUdpLengthMetricTag { @@ -234877,7 +235376,7 @@ func (obj *patternFlowUdpLengthMetricTag) SetOffset(value int32) PatternFlowUdpL return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowUdpLengthMetricTag) Length() int32 { @@ -234885,13 +235384,13 @@ func (obj *patternFlowUdpLengthMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowUdpLengthMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowUdpLengthMetricTag object func (obj *patternFlowUdpLengthMetricTag) SetLength(value int32) PatternFlowUdpLengthMetricTag { @@ -235473,7 +235972,7 @@ func (obj *patternFlowGreChecksumPresentMetricTag) Clone() (PatternFlowGreChecks return newObj, nil } -// PatternFlowGreChecksumPresentMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGreChecksumPresentMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGreChecksumPresentMetricTag interface { Validation // Msg marshals PatternFlowGreChecksumPresentMetricTag to protobuf object *otg.PatternFlowGreChecksumPresentMetricTag @@ -235525,14 +236024,14 @@ type PatternFlowGreChecksumPresentMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGreChecksumPresentMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGreChecksumPresentMetricTag object func (obj *patternFlowGreChecksumPresentMetricTag) SetName(value string) PatternFlowGreChecksumPresentMetricTag { @@ -235540,7 +236039,7 @@ func (obj *patternFlowGreChecksumPresentMetricTag) SetName(value string) Pattern return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGreChecksumPresentMetricTag) Offset() int32 { @@ -235548,13 +236047,13 @@ func (obj *patternFlowGreChecksumPresentMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGreChecksumPresentMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGreChecksumPresentMetricTag object func (obj *patternFlowGreChecksumPresentMetricTag) SetOffset(value int32) PatternFlowGreChecksumPresentMetricTag { @@ -235562,7 +236061,7 @@ func (obj *patternFlowGreChecksumPresentMetricTag) SetOffset(value int32) Patter return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGreChecksumPresentMetricTag) Length() int32 { @@ -235570,13 +236069,13 @@ func (obj *patternFlowGreChecksumPresentMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGreChecksumPresentMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGreChecksumPresentMetricTag object func (obj *patternFlowGreChecksumPresentMetricTag) SetLength(value int32) PatternFlowGreChecksumPresentMetricTag { @@ -236158,7 +236657,7 @@ func (obj *patternFlowGreReserved0MetricTag) Clone() (PatternFlowGreReserved0Met return newObj, nil } -// PatternFlowGreReserved0MetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGreReserved0MetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGreReserved0MetricTag interface { Validation // Msg marshals PatternFlowGreReserved0MetricTag to protobuf object *otg.PatternFlowGreReserved0MetricTag @@ -236210,14 +236709,14 @@ type PatternFlowGreReserved0MetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGreReserved0MetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGreReserved0MetricTag object func (obj *patternFlowGreReserved0MetricTag) SetName(value string) PatternFlowGreReserved0MetricTag { @@ -236225,7 +236724,7 @@ func (obj *patternFlowGreReserved0MetricTag) SetName(value string) PatternFlowGr return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGreReserved0MetricTag) Offset() int32 { @@ -236233,13 +236732,13 @@ func (obj *patternFlowGreReserved0MetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGreReserved0MetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGreReserved0MetricTag object func (obj *patternFlowGreReserved0MetricTag) SetOffset(value int32) PatternFlowGreReserved0MetricTag { @@ -236247,7 +236746,7 @@ func (obj *patternFlowGreReserved0MetricTag) SetOffset(value int32) PatternFlowG return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGreReserved0MetricTag) Length() int32 { @@ -236255,13 +236754,13 @@ func (obj *patternFlowGreReserved0MetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGreReserved0MetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGreReserved0MetricTag object func (obj *patternFlowGreReserved0MetricTag) SetLength(value int32) PatternFlowGreReserved0MetricTag { @@ -236843,7 +237342,7 @@ func (obj *patternFlowGreVersionMetricTag) Clone() (PatternFlowGreVersionMetricT return newObj, nil } -// PatternFlowGreVersionMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGreVersionMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGreVersionMetricTag interface { Validation // Msg marshals PatternFlowGreVersionMetricTag to protobuf object *otg.PatternFlowGreVersionMetricTag @@ -236895,14 +237394,14 @@ type PatternFlowGreVersionMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGreVersionMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGreVersionMetricTag object func (obj *patternFlowGreVersionMetricTag) SetName(value string) PatternFlowGreVersionMetricTag { @@ -236910,7 +237409,7 @@ func (obj *patternFlowGreVersionMetricTag) SetName(value string) PatternFlowGreV return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGreVersionMetricTag) Offset() int32 { @@ -236918,13 +237417,13 @@ func (obj *patternFlowGreVersionMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGreVersionMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGreVersionMetricTag object func (obj *patternFlowGreVersionMetricTag) SetOffset(value int32) PatternFlowGreVersionMetricTag { @@ -236932,7 +237431,7 @@ func (obj *patternFlowGreVersionMetricTag) SetOffset(value int32) PatternFlowGre return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGreVersionMetricTag) Length() int32 { @@ -236940,13 +237439,13 @@ func (obj *patternFlowGreVersionMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGreVersionMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGreVersionMetricTag object func (obj *patternFlowGreVersionMetricTag) SetLength(value int32) PatternFlowGreVersionMetricTag { @@ -237528,7 +238027,7 @@ func (obj *patternFlowGreProtocolMetricTag) Clone() (PatternFlowGreProtocolMetri return newObj, nil } -// PatternFlowGreProtocolMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGreProtocolMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGreProtocolMetricTag interface { Validation // Msg marshals PatternFlowGreProtocolMetricTag to protobuf object *otg.PatternFlowGreProtocolMetricTag @@ -237580,14 +238079,14 @@ type PatternFlowGreProtocolMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGreProtocolMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGreProtocolMetricTag object func (obj *patternFlowGreProtocolMetricTag) SetName(value string) PatternFlowGreProtocolMetricTag { @@ -237595,7 +238094,7 @@ func (obj *patternFlowGreProtocolMetricTag) SetName(value string) PatternFlowGre return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGreProtocolMetricTag) Offset() int32 { @@ -237603,13 +238102,13 @@ func (obj *patternFlowGreProtocolMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGreProtocolMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGreProtocolMetricTag object func (obj *patternFlowGreProtocolMetricTag) SetOffset(value int32) PatternFlowGreProtocolMetricTag { @@ -237617,7 +238116,7 @@ func (obj *patternFlowGreProtocolMetricTag) SetOffset(value int32) PatternFlowGr return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGreProtocolMetricTag) Length() int32 { @@ -237625,13 +238124,13 @@ func (obj *patternFlowGreProtocolMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGreProtocolMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGreProtocolMetricTag object func (obj *patternFlowGreProtocolMetricTag) SetLength(value int32) PatternFlowGreProtocolMetricTag { @@ -238213,7 +238712,7 @@ func (obj *patternFlowGreReserved1MetricTag) Clone() (PatternFlowGreReserved1Met return newObj, nil } -// PatternFlowGreReserved1MetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGreReserved1MetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGreReserved1MetricTag interface { Validation // Msg marshals PatternFlowGreReserved1MetricTag to protobuf object *otg.PatternFlowGreReserved1MetricTag @@ -238265,14 +238764,14 @@ type PatternFlowGreReserved1MetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGreReserved1MetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGreReserved1MetricTag object func (obj *patternFlowGreReserved1MetricTag) SetName(value string) PatternFlowGreReserved1MetricTag { @@ -238280,7 +238779,7 @@ func (obj *patternFlowGreReserved1MetricTag) SetName(value string) PatternFlowGr return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGreReserved1MetricTag) Offset() int32 { @@ -238288,13 +238787,13 @@ func (obj *patternFlowGreReserved1MetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGreReserved1MetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGreReserved1MetricTag object func (obj *patternFlowGreReserved1MetricTag) SetOffset(value int32) PatternFlowGreReserved1MetricTag { @@ -238302,7 +238801,7 @@ func (obj *patternFlowGreReserved1MetricTag) SetOffset(value int32) PatternFlowG return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGreReserved1MetricTag) Length() int32 { @@ -238310,13 +238809,13 @@ func (obj *patternFlowGreReserved1MetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGreReserved1MetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGreReserved1MetricTag object func (obj *patternFlowGreReserved1MetricTag) SetLength(value int32) PatternFlowGreReserved1MetricTag { @@ -238898,7 +239397,7 @@ func (obj *patternFlowGtpv1VersionMetricTag) Clone() (PatternFlowGtpv1VersionMet return newObj, nil } -// PatternFlowGtpv1VersionMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpv1VersionMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpv1VersionMetricTag interface { Validation // Msg marshals PatternFlowGtpv1VersionMetricTag to protobuf object *otg.PatternFlowGtpv1VersionMetricTag @@ -238950,14 +239449,14 @@ type PatternFlowGtpv1VersionMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpv1VersionMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1VersionMetricTag object func (obj *patternFlowGtpv1VersionMetricTag) SetName(value string) PatternFlowGtpv1VersionMetricTag { @@ -238965,7 +239464,7 @@ func (obj *patternFlowGtpv1VersionMetricTag) SetName(value string) PatternFlowGt return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1VersionMetricTag) Offset() int32 { @@ -238973,13 +239472,13 @@ func (obj *patternFlowGtpv1VersionMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1VersionMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpv1VersionMetricTag object func (obj *patternFlowGtpv1VersionMetricTag) SetOffset(value int32) PatternFlowGtpv1VersionMetricTag { @@ -238987,7 +239486,7 @@ func (obj *patternFlowGtpv1VersionMetricTag) SetOffset(value int32) PatternFlowG return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1VersionMetricTag) Length() int32 { @@ -238995,13 +239494,13 @@ func (obj *patternFlowGtpv1VersionMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1VersionMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpv1VersionMetricTag object func (obj *patternFlowGtpv1VersionMetricTag) SetLength(value int32) PatternFlowGtpv1VersionMetricTag { @@ -239583,7 +240082,7 @@ func (obj *patternFlowGtpv1ProtocolTypeMetricTag) Clone() (PatternFlowGtpv1Proto return newObj, nil } -// PatternFlowGtpv1ProtocolTypeMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpv1ProtocolTypeMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpv1ProtocolTypeMetricTag interface { Validation // Msg marshals PatternFlowGtpv1ProtocolTypeMetricTag to protobuf object *otg.PatternFlowGtpv1ProtocolTypeMetricTag @@ -239635,14 +240134,14 @@ type PatternFlowGtpv1ProtocolTypeMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpv1ProtocolTypeMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1ProtocolTypeMetricTag object func (obj *patternFlowGtpv1ProtocolTypeMetricTag) SetName(value string) PatternFlowGtpv1ProtocolTypeMetricTag { @@ -239650,7 +240149,7 @@ func (obj *patternFlowGtpv1ProtocolTypeMetricTag) SetName(value string) PatternF return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1ProtocolTypeMetricTag) Offset() int32 { @@ -239658,13 +240157,13 @@ func (obj *patternFlowGtpv1ProtocolTypeMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1ProtocolTypeMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpv1ProtocolTypeMetricTag object func (obj *patternFlowGtpv1ProtocolTypeMetricTag) SetOffset(value int32) PatternFlowGtpv1ProtocolTypeMetricTag { @@ -239672,7 +240171,7 @@ func (obj *patternFlowGtpv1ProtocolTypeMetricTag) SetOffset(value int32) Pattern return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1ProtocolTypeMetricTag) Length() int32 { @@ -239680,13 +240179,13 @@ func (obj *patternFlowGtpv1ProtocolTypeMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1ProtocolTypeMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpv1ProtocolTypeMetricTag object func (obj *patternFlowGtpv1ProtocolTypeMetricTag) SetLength(value int32) PatternFlowGtpv1ProtocolTypeMetricTag { @@ -240268,7 +240767,7 @@ func (obj *patternFlowGtpv1ReservedMetricTag) Clone() (PatternFlowGtpv1ReservedM return newObj, nil } -// PatternFlowGtpv1ReservedMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpv1ReservedMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpv1ReservedMetricTag interface { Validation // Msg marshals PatternFlowGtpv1ReservedMetricTag to protobuf object *otg.PatternFlowGtpv1ReservedMetricTag @@ -240320,14 +240819,14 @@ type PatternFlowGtpv1ReservedMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpv1ReservedMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1ReservedMetricTag object func (obj *patternFlowGtpv1ReservedMetricTag) SetName(value string) PatternFlowGtpv1ReservedMetricTag { @@ -240335,7 +240834,7 @@ func (obj *patternFlowGtpv1ReservedMetricTag) SetName(value string) PatternFlowG return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1ReservedMetricTag) Offset() int32 { @@ -240343,13 +240842,13 @@ func (obj *patternFlowGtpv1ReservedMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1ReservedMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpv1ReservedMetricTag object func (obj *patternFlowGtpv1ReservedMetricTag) SetOffset(value int32) PatternFlowGtpv1ReservedMetricTag { @@ -240357,7 +240856,7 @@ func (obj *patternFlowGtpv1ReservedMetricTag) SetOffset(value int32) PatternFlow return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1ReservedMetricTag) Length() int32 { @@ -240365,13 +240864,13 @@ func (obj *patternFlowGtpv1ReservedMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1ReservedMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpv1ReservedMetricTag object func (obj *patternFlowGtpv1ReservedMetricTag) SetLength(value int32) PatternFlowGtpv1ReservedMetricTag { @@ -240953,7 +241452,7 @@ func (obj *patternFlowGtpv1EFlagMetricTag) Clone() (PatternFlowGtpv1EFlagMetricT return newObj, nil } -// PatternFlowGtpv1EFlagMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpv1EFlagMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpv1EFlagMetricTag interface { Validation // Msg marshals PatternFlowGtpv1EFlagMetricTag to protobuf object *otg.PatternFlowGtpv1EFlagMetricTag @@ -241005,14 +241504,14 @@ type PatternFlowGtpv1EFlagMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpv1EFlagMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1EFlagMetricTag object func (obj *patternFlowGtpv1EFlagMetricTag) SetName(value string) PatternFlowGtpv1EFlagMetricTag { @@ -241020,7 +241519,7 @@ func (obj *patternFlowGtpv1EFlagMetricTag) SetName(value string) PatternFlowGtpv return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1EFlagMetricTag) Offset() int32 { @@ -241028,13 +241527,13 @@ func (obj *patternFlowGtpv1EFlagMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1EFlagMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpv1EFlagMetricTag object func (obj *patternFlowGtpv1EFlagMetricTag) SetOffset(value int32) PatternFlowGtpv1EFlagMetricTag { @@ -241042,7 +241541,7 @@ func (obj *patternFlowGtpv1EFlagMetricTag) SetOffset(value int32) PatternFlowGtp return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1EFlagMetricTag) Length() int32 { @@ -241050,13 +241549,13 @@ func (obj *patternFlowGtpv1EFlagMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1EFlagMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpv1EFlagMetricTag object func (obj *patternFlowGtpv1EFlagMetricTag) SetLength(value int32) PatternFlowGtpv1EFlagMetricTag { @@ -241638,7 +242137,7 @@ func (obj *patternFlowGtpv1SFlagMetricTag) Clone() (PatternFlowGtpv1SFlagMetricT return newObj, nil } -// PatternFlowGtpv1SFlagMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpv1SFlagMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpv1SFlagMetricTag interface { Validation // Msg marshals PatternFlowGtpv1SFlagMetricTag to protobuf object *otg.PatternFlowGtpv1SFlagMetricTag @@ -241690,14 +242189,14 @@ type PatternFlowGtpv1SFlagMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpv1SFlagMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1SFlagMetricTag object func (obj *patternFlowGtpv1SFlagMetricTag) SetName(value string) PatternFlowGtpv1SFlagMetricTag { @@ -241705,7 +242204,7 @@ func (obj *patternFlowGtpv1SFlagMetricTag) SetName(value string) PatternFlowGtpv return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1SFlagMetricTag) Offset() int32 { @@ -241713,13 +242212,13 @@ func (obj *patternFlowGtpv1SFlagMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1SFlagMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpv1SFlagMetricTag object func (obj *patternFlowGtpv1SFlagMetricTag) SetOffset(value int32) PatternFlowGtpv1SFlagMetricTag { @@ -241727,7 +242226,7 @@ func (obj *patternFlowGtpv1SFlagMetricTag) SetOffset(value int32) PatternFlowGtp return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1SFlagMetricTag) Length() int32 { @@ -241735,13 +242234,13 @@ func (obj *patternFlowGtpv1SFlagMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1SFlagMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpv1SFlagMetricTag object func (obj *patternFlowGtpv1SFlagMetricTag) SetLength(value int32) PatternFlowGtpv1SFlagMetricTag { @@ -242323,7 +242822,7 @@ func (obj *patternFlowGtpv1PnFlagMetricTag) Clone() (PatternFlowGtpv1PnFlagMetri return newObj, nil } -// PatternFlowGtpv1PnFlagMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpv1PnFlagMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpv1PnFlagMetricTag interface { Validation // Msg marshals PatternFlowGtpv1PnFlagMetricTag to protobuf object *otg.PatternFlowGtpv1PnFlagMetricTag @@ -242375,14 +242874,14 @@ type PatternFlowGtpv1PnFlagMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpv1PnFlagMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1PnFlagMetricTag object func (obj *patternFlowGtpv1PnFlagMetricTag) SetName(value string) PatternFlowGtpv1PnFlagMetricTag { @@ -242390,7 +242889,7 @@ func (obj *patternFlowGtpv1PnFlagMetricTag) SetName(value string) PatternFlowGtp return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1PnFlagMetricTag) Offset() int32 { @@ -242398,13 +242897,13 @@ func (obj *patternFlowGtpv1PnFlagMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1PnFlagMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpv1PnFlagMetricTag object func (obj *patternFlowGtpv1PnFlagMetricTag) SetOffset(value int32) PatternFlowGtpv1PnFlagMetricTag { @@ -242412,7 +242911,7 @@ func (obj *patternFlowGtpv1PnFlagMetricTag) SetOffset(value int32) PatternFlowGt return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1PnFlagMetricTag) Length() int32 { @@ -242420,13 +242919,13 @@ func (obj *patternFlowGtpv1PnFlagMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1PnFlagMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpv1PnFlagMetricTag object func (obj *patternFlowGtpv1PnFlagMetricTag) SetLength(value int32) PatternFlowGtpv1PnFlagMetricTag { @@ -243008,7 +243507,7 @@ func (obj *patternFlowGtpv1MessageTypeMetricTag) Clone() (PatternFlowGtpv1Messag return newObj, nil } -// PatternFlowGtpv1MessageTypeMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpv1MessageTypeMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpv1MessageTypeMetricTag interface { Validation // Msg marshals PatternFlowGtpv1MessageTypeMetricTag to protobuf object *otg.PatternFlowGtpv1MessageTypeMetricTag @@ -243060,14 +243559,14 @@ type PatternFlowGtpv1MessageTypeMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpv1MessageTypeMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1MessageTypeMetricTag object func (obj *patternFlowGtpv1MessageTypeMetricTag) SetName(value string) PatternFlowGtpv1MessageTypeMetricTag { @@ -243075,7 +243574,7 @@ func (obj *patternFlowGtpv1MessageTypeMetricTag) SetName(value string) PatternFl return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1MessageTypeMetricTag) Offset() int32 { @@ -243083,13 +243582,13 @@ func (obj *patternFlowGtpv1MessageTypeMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1MessageTypeMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpv1MessageTypeMetricTag object func (obj *patternFlowGtpv1MessageTypeMetricTag) SetOffset(value int32) PatternFlowGtpv1MessageTypeMetricTag { @@ -243097,7 +243596,7 @@ func (obj *patternFlowGtpv1MessageTypeMetricTag) SetOffset(value int32) PatternF return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1MessageTypeMetricTag) Length() int32 { @@ -243105,13 +243604,13 @@ func (obj *patternFlowGtpv1MessageTypeMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1MessageTypeMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpv1MessageTypeMetricTag object func (obj *patternFlowGtpv1MessageTypeMetricTag) SetLength(value int32) PatternFlowGtpv1MessageTypeMetricTag { @@ -243693,7 +244192,7 @@ func (obj *patternFlowGtpv1MessageLengthMetricTag) Clone() (PatternFlowGtpv1Mess return newObj, nil } -// PatternFlowGtpv1MessageLengthMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpv1MessageLengthMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpv1MessageLengthMetricTag interface { Validation // Msg marshals PatternFlowGtpv1MessageLengthMetricTag to protobuf object *otg.PatternFlowGtpv1MessageLengthMetricTag @@ -243745,14 +244244,14 @@ type PatternFlowGtpv1MessageLengthMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpv1MessageLengthMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1MessageLengthMetricTag object func (obj *patternFlowGtpv1MessageLengthMetricTag) SetName(value string) PatternFlowGtpv1MessageLengthMetricTag { @@ -243760,7 +244259,7 @@ func (obj *patternFlowGtpv1MessageLengthMetricTag) SetName(value string) Pattern return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1MessageLengthMetricTag) Offset() int32 { @@ -243768,13 +244267,13 @@ func (obj *patternFlowGtpv1MessageLengthMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1MessageLengthMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpv1MessageLengthMetricTag object func (obj *patternFlowGtpv1MessageLengthMetricTag) SetOffset(value int32) PatternFlowGtpv1MessageLengthMetricTag { @@ -243782,7 +244281,7 @@ func (obj *patternFlowGtpv1MessageLengthMetricTag) SetOffset(value int32) Patter return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1MessageLengthMetricTag) Length() int32 { @@ -243790,13 +244289,13 @@ func (obj *patternFlowGtpv1MessageLengthMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1MessageLengthMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpv1MessageLengthMetricTag object func (obj *patternFlowGtpv1MessageLengthMetricTag) SetLength(value int32) PatternFlowGtpv1MessageLengthMetricTag { @@ -244378,7 +244877,7 @@ func (obj *patternFlowGtpv1TeidMetricTag) Clone() (PatternFlowGtpv1TeidMetricTag return newObj, nil } -// PatternFlowGtpv1TeidMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpv1TeidMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpv1TeidMetricTag interface { Validation // Msg marshals PatternFlowGtpv1TeidMetricTag to protobuf object *otg.PatternFlowGtpv1TeidMetricTag @@ -244430,14 +244929,14 @@ type PatternFlowGtpv1TeidMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpv1TeidMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1TeidMetricTag object func (obj *patternFlowGtpv1TeidMetricTag) SetName(value string) PatternFlowGtpv1TeidMetricTag { @@ -244445,7 +244944,7 @@ func (obj *patternFlowGtpv1TeidMetricTag) SetName(value string) PatternFlowGtpv1 return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1TeidMetricTag) Offset() int32 { @@ -244453,13 +244952,13 @@ func (obj *patternFlowGtpv1TeidMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1TeidMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpv1TeidMetricTag object func (obj *patternFlowGtpv1TeidMetricTag) SetOffset(value int32) PatternFlowGtpv1TeidMetricTag { @@ -244467,7 +244966,7 @@ func (obj *patternFlowGtpv1TeidMetricTag) SetOffset(value int32) PatternFlowGtpv return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1TeidMetricTag) Length() int32 { @@ -244475,13 +244974,13 @@ func (obj *patternFlowGtpv1TeidMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1TeidMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpv1TeidMetricTag object func (obj *patternFlowGtpv1TeidMetricTag) SetLength(value int32) PatternFlowGtpv1TeidMetricTag { @@ -245063,7 +245562,7 @@ func (obj *patternFlowGtpv1SquenceNumberMetricTag) Clone() (PatternFlowGtpv1Sque return newObj, nil } -// PatternFlowGtpv1SquenceNumberMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpv1SquenceNumberMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpv1SquenceNumberMetricTag interface { Validation // Msg marshals PatternFlowGtpv1SquenceNumberMetricTag to protobuf object *otg.PatternFlowGtpv1SquenceNumberMetricTag @@ -245115,14 +245614,14 @@ type PatternFlowGtpv1SquenceNumberMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpv1SquenceNumberMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1SquenceNumberMetricTag object func (obj *patternFlowGtpv1SquenceNumberMetricTag) SetName(value string) PatternFlowGtpv1SquenceNumberMetricTag { @@ -245130,7 +245629,7 @@ func (obj *patternFlowGtpv1SquenceNumberMetricTag) SetName(value string) Pattern return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1SquenceNumberMetricTag) Offset() int32 { @@ -245138,13 +245637,13 @@ func (obj *patternFlowGtpv1SquenceNumberMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1SquenceNumberMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpv1SquenceNumberMetricTag object func (obj *patternFlowGtpv1SquenceNumberMetricTag) SetOffset(value int32) PatternFlowGtpv1SquenceNumberMetricTag { @@ -245152,7 +245651,7 @@ func (obj *patternFlowGtpv1SquenceNumberMetricTag) SetOffset(value int32) Patter return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1SquenceNumberMetricTag) Length() int32 { @@ -245160,13 +245659,13 @@ func (obj *patternFlowGtpv1SquenceNumberMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1SquenceNumberMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpv1SquenceNumberMetricTag object func (obj *patternFlowGtpv1SquenceNumberMetricTag) SetLength(value int32) PatternFlowGtpv1SquenceNumberMetricTag { @@ -245748,7 +246247,7 @@ func (obj *patternFlowGtpv1NPduNumberMetricTag) Clone() (PatternFlowGtpv1NPduNum return newObj, nil } -// PatternFlowGtpv1NPduNumberMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpv1NPduNumberMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpv1NPduNumberMetricTag interface { Validation // Msg marshals PatternFlowGtpv1NPduNumberMetricTag to protobuf object *otg.PatternFlowGtpv1NPduNumberMetricTag @@ -245800,14 +246299,14 @@ type PatternFlowGtpv1NPduNumberMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpv1NPduNumberMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1NPduNumberMetricTag object func (obj *patternFlowGtpv1NPduNumberMetricTag) SetName(value string) PatternFlowGtpv1NPduNumberMetricTag { @@ -245815,7 +246314,7 @@ func (obj *patternFlowGtpv1NPduNumberMetricTag) SetName(value string) PatternFlo return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1NPduNumberMetricTag) Offset() int32 { @@ -245823,13 +246322,13 @@ func (obj *patternFlowGtpv1NPduNumberMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1NPduNumberMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpv1NPduNumberMetricTag object func (obj *patternFlowGtpv1NPduNumberMetricTag) SetOffset(value int32) PatternFlowGtpv1NPduNumberMetricTag { @@ -245837,7 +246336,7 @@ func (obj *patternFlowGtpv1NPduNumberMetricTag) SetOffset(value int32) PatternFl return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1NPduNumberMetricTag) Length() int32 { @@ -245845,13 +246344,13 @@ func (obj *patternFlowGtpv1NPduNumberMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1NPduNumberMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpv1NPduNumberMetricTag object func (obj *patternFlowGtpv1NPduNumberMetricTag) SetLength(value int32) PatternFlowGtpv1NPduNumberMetricTag { @@ -246433,7 +246932,7 @@ func (obj *patternFlowGtpv1NextExtensionHeaderTypeMetricTag) Clone() (PatternFlo return newObj, nil } -// PatternFlowGtpv1NextExtensionHeaderTypeMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpv1NextExtensionHeaderTypeMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpv1NextExtensionHeaderTypeMetricTag interface { Validation // Msg marshals PatternFlowGtpv1NextExtensionHeaderTypeMetricTag to protobuf object *otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag @@ -246485,14 +246984,14 @@ type PatternFlowGtpv1NextExtensionHeaderTypeMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpv1NextExtensionHeaderTypeMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv1NextExtensionHeaderTypeMetricTag object func (obj *patternFlowGtpv1NextExtensionHeaderTypeMetricTag) SetName(value string) PatternFlowGtpv1NextExtensionHeaderTypeMetricTag { @@ -246500,7 +246999,7 @@ func (obj *patternFlowGtpv1NextExtensionHeaderTypeMetricTag) SetName(value strin return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1NextExtensionHeaderTypeMetricTag) Offset() int32 { @@ -246508,13 +247007,13 @@ func (obj *patternFlowGtpv1NextExtensionHeaderTypeMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv1NextExtensionHeaderTypeMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpv1NextExtensionHeaderTypeMetricTag object func (obj *patternFlowGtpv1NextExtensionHeaderTypeMetricTag) SetOffset(value int32) PatternFlowGtpv1NextExtensionHeaderTypeMetricTag { @@ -246522,7 +247021,7 @@ func (obj *patternFlowGtpv1NextExtensionHeaderTypeMetricTag) SetOffset(value int return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1NextExtensionHeaderTypeMetricTag) Length() int32 { @@ -246530,13 +247029,13 @@ func (obj *patternFlowGtpv1NextExtensionHeaderTypeMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv1NextExtensionHeaderTypeMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpv1NextExtensionHeaderTypeMetricTag object func (obj *patternFlowGtpv1NextExtensionHeaderTypeMetricTag) SetLength(value int32) PatternFlowGtpv1NextExtensionHeaderTypeMetricTag { @@ -247310,7 +247809,7 @@ func (obj *patternFlowGtpExtensionExtensionLength) SetValues(value []int32) Patt return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpExtensionExtensionLengthMetricTag func (obj *patternFlowGtpExtensionExtensionLength) MetricTags() PatternFlowGtpExtensionExtensionLengthPatternFlowGtpExtensionExtensionLengthMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -247893,7 +248392,7 @@ func (obj *patternFlowGtpExtensionContents) SetValues(value []int64) PatternFlow return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpExtensionContentsMetricTag func (obj *patternFlowGtpExtensionContents) MetricTags() PatternFlowGtpExtensionContentsPatternFlowGtpExtensionContentsMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -248476,7 +248975,7 @@ func (obj *patternFlowGtpExtensionNextExtensionHeader) SetValues(value []int32) return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowGtpExtensionNextExtensionHeaderMetricTag func (obj *patternFlowGtpExtensionNextExtensionHeader) MetricTags() PatternFlowGtpExtensionNextExtensionHeaderPatternFlowGtpExtensionNextExtensionHeaderMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -248867,7 +249366,7 @@ func (obj *patternFlowGtpv2VersionMetricTag) Clone() (PatternFlowGtpv2VersionMet return newObj, nil } -// PatternFlowGtpv2VersionMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpv2VersionMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpv2VersionMetricTag interface { Validation // Msg marshals PatternFlowGtpv2VersionMetricTag to protobuf object *otg.PatternFlowGtpv2VersionMetricTag @@ -248919,14 +249418,14 @@ type PatternFlowGtpv2VersionMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpv2VersionMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv2VersionMetricTag object func (obj *patternFlowGtpv2VersionMetricTag) SetName(value string) PatternFlowGtpv2VersionMetricTag { @@ -248934,7 +249433,7 @@ func (obj *patternFlowGtpv2VersionMetricTag) SetName(value string) PatternFlowGt return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv2VersionMetricTag) Offset() int32 { @@ -248942,13 +249441,13 @@ func (obj *patternFlowGtpv2VersionMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv2VersionMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpv2VersionMetricTag object func (obj *patternFlowGtpv2VersionMetricTag) SetOffset(value int32) PatternFlowGtpv2VersionMetricTag { @@ -248956,7 +249455,7 @@ func (obj *patternFlowGtpv2VersionMetricTag) SetOffset(value int32) PatternFlowG return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv2VersionMetricTag) Length() int32 { @@ -248964,13 +249463,13 @@ func (obj *patternFlowGtpv2VersionMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv2VersionMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpv2VersionMetricTag object func (obj *patternFlowGtpv2VersionMetricTag) SetLength(value int32) PatternFlowGtpv2VersionMetricTag { @@ -249552,7 +250051,7 @@ func (obj *patternFlowGtpv2PiggybackingFlagMetricTag) Clone() (PatternFlowGtpv2P return newObj, nil } -// PatternFlowGtpv2PiggybackingFlagMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpv2PiggybackingFlagMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpv2PiggybackingFlagMetricTag interface { Validation // Msg marshals PatternFlowGtpv2PiggybackingFlagMetricTag to protobuf object *otg.PatternFlowGtpv2PiggybackingFlagMetricTag @@ -249604,14 +250103,14 @@ type PatternFlowGtpv2PiggybackingFlagMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpv2PiggybackingFlagMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv2PiggybackingFlagMetricTag object func (obj *patternFlowGtpv2PiggybackingFlagMetricTag) SetName(value string) PatternFlowGtpv2PiggybackingFlagMetricTag { @@ -249619,7 +250118,7 @@ func (obj *patternFlowGtpv2PiggybackingFlagMetricTag) SetName(value string) Patt return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv2PiggybackingFlagMetricTag) Offset() int32 { @@ -249627,13 +250126,13 @@ func (obj *patternFlowGtpv2PiggybackingFlagMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv2PiggybackingFlagMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpv2PiggybackingFlagMetricTag object func (obj *patternFlowGtpv2PiggybackingFlagMetricTag) SetOffset(value int32) PatternFlowGtpv2PiggybackingFlagMetricTag { @@ -249641,7 +250140,7 @@ func (obj *patternFlowGtpv2PiggybackingFlagMetricTag) SetOffset(value int32) Pat return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv2PiggybackingFlagMetricTag) Length() int32 { @@ -249649,13 +250148,13 @@ func (obj *patternFlowGtpv2PiggybackingFlagMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv2PiggybackingFlagMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpv2PiggybackingFlagMetricTag object func (obj *patternFlowGtpv2PiggybackingFlagMetricTag) SetLength(value int32) PatternFlowGtpv2PiggybackingFlagMetricTag { @@ -250237,7 +250736,7 @@ func (obj *patternFlowGtpv2TeidFlagMetricTag) Clone() (PatternFlowGtpv2TeidFlagM return newObj, nil } -// PatternFlowGtpv2TeidFlagMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpv2TeidFlagMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpv2TeidFlagMetricTag interface { Validation // Msg marshals PatternFlowGtpv2TeidFlagMetricTag to protobuf object *otg.PatternFlowGtpv2TeidFlagMetricTag @@ -250289,14 +250788,14 @@ type PatternFlowGtpv2TeidFlagMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpv2TeidFlagMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv2TeidFlagMetricTag object func (obj *patternFlowGtpv2TeidFlagMetricTag) SetName(value string) PatternFlowGtpv2TeidFlagMetricTag { @@ -250304,7 +250803,7 @@ func (obj *patternFlowGtpv2TeidFlagMetricTag) SetName(value string) PatternFlowG return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv2TeidFlagMetricTag) Offset() int32 { @@ -250312,13 +250811,13 @@ func (obj *patternFlowGtpv2TeidFlagMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv2TeidFlagMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpv2TeidFlagMetricTag object func (obj *patternFlowGtpv2TeidFlagMetricTag) SetOffset(value int32) PatternFlowGtpv2TeidFlagMetricTag { @@ -250326,7 +250825,7 @@ func (obj *patternFlowGtpv2TeidFlagMetricTag) SetOffset(value int32) PatternFlow return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv2TeidFlagMetricTag) Length() int32 { @@ -250334,13 +250833,13 @@ func (obj *patternFlowGtpv2TeidFlagMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv2TeidFlagMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpv2TeidFlagMetricTag object func (obj *patternFlowGtpv2TeidFlagMetricTag) SetLength(value int32) PatternFlowGtpv2TeidFlagMetricTag { @@ -250922,7 +251421,7 @@ func (obj *patternFlowGtpv2Spare1MetricTag) Clone() (PatternFlowGtpv2Spare1Metri return newObj, nil } -// PatternFlowGtpv2Spare1MetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpv2Spare1MetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpv2Spare1MetricTag interface { Validation // Msg marshals PatternFlowGtpv2Spare1MetricTag to protobuf object *otg.PatternFlowGtpv2Spare1MetricTag @@ -250974,14 +251473,14 @@ type PatternFlowGtpv2Spare1MetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpv2Spare1MetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv2Spare1MetricTag object func (obj *patternFlowGtpv2Spare1MetricTag) SetName(value string) PatternFlowGtpv2Spare1MetricTag { @@ -250989,7 +251488,7 @@ func (obj *patternFlowGtpv2Spare1MetricTag) SetName(value string) PatternFlowGtp return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv2Spare1MetricTag) Offset() int32 { @@ -250997,13 +251496,13 @@ func (obj *patternFlowGtpv2Spare1MetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv2Spare1MetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpv2Spare1MetricTag object func (obj *patternFlowGtpv2Spare1MetricTag) SetOffset(value int32) PatternFlowGtpv2Spare1MetricTag { @@ -251011,7 +251510,7 @@ func (obj *patternFlowGtpv2Spare1MetricTag) SetOffset(value int32) PatternFlowGt return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv2Spare1MetricTag) Length() int32 { @@ -251019,13 +251518,13 @@ func (obj *patternFlowGtpv2Spare1MetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv2Spare1MetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpv2Spare1MetricTag object func (obj *patternFlowGtpv2Spare1MetricTag) SetLength(value int32) PatternFlowGtpv2Spare1MetricTag { @@ -251607,7 +252106,7 @@ func (obj *patternFlowGtpv2MessageTypeMetricTag) Clone() (PatternFlowGtpv2Messag return newObj, nil } -// PatternFlowGtpv2MessageTypeMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpv2MessageTypeMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpv2MessageTypeMetricTag interface { Validation // Msg marshals PatternFlowGtpv2MessageTypeMetricTag to protobuf object *otg.PatternFlowGtpv2MessageTypeMetricTag @@ -251659,14 +252158,14 @@ type PatternFlowGtpv2MessageTypeMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpv2MessageTypeMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv2MessageTypeMetricTag object func (obj *patternFlowGtpv2MessageTypeMetricTag) SetName(value string) PatternFlowGtpv2MessageTypeMetricTag { @@ -251674,7 +252173,7 @@ func (obj *patternFlowGtpv2MessageTypeMetricTag) SetName(value string) PatternFl return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv2MessageTypeMetricTag) Offset() int32 { @@ -251682,13 +252181,13 @@ func (obj *patternFlowGtpv2MessageTypeMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv2MessageTypeMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpv2MessageTypeMetricTag object func (obj *patternFlowGtpv2MessageTypeMetricTag) SetOffset(value int32) PatternFlowGtpv2MessageTypeMetricTag { @@ -251696,7 +252195,7 @@ func (obj *patternFlowGtpv2MessageTypeMetricTag) SetOffset(value int32) PatternF return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv2MessageTypeMetricTag) Length() int32 { @@ -251704,13 +252203,13 @@ func (obj *patternFlowGtpv2MessageTypeMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv2MessageTypeMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpv2MessageTypeMetricTag object func (obj *patternFlowGtpv2MessageTypeMetricTag) SetLength(value int32) PatternFlowGtpv2MessageTypeMetricTag { @@ -252292,7 +252791,7 @@ func (obj *patternFlowGtpv2MessageLengthMetricTag) Clone() (PatternFlowGtpv2Mess return newObj, nil } -// PatternFlowGtpv2MessageLengthMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpv2MessageLengthMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpv2MessageLengthMetricTag interface { Validation // Msg marshals PatternFlowGtpv2MessageLengthMetricTag to protobuf object *otg.PatternFlowGtpv2MessageLengthMetricTag @@ -252344,14 +252843,14 @@ type PatternFlowGtpv2MessageLengthMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpv2MessageLengthMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv2MessageLengthMetricTag object func (obj *patternFlowGtpv2MessageLengthMetricTag) SetName(value string) PatternFlowGtpv2MessageLengthMetricTag { @@ -252359,7 +252858,7 @@ func (obj *patternFlowGtpv2MessageLengthMetricTag) SetName(value string) Pattern return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv2MessageLengthMetricTag) Offset() int32 { @@ -252367,13 +252866,13 @@ func (obj *patternFlowGtpv2MessageLengthMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv2MessageLengthMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpv2MessageLengthMetricTag object func (obj *patternFlowGtpv2MessageLengthMetricTag) SetOffset(value int32) PatternFlowGtpv2MessageLengthMetricTag { @@ -252381,7 +252880,7 @@ func (obj *patternFlowGtpv2MessageLengthMetricTag) SetOffset(value int32) Patter return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv2MessageLengthMetricTag) Length() int32 { @@ -252389,13 +252888,13 @@ func (obj *patternFlowGtpv2MessageLengthMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv2MessageLengthMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpv2MessageLengthMetricTag object func (obj *patternFlowGtpv2MessageLengthMetricTag) SetLength(value int32) PatternFlowGtpv2MessageLengthMetricTag { @@ -252977,7 +253476,7 @@ func (obj *patternFlowGtpv2TeidMetricTag) Clone() (PatternFlowGtpv2TeidMetricTag return newObj, nil } -// PatternFlowGtpv2TeidMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpv2TeidMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpv2TeidMetricTag interface { Validation // Msg marshals PatternFlowGtpv2TeidMetricTag to protobuf object *otg.PatternFlowGtpv2TeidMetricTag @@ -253029,14 +253528,14 @@ type PatternFlowGtpv2TeidMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpv2TeidMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv2TeidMetricTag object func (obj *patternFlowGtpv2TeidMetricTag) SetName(value string) PatternFlowGtpv2TeidMetricTag { @@ -253044,7 +253543,7 @@ func (obj *patternFlowGtpv2TeidMetricTag) SetName(value string) PatternFlowGtpv2 return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv2TeidMetricTag) Offset() int32 { @@ -253052,13 +253551,13 @@ func (obj *patternFlowGtpv2TeidMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv2TeidMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpv2TeidMetricTag object func (obj *patternFlowGtpv2TeidMetricTag) SetOffset(value int32) PatternFlowGtpv2TeidMetricTag { @@ -253066,7 +253565,7 @@ func (obj *patternFlowGtpv2TeidMetricTag) SetOffset(value int32) PatternFlowGtpv return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv2TeidMetricTag) Length() int32 { @@ -253074,13 +253573,13 @@ func (obj *patternFlowGtpv2TeidMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv2TeidMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpv2TeidMetricTag object func (obj *patternFlowGtpv2TeidMetricTag) SetLength(value int32) PatternFlowGtpv2TeidMetricTag { @@ -253662,7 +254161,7 @@ func (obj *patternFlowGtpv2SequenceNumberMetricTag) Clone() (PatternFlowGtpv2Seq return newObj, nil } -// PatternFlowGtpv2SequenceNumberMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpv2SequenceNumberMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpv2SequenceNumberMetricTag interface { Validation // Msg marshals PatternFlowGtpv2SequenceNumberMetricTag to protobuf object *otg.PatternFlowGtpv2SequenceNumberMetricTag @@ -253714,14 +254213,14 @@ type PatternFlowGtpv2SequenceNumberMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpv2SequenceNumberMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv2SequenceNumberMetricTag object func (obj *patternFlowGtpv2SequenceNumberMetricTag) SetName(value string) PatternFlowGtpv2SequenceNumberMetricTag { @@ -253729,7 +254228,7 @@ func (obj *patternFlowGtpv2SequenceNumberMetricTag) SetName(value string) Patter return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv2SequenceNumberMetricTag) Offset() int32 { @@ -253737,13 +254236,13 @@ func (obj *patternFlowGtpv2SequenceNumberMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv2SequenceNumberMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpv2SequenceNumberMetricTag object func (obj *patternFlowGtpv2SequenceNumberMetricTag) SetOffset(value int32) PatternFlowGtpv2SequenceNumberMetricTag { @@ -253751,7 +254250,7 @@ func (obj *patternFlowGtpv2SequenceNumberMetricTag) SetOffset(value int32) Patte return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv2SequenceNumberMetricTag) Length() int32 { @@ -253759,13 +254258,13 @@ func (obj *patternFlowGtpv2SequenceNumberMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv2SequenceNumberMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpv2SequenceNumberMetricTag object func (obj *patternFlowGtpv2SequenceNumberMetricTag) SetLength(value int32) PatternFlowGtpv2SequenceNumberMetricTag { @@ -254347,7 +254846,7 @@ func (obj *patternFlowGtpv2Spare2MetricTag) Clone() (PatternFlowGtpv2Spare2Metri return newObj, nil } -// PatternFlowGtpv2Spare2MetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpv2Spare2MetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpv2Spare2MetricTag interface { Validation // Msg marshals PatternFlowGtpv2Spare2MetricTag to protobuf object *otg.PatternFlowGtpv2Spare2MetricTag @@ -254399,14 +254898,14 @@ type PatternFlowGtpv2Spare2MetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpv2Spare2MetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpv2Spare2MetricTag object func (obj *patternFlowGtpv2Spare2MetricTag) SetName(value string) PatternFlowGtpv2Spare2MetricTag { @@ -254414,7 +254913,7 @@ func (obj *patternFlowGtpv2Spare2MetricTag) SetName(value string) PatternFlowGtp return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv2Spare2MetricTag) Offset() int32 { @@ -254422,13 +254921,13 @@ func (obj *patternFlowGtpv2Spare2MetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpv2Spare2MetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpv2Spare2MetricTag object func (obj *patternFlowGtpv2Spare2MetricTag) SetOffset(value int32) PatternFlowGtpv2Spare2MetricTag { @@ -254436,7 +254935,7 @@ func (obj *patternFlowGtpv2Spare2MetricTag) SetOffset(value int32) PatternFlowGt return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv2Spare2MetricTag) Length() int32 { @@ -254444,13 +254943,13 @@ func (obj *patternFlowGtpv2Spare2MetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpv2Spare2MetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpv2Spare2MetricTag object func (obj *patternFlowGtpv2Spare2MetricTag) SetLength(value int32) PatternFlowGtpv2Spare2MetricTag { @@ -255032,7 +255531,7 @@ func (obj *patternFlowArpHardwareTypeMetricTag) Clone() (PatternFlowArpHardwareT return newObj, nil } -// PatternFlowArpHardwareTypeMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowArpHardwareTypeMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowArpHardwareTypeMetricTag interface { Validation // Msg marshals PatternFlowArpHardwareTypeMetricTag to protobuf object *otg.PatternFlowArpHardwareTypeMetricTag @@ -255084,14 +255583,14 @@ type PatternFlowArpHardwareTypeMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowArpHardwareTypeMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowArpHardwareTypeMetricTag object func (obj *patternFlowArpHardwareTypeMetricTag) SetName(value string) PatternFlowArpHardwareTypeMetricTag { @@ -255099,7 +255598,7 @@ func (obj *patternFlowArpHardwareTypeMetricTag) SetName(value string) PatternFlo return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowArpHardwareTypeMetricTag) Offset() int32 { @@ -255107,13 +255606,13 @@ func (obj *patternFlowArpHardwareTypeMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowArpHardwareTypeMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowArpHardwareTypeMetricTag object func (obj *patternFlowArpHardwareTypeMetricTag) SetOffset(value int32) PatternFlowArpHardwareTypeMetricTag { @@ -255121,7 +255620,7 @@ func (obj *patternFlowArpHardwareTypeMetricTag) SetOffset(value int32) PatternFl return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowArpHardwareTypeMetricTag) Length() int32 { @@ -255129,13 +255628,13 @@ func (obj *patternFlowArpHardwareTypeMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowArpHardwareTypeMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowArpHardwareTypeMetricTag object func (obj *patternFlowArpHardwareTypeMetricTag) SetLength(value int32) PatternFlowArpHardwareTypeMetricTag { @@ -255717,7 +256216,7 @@ func (obj *patternFlowArpProtocolTypeMetricTag) Clone() (PatternFlowArpProtocolT return newObj, nil } -// PatternFlowArpProtocolTypeMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowArpProtocolTypeMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowArpProtocolTypeMetricTag interface { Validation // Msg marshals PatternFlowArpProtocolTypeMetricTag to protobuf object *otg.PatternFlowArpProtocolTypeMetricTag @@ -255769,14 +256268,14 @@ type PatternFlowArpProtocolTypeMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowArpProtocolTypeMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowArpProtocolTypeMetricTag object func (obj *patternFlowArpProtocolTypeMetricTag) SetName(value string) PatternFlowArpProtocolTypeMetricTag { @@ -255784,7 +256283,7 @@ func (obj *patternFlowArpProtocolTypeMetricTag) SetName(value string) PatternFlo return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowArpProtocolTypeMetricTag) Offset() int32 { @@ -255792,13 +256291,13 @@ func (obj *patternFlowArpProtocolTypeMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowArpProtocolTypeMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowArpProtocolTypeMetricTag object func (obj *patternFlowArpProtocolTypeMetricTag) SetOffset(value int32) PatternFlowArpProtocolTypeMetricTag { @@ -255806,7 +256305,7 @@ func (obj *patternFlowArpProtocolTypeMetricTag) SetOffset(value int32) PatternFl return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowArpProtocolTypeMetricTag) Length() int32 { @@ -255814,13 +256313,13 @@ func (obj *patternFlowArpProtocolTypeMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowArpProtocolTypeMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowArpProtocolTypeMetricTag object func (obj *patternFlowArpProtocolTypeMetricTag) SetLength(value int32) PatternFlowArpProtocolTypeMetricTag { @@ -256402,7 +256901,7 @@ func (obj *patternFlowArpHardwareLengthMetricTag) Clone() (PatternFlowArpHardwar return newObj, nil } -// PatternFlowArpHardwareLengthMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowArpHardwareLengthMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowArpHardwareLengthMetricTag interface { Validation // Msg marshals PatternFlowArpHardwareLengthMetricTag to protobuf object *otg.PatternFlowArpHardwareLengthMetricTag @@ -256454,14 +256953,14 @@ type PatternFlowArpHardwareLengthMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowArpHardwareLengthMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowArpHardwareLengthMetricTag object func (obj *patternFlowArpHardwareLengthMetricTag) SetName(value string) PatternFlowArpHardwareLengthMetricTag { @@ -256469,7 +256968,7 @@ func (obj *patternFlowArpHardwareLengthMetricTag) SetName(value string) PatternF return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowArpHardwareLengthMetricTag) Offset() int32 { @@ -256477,13 +256976,13 @@ func (obj *patternFlowArpHardwareLengthMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowArpHardwareLengthMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowArpHardwareLengthMetricTag object func (obj *patternFlowArpHardwareLengthMetricTag) SetOffset(value int32) PatternFlowArpHardwareLengthMetricTag { @@ -256491,7 +256990,7 @@ func (obj *patternFlowArpHardwareLengthMetricTag) SetOffset(value int32) Pattern return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowArpHardwareLengthMetricTag) Length() int32 { @@ -256499,13 +256998,13 @@ func (obj *patternFlowArpHardwareLengthMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowArpHardwareLengthMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowArpHardwareLengthMetricTag object func (obj *patternFlowArpHardwareLengthMetricTag) SetLength(value int32) PatternFlowArpHardwareLengthMetricTag { @@ -257087,7 +257586,7 @@ func (obj *patternFlowArpProtocolLengthMetricTag) Clone() (PatternFlowArpProtoco return newObj, nil } -// PatternFlowArpProtocolLengthMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowArpProtocolLengthMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowArpProtocolLengthMetricTag interface { Validation // Msg marshals PatternFlowArpProtocolLengthMetricTag to protobuf object *otg.PatternFlowArpProtocolLengthMetricTag @@ -257139,14 +257638,14 @@ type PatternFlowArpProtocolLengthMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowArpProtocolLengthMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowArpProtocolLengthMetricTag object func (obj *patternFlowArpProtocolLengthMetricTag) SetName(value string) PatternFlowArpProtocolLengthMetricTag { @@ -257154,7 +257653,7 @@ func (obj *patternFlowArpProtocolLengthMetricTag) SetName(value string) PatternF return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowArpProtocolLengthMetricTag) Offset() int32 { @@ -257162,13 +257661,13 @@ func (obj *patternFlowArpProtocolLengthMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowArpProtocolLengthMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowArpProtocolLengthMetricTag object func (obj *patternFlowArpProtocolLengthMetricTag) SetOffset(value int32) PatternFlowArpProtocolLengthMetricTag { @@ -257176,7 +257675,7 @@ func (obj *patternFlowArpProtocolLengthMetricTag) SetOffset(value int32) Pattern return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowArpProtocolLengthMetricTag) Length() int32 { @@ -257184,13 +257683,13 @@ func (obj *patternFlowArpProtocolLengthMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowArpProtocolLengthMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowArpProtocolLengthMetricTag object func (obj *patternFlowArpProtocolLengthMetricTag) SetLength(value int32) PatternFlowArpProtocolLengthMetricTag { @@ -257772,7 +258271,7 @@ func (obj *patternFlowArpOperationMetricTag) Clone() (PatternFlowArpOperationMet return newObj, nil } -// PatternFlowArpOperationMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowArpOperationMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowArpOperationMetricTag interface { Validation // Msg marshals PatternFlowArpOperationMetricTag to protobuf object *otg.PatternFlowArpOperationMetricTag @@ -257824,14 +258323,14 @@ type PatternFlowArpOperationMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowArpOperationMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowArpOperationMetricTag object func (obj *patternFlowArpOperationMetricTag) SetName(value string) PatternFlowArpOperationMetricTag { @@ -257839,7 +258338,7 @@ func (obj *patternFlowArpOperationMetricTag) SetName(value string) PatternFlowAr return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowArpOperationMetricTag) Offset() int32 { @@ -257847,13 +258346,13 @@ func (obj *patternFlowArpOperationMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowArpOperationMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowArpOperationMetricTag object func (obj *patternFlowArpOperationMetricTag) SetOffset(value int32) PatternFlowArpOperationMetricTag { @@ -257861,7 +258360,7 @@ func (obj *patternFlowArpOperationMetricTag) SetOffset(value int32) PatternFlowA return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowArpOperationMetricTag) Length() int32 { @@ -257869,13 +258368,13 @@ func (obj *patternFlowArpOperationMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowArpOperationMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowArpOperationMetricTag object func (obj *patternFlowArpOperationMetricTag) SetLength(value int32) PatternFlowArpOperationMetricTag { @@ -258457,7 +258956,7 @@ func (obj *patternFlowArpSenderHardwareAddrMetricTag) Clone() (PatternFlowArpSen return newObj, nil } -// PatternFlowArpSenderHardwareAddrMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowArpSenderHardwareAddrMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowArpSenderHardwareAddrMetricTag interface { Validation // Msg marshals PatternFlowArpSenderHardwareAddrMetricTag to protobuf object *otg.PatternFlowArpSenderHardwareAddrMetricTag @@ -258509,14 +259008,14 @@ type PatternFlowArpSenderHardwareAddrMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowArpSenderHardwareAddrMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowArpSenderHardwareAddrMetricTag object func (obj *patternFlowArpSenderHardwareAddrMetricTag) SetName(value string) PatternFlowArpSenderHardwareAddrMetricTag { @@ -258524,7 +259023,7 @@ func (obj *patternFlowArpSenderHardwareAddrMetricTag) SetName(value string) Patt return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowArpSenderHardwareAddrMetricTag) Offset() int32 { @@ -258532,13 +259031,13 @@ func (obj *patternFlowArpSenderHardwareAddrMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowArpSenderHardwareAddrMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowArpSenderHardwareAddrMetricTag object func (obj *patternFlowArpSenderHardwareAddrMetricTag) SetOffset(value int32) PatternFlowArpSenderHardwareAddrMetricTag { @@ -258546,7 +259045,7 @@ func (obj *patternFlowArpSenderHardwareAddrMetricTag) SetOffset(value int32) Pat return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowArpSenderHardwareAddrMetricTag) Length() int32 { @@ -258554,13 +259053,13 @@ func (obj *patternFlowArpSenderHardwareAddrMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowArpSenderHardwareAddrMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowArpSenderHardwareAddrMetricTag object func (obj *patternFlowArpSenderHardwareAddrMetricTag) SetLength(value int32) PatternFlowArpSenderHardwareAddrMetricTag { @@ -259140,7 +259639,7 @@ func (obj *patternFlowArpSenderProtocolAddrMetricTag) Clone() (PatternFlowArpSen return newObj, nil } -// PatternFlowArpSenderProtocolAddrMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowArpSenderProtocolAddrMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowArpSenderProtocolAddrMetricTag interface { Validation // Msg marshals PatternFlowArpSenderProtocolAddrMetricTag to protobuf object *otg.PatternFlowArpSenderProtocolAddrMetricTag @@ -259192,14 +259691,14 @@ type PatternFlowArpSenderProtocolAddrMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowArpSenderProtocolAddrMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowArpSenderProtocolAddrMetricTag object func (obj *patternFlowArpSenderProtocolAddrMetricTag) SetName(value string) PatternFlowArpSenderProtocolAddrMetricTag { @@ -259207,7 +259706,7 @@ func (obj *patternFlowArpSenderProtocolAddrMetricTag) SetName(value string) Patt return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowArpSenderProtocolAddrMetricTag) Offset() int32 { @@ -259215,13 +259714,13 @@ func (obj *patternFlowArpSenderProtocolAddrMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowArpSenderProtocolAddrMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowArpSenderProtocolAddrMetricTag object func (obj *patternFlowArpSenderProtocolAddrMetricTag) SetOffset(value int32) PatternFlowArpSenderProtocolAddrMetricTag { @@ -259229,7 +259728,7 @@ func (obj *patternFlowArpSenderProtocolAddrMetricTag) SetOffset(value int32) Pat return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowArpSenderProtocolAddrMetricTag) Length() int32 { @@ -259237,13 +259736,13 @@ func (obj *patternFlowArpSenderProtocolAddrMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowArpSenderProtocolAddrMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowArpSenderProtocolAddrMetricTag object func (obj *patternFlowArpSenderProtocolAddrMetricTag) SetLength(value int32) PatternFlowArpSenderProtocolAddrMetricTag { @@ -259823,7 +260322,7 @@ func (obj *patternFlowArpTargetHardwareAddrMetricTag) Clone() (PatternFlowArpTar return newObj, nil } -// PatternFlowArpTargetHardwareAddrMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowArpTargetHardwareAddrMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowArpTargetHardwareAddrMetricTag interface { Validation // Msg marshals PatternFlowArpTargetHardwareAddrMetricTag to protobuf object *otg.PatternFlowArpTargetHardwareAddrMetricTag @@ -259875,14 +260374,14 @@ type PatternFlowArpTargetHardwareAddrMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowArpTargetHardwareAddrMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowArpTargetHardwareAddrMetricTag object func (obj *patternFlowArpTargetHardwareAddrMetricTag) SetName(value string) PatternFlowArpTargetHardwareAddrMetricTag { @@ -259890,7 +260389,7 @@ func (obj *patternFlowArpTargetHardwareAddrMetricTag) SetName(value string) Patt return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowArpTargetHardwareAddrMetricTag) Offset() int32 { @@ -259898,13 +260397,13 @@ func (obj *patternFlowArpTargetHardwareAddrMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowArpTargetHardwareAddrMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowArpTargetHardwareAddrMetricTag object func (obj *patternFlowArpTargetHardwareAddrMetricTag) SetOffset(value int32) PatternFlowArpTargetHardwareAddrMetricTag { @@ -259912,7 +260411,7 @@ func (obj *patternFlowArpTargetHardwareAddrMetricTag) SetOffset(value int32) Pat return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowArpTargetHardwareAddrMetricTag) Length() int32 { @@ -259920,13 +260419,13 @@ func (obj *patternFlowArpTargetHardwareAddrMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowArpTargetHardwareAddrMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowArpTargetHardwareAddrMetricTag object func (obj *patternFlowArpTargetHardwareAddrMetricTag) SetLength(value int32) PatternFlowArpTargetHardwareAddrMetricTag { @@ -260506,7 +261005,7 @@ func (obj *patternFlowArpTargetProtocolAddrMetricTag) Clone() (PatternFlowArpTar return newObj, nil } -// PatternFlowArpTargetProtocolAddrMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowArpTargetProtocolAddrMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowArpTargetProtocolAddrMetricTag interface { Validation // Msg marshals PatternFlowArpTargetProtocolAddrMetricTag to protobuf object *otg.PatternFlowArpTargetProtocolAddrMetricTag @@ -260558,14 +261057,14 @@ type PatternFlowArpTargetProtocolAddrMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowArpTargetProtocolAddrMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowArpTargetProtocolAddrMetricTag object func (obj *patternFlowArpTargetProtocolAddrMetricTag) SetName(value string) PatternFlowArpTargetProtocolAddrMetricTag { @@ -260573,7 +261072,7 @@ func (obj *patternFlowArpTargetProtocolAddrMetricTag) SetName(value string) Patt return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowArpTargetProtocolAddrMetricTag) Offset() int32 { @@ -260581,13 +261080,13 @@ func (obj *patternFlowArpTargetProtocolAddrMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowArpTargetProtocolAddrMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowArpTargetProtocolAddrMetricTag object func (obj *patternFlowArpTargetProtocolAddrMetricTag) SetOffset(value int32) PatternFlowArpTargetProtocolAddrMetricTag { @@ -260595,7 +261094,7 @@ func (obj *patternFlowArpTargetProtocolAddrMetricTag) SetOffset(value int32) Pat return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowArpTargetProtocolAddrMetricTag) Length() int32 { @@ -260603,13 +261102,13 @@ func (obj *patternFlowArpTargetProtocolAddrMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowArpTargetProtocolAddrMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowArpTargetProtocolAddrMetricTag object func (obj *patternFlowArpTargetProtocolAddrMetricTag) SetLength(value int32) PatternFlowArpTargetProtocolAddrMetricTag { @@ -261381,7 +261880,7 @@ func (obj *patternFlowIcmpEchoType) SetValues(value []int32) PatternFlowIcmpEcho return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIcmpEchoTypeMetricTag func (obj *patternFlowIcmpEchoType) MetricTags() PatternFlowIcmpEchoTypePatternFlowIcmpEchoTypeMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -261964,7 +262463,7 @@ func (obj *patternFlowIcmpEchoCode) SetValues(value []int32) PatternFlowIcmpEcho return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIcmpEchoCodeMetricTag func (obj *patternFlowIcmpEchoCode) MetricTags() PatternFlowIcmpEchoCodePatternFlowIcmpEchoCodeMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -262911,7 +263410,7 @@ func (obj *patternFlowIcmpEchoIdentifier) SetValues(value []int32) PatternFlowIc return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIcmpEchoIdentifierMetricTag func (obj *patternFlowIcmpEchoIdentifier) MetricTags() PatternFlowIcmpEchoIdentifierPatternFlowIcmpEchoIdentifierMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -263494,7 +263993,7 @@ func (obj *patternFlowIcmpEchoSequenceNumber) SetValues(value []int32) PatternFl return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIcmpEchoSequenceNumberMetricTag func (obj *patternFlowIcmpEchoSequenceNumber) MetricTags() PatternFlowIcmpEchoSequenceNumberPatternFlowIcmpEchoSequenceNumberMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -264077,7 +264576,7 @@ func (obj *patternFlowIcmpv6EchoType) SetValues(value []int32) PatternFlowIcmpv6 return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIcmpv6EchoTypeMetricTag func (obj *patternFlowIcmpv6EchoType) MetricTags() PatternFlowIcmpv6EchoTypePatternFlowIcmpv6EchoTypeMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -264660,7 +265159,7 @@ func (obj *patternFlowIcmpv6EchoCode) SetValues(value []int32) PatternFlowIcmpv6 return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIcmpv6EchoCodeMetricTag func (obj *patternFlowIcmpv6EchoCode) MetricTags() PatternFlowIcmpv6EchoCodePatternFlowIcmpv6EchoCodeMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -265243,7 +265742,7 @@ func (obj *patternFlowIcmpv6EchoIdentifier) SetValues(value []int32) PatternFlow return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIcmpv6EchoIdentifierMetricTag func (obj *patternFlowIcmpv6EchoIdentifier) MetricTags() PatternFlowIcmpv6EchoIdentifierPatternFlowIcmpv6EchoIdentifierMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -265826,7 +266325,7 @@ func (obj *patternFlowIcmpv6EchoSequenceNumber) SetValues(value []int32) Pattern return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIcmpv6EchoSequenceNumberMetricTag func (obj *patternFlowIcmpv6EchoSequenceNumber) MetricTags() PatternFlowIcmpv6EchoSequenceNumberPatternFlowIcmpv6EchoSequenceNumberMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -266581,7 +267080,7 @@ func (obj *patternFlowPppAddressMetricTag) Clone() (PatternFlowPppAddressMetricT return newObj, nil } -// PatternFlowPppAddressMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowPppAddressMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowPppAddressMetricTag interface { Validation // Msg marshals PatternFlowPppAddressMetricTag to protobuf object *otg.PatternFlowPppAddressMetricTag @@ -266633,14 +267132,14 @@ type PatternFlowPppAddressMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowPppAddressMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPppAddressMetricTag object func (obj *patternFlowPppAddressMetricTag) SetName(value string) PatternFlowPppAddressMetricTag { @@ -266648,7 +267147,7 @@ func (obj *patternFlowPppAddressMetricTag) SetName(value string) PatternFlowPppA return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPppAddressMetricTag) Offset() int32 { @@ -266656,13 +267155,13 @@ func (obj *patternFlowPppAddressMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPppAddressMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowPppAddressMetricTag object func (obj *patternFlowPppAddressMetricTag) SetOffset(value int32) PatternFlowPppAddressMetricTag { @@ -266670,7 +267169,7 @@ func (obj *patternFlowPppAddressMetricTag) SetOffset(value int32) PatternFlowPpp return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPppAddressMetricTag) Length() int32 { @@ -266678,13 +267177,13 @@ func (obj *patternFlowPppAddressMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPppAddressMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowPppAddressMetricTag object func (obj *patternFlowPppAddressMetricTag) SetLength(value int32) PatternFlowPppAddressMetricTag { @@ -267266,7 +267765,7 @@ func (obj *patternFlowPppControlMetricTag) Clone() (PatternFlowPppControlMetricT return newObj, nil } -// PatternFlowPppControlMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowPppControlMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowPppControlMetricTag interface { Validation // Msg marshals PatternFlowPppControlMetricTag to protobuf object *otg.PatternFlowPppControlMetricTag @@ -267318,14 +267817,14 @@ type PatternFlowPppControlMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowPppControlMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPppControlMetricTag object func (obj *patternFlowPppControlMetricTag) SetName(value string) PatternFlowPppControlMetricTag { @@ -267333,7 +267832,7 @@ func (obj *patternFlowPppControlMetricTag) SetName(value string) PatternFlowPppC return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPppControlMetricTag) Offset() int32 { @@ -267341,13 +267840,13 @@ func (obj *patternFlowPppControlMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPppControlMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowPppControlMetricTag object func (obj *patternFlowPppControlMetricTag) SetOffset(value int32) PatternFlowPppControlMetricTag { @@ -267355,7 +267854,7 @@ func (obj *patternFlowPppControlMetricTag) SetOffset(value int32) PatternFlowPpp return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPppControlMetricTag) Length() int32 { @@ -267363,13 +267862,13 @@ func (obj *patternFlowPppControlMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPppControlMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowPppControlMetricTag object func (obj *patternFlowPppControlMetricTag) SetLength(value int32) PatternFlowPppControlMetricTag { @@ -267951,7 +268450,7 @@ func (obj *patternFlowPppProtocolTypeMetricTag) Clone() (PatternFlowPppProtocolT return newObj, nil } -// PatternFlowPppProtocolTypeMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowPppProtocolTypeMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowPppProtocolTypeMetricTag interface { Validation // Msg marshals PatternFlowPppProtocolTypeMetricTag to protobuf object *otg.PatternFlowPppProtocolTypeMetricTag @@ -268003,14 +268502,14 @@ type PatternFlowPppProtocolTypeMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowPppProtocolTypeMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowPppProtocolTypeMetricTag object func (obj *patternFlowPppProtocolTypeMetricTag) SetName(value string) PatternFlowPppProtocolTypeMetricTag { @@ -268018,7 +268517,7 @@ func (obj *patternFlowPppProtocolTypeMetricTag) SetName(value string) PatternFlo return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPppProtocolTypeMetricTag) Offset() int32 { @@ -268026,13 +268525,13 @@ func (obj *patternFlowPppProtocolTypeMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowPppProtocolTypeMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowPppProtocolTypeMetricTag object func (obj *patternFlowPppProtocolTypeMetricTag) SetOffset(value int32) PatternFlowPppProtocolTypeMetricTag { @@ -268040,7 +268539,7 @@ func (obj *patternFlowPppProtocolTypeMetricTag) SetOffset(value int32) PatternFl return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPppProtocolTypeMetricTag) Length() int32 { @@ -268048,13 +268547,13 @@ func (obj *patternFlowPppProtocolTypeMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowPppProtocolTypeMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowPppProtocolTypeMetricTag object func (obj *patternFlowPppProtocolTypeMetricTag) SetLength(value int32) PatternFlowPppProtocolTypeMetricTag { @@ -268636,7 +269135,7 @@ func (obj *patternFlowIgmpv1VersionMetricTag) Clone() (PatternFlowIgmpv1VersionM return newObj, nil } -// PatternFlowIgmpv1VersionMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIgmpv1VersionMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIgmpv1VersionMetricTag interface { Validation // Msg marshals PatternFlowIgmpv1VersionMetricTag to protobuf object *otg.PatternFlowIgmpv1VersionMetricTag @@ -268688,14 +269187,14 @@ type PatternFlowIgmpv1VersionMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIgmpv1VersionMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIgmpv1VersionMetricTag object func (obj *patternFlowIgmpv1VersionMetricTag) SetName(value string) PatternFlowIgmpv1VersionMetricTag { @@ -268703,7 +269202,7 @@ func (obj *patternFlowIgmpv1VersionMetricTag) SetName(value string) PatternFlowI return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIgmpv1VersionMetricTag) Offset() int32 { @@ -268711,13 +269210,13 @@ func (obj *patternFlowIgmpv1VersionMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIgmpv1VersionMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIgmpv1VersionMetricTag object func (obj *patternFlowIgmpv1VersionMetricTag) SetOffset(value int32) PatternFlowIgmpv1VersionMetricTag { @@ -268725,7 +269224,7 @@ func (obj *patternFlowIgmpv1VersionMetricTag) SetOffset(value int32) PatternFlow return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIgmpv1VersionMetricTag) Length() int32 { @@ -268733,13 +269232,13 @@ func (obj *patternFlowIgmpv1VersionMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIgmpv1VersionMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIgmpv1VersionMetricTag object func (obj *patternFlowIgmpv1VersionMetricTag) SetLength(value int32) PatternFlowIgmpv1VersionMetricTag { @@ -269321,7 +269820,7 @@ func (obj *patternFlowIgmpv1TypeMetricTag) Clone() (PatternFlowIgmpv1TypeMetricT return newObj, nil } -// PatternFlowIgmpv1TypeMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIgmpv1TypeMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIgmpv1TypeMetricTag interface { Validation // Msg marshals PatternFlowIgmpv1TypeMetricTag to protobuf object *otg.PatternFlowIgmpv1TypeMetricTag @@ -269373,14 +269872,14 @@ type PatternFlowIgmpv1TypeMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIgmpv1TypeMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIgmpv1TypeMetricTag object func (obj *patternFlowIgmpv1TypeMetricTag) SetName(value string) PatternFlowIgmpv1TypeMetricTag { @@ -269388,7 +269887,7 @@ func (obj *patternFlowIgmpv1TypeMetricTag) SetName(value string) PatternFlowIgmp return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIgmpv1TypeMetricTag) Offset() int32 { @@ -269396,13 +269895,13 @@ func (obj *patternFlowIgmpv1TypeMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIgmpv1TypeMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIgmpv1TypeMetricTag object func (obj *patternFlowIgmpv1TypeMetricTag) SetOffset(value int32) PatternFlowIgmpv1TypeMetricTag { @@ -269410,7 +269909,7 @@ func (obj *patternFlowIgmpv1TypeMetricTag) SetOffset(value int32) PatternFlowIgm return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIgmpv1TypeMetricTag) Length() int32 { @@ -269418,13 +269917,13 @@ func (obj *patternFlowIgmpv1TypeMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIgmpv1TypeMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIgmpv1TypeMetricTag object func (obj *patternFlowIgmpv1TypeMetricTag) SetLength(value int32) PatternFlowIgmpv1TypeMetricTag { @@ -270006,7 +270505,7 @@ func (obj *patternFlowIgmpv1UnusedMetricTag) Clone() (PatternFlowIgmpv1UnusedMet return newObj, nil } -// PatternFlowIgmpv1UnusedMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIgmpv1UnusedMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIgmpv1UnusedMetricTag interface { Validation // Msg marshals PatternFlowIgmpv1UnusedMetricTag to protobuf object *otg.PatternFlowIgmpv1UnusedMetricTag @@ -270058,14 +270557,14 @@ type PatternFlowIgmpv1UnusedMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIgmpv1UnusedMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIgmpv1UnusedMetricTag object func (obj *patternFlowIgmpv1UnusedMetricTag) SetName(value string) PatternFlowIgmpv1UnusedMetricTag { @@ -270073,7 +270572,7 @@ func (obj *patternFlowIgmpv1UnusedMetricTag) SetName(value string) PatternFlowIg return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIgmpv1UnusedMetricTag) Offset() int32 { @@ -270081,13 +270580,13 @@ func (obj *patternFlowIgmpv1UnusedMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIgmpv1UnusedMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIgmpv1UnusedMetricTag object func (obj *patternFlowIgmpv1UnusedMetricTag) SetOffset(value int32) PatternFlowIgmpv1UnusedMetricTag { @@ -270095,7 +270594,7 @@ func (obj *patternFlowIgmpv1UnusedMetricTag) SetOffset(value int32) PatternFlowI return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIgmpv1UnusedMetricTag) Length() int32 { @@ -270103,13 +270602,13 @@ func (obj *patternFlowIgmpv1UnusedMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIgmpv1UnusedMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIgmpv1UnusedMetricTag object func (obj *patternFlowIgmpv1UnusedMetricTag) SetLength(value int32) PatternFlowIgmpv1UnusedMetricTag { @@ -270691,7 +271190,7 @@ func (obj *patternFlowIgmpv1GroupAddressMetricTag) Clone() (PatternFlowIgmpv1Gro return newObj, nil } -// PatternFlowIgmpv1GroupAddressMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIgmpv1GroupAddressMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIgmpv1GroupAddressMetricTag interface { Validation // Msg marshals PatternFlowIgmpv1GroupAddressMetricTag to protobuf object *otg.PatternFlowIgmpv1GroupAddressMetricTag @@ -270743,14 +271242,14 @@ type PatternFlowIgmpv1GroupAddressMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIgmpv1GroupAddressMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIgmpv1GroupAddressMetricTag object func (obj *patternFlowIgmpv1GroupAddressMetricTag) SetName(value string) PatternFlowIgmpv1GroupAddressMetricTag { @@ -270758,7 +271257,7 @@ func (obj *patternFlowIgmpv1GroupAddressMetricTag) SetName(value string) Pattern return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIgmpv1GroupAddressMetricTag) Offset() int32 { @@ -270766,13 +271265,13 @@ func (obj *patternFlowIgmpv1GroupAddressMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIgmpv1GroupAddressMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIgmpv1GroupAddressMetricTag object func (obj *patternFlowIgmpv1GroupAddressMetricTag) SetOffset(value int32) PatternFlowIgmpv1GroupAddressMetricTag { @@ -270780,7 +271279,7 @@ func (obj *patternFlowIgmpv1GroupAddressMetricTag) SetOffset(value int32) Patter return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIgmpv1GroupAddressMetricTag) Length() int32 { @@ -270788,13 +271287,13 @@ func (obj *patternFlowIgmpv1GroupAddressMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIgmpv1GroupAddressMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIgmpv1GroupAddressMetricTag object func (obj *patternFlowIgmpv1GroupAddressMetricTag) SetLength(value int32) PatternFlowIgmpv1GroupAddressMetricTag { @@ -271374,7 +271873,7 @@ func (obj *patternFlowMplsLabelMetricTag) Clone() (PatternFlowMplsLabelMetricTag return newObj, nil } -// PatternFlowMplsLabelMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowMplsLabelMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowMplsLabelMetricTag interface { Validation // Msg marshals PatternFlowMplsLabelMetricTag to protobuf object *otg.PatternFlowMplsLabelMetricTag @@ -271426,14 +271925,14 @@ type PatternFlowMplsLabelMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowMplsLabelMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowMplsLabelMetricTag object func (obj *patternFlowMplsLabelMetricTag) SetName(value string) PatternFlowMplsLabelMetricTag { @@ -271441,7 +271940,7 @@ func (obj *patternFlowMplsLabelMetricTag) SetName(value string) PatternFlowMplsL return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowMplsLabelMetricTag) Offset() int32 { @@ -271449,13 +271948,13 @@ func (obj *patternFlowMplsLabelMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowMplsLabelMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowMplsLabelMetricTag object func (obj *patternFlowMplsLabelMetricTag) SetOffset(value int32) PatternFlowMplsLabelMetricTag { @@ -271463,7 +271962,7 @@ func (obj *patternFlowMplsLabelMetricTag) SetOffset(value int32) PatternFlowMpls return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowMplsLabelMetricTag) Length() int32 { @@ -271471,13 +271970,13 @@ func (obj *patternFlowMplsLabelMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowMplsLabelMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowMplsLabelMetricTag object func (obj *patternFlowMplsLabelMetricTag) SetLength(value int32) PatternFlowMplsLabelMetricTag { @@ -272059,7 +272558,7 @@ func (obj *patternFlowMplsTrafficClassMetricTag) Clone() (PatternFlowMplsTraffic return newObj, nil } -// PatternFlowMplsTrafficClassMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowMplsTrafficClassMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowMplsTrafficClassMetricTag interface { Validation // Msg marshals PatternFlowMplsTrafficClassMetricTag to protobuf object *otg.PatternFlowMplsTrafficClassMetricTag @@ -272111,14 +272610,14 @@ type PatternFlowMplsTrafficClassMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowMplsTrafficClassMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowMplsTrafficClassMetricTag object func (obj *patternFlowMplsTrafficClassMetricTag) SetName(value string) PatternFlowMplsTrafficClassMetricTag { @@ -272126,7 +272625,7 @@ func (obj *patternFlowMplsTrafficClassMetricTag) SetName(value string) PatternFl return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowMplsTrafficClassMetricTag) Offset() int32 { @@ -272134,13 +272633,13 @@ func (obj *patternFlowMplsTrafficClassMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowMplsTrafficClassMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowMplsTrafficClassMetricTag object func (obj *patternFlowMplsTrafficClassMetricTag) SetOffset(value int32) PatternFlowMplsTrafficClassMetricTag { @@ -272148,7 +272647,7 @@ func (obj *patternFlowMplsTrafficClassMetricTag) SetOffset(value int32) PatternF return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowMplsTrafficClassMetricTag) Length() int32 { @@ -272156,13 +272655,13 @@ func (obj *patternFlowMplsTrafficClassMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowMplsTrafficClassMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowMplsTrafficClassMetricTag object func (obj *patternFlowMplsTrafficClassMetricTag) SetLength(value int32) PatternFlowMplsTrafficClassMetricTag { @@ -272744,7 +273243,7 @@ func (obj *patternFlowMplsBottomOfStackMetricTag) Clone() (PatternFlowMplsBottom return newObj, nil } -// PatternFlowMplsBottomOfStackMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowMplsBottomOfStackMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowMplsBottomOfStackMetricTag interface { Validation // Msg marshals PatternFlowMplsBottomOfStackMetricTag to protobuf object *otg.PatternFlowMplsBottomOfStackMetricTag @@ -272796,14 +273295,14 @@ type PatternFlowMplsBottomOfStackMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowMplsBottomOfStackMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowMplsBottomOfStackMetricTag object func (obj *patternFlowMplsBottomOfStackMetricTag) SetName(value string) PatternFlowMplsBottomOfStackMetricTag { @@ -272811,7 +273310,7 @@ func (obj *patternFlowMplsBottomOfStackMetricTag) SetName(value string) PatternF return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowMplsBottomOfStackMetricTag) Offset() int32 { @@ -272819,13 +273318,13 @@ func (obj *patternFlowMplsBottomOfStackMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowMplsBottomOfStackMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowMplsBottomOfStackMetricTag object func (obj *patternFlowMplsBottomOfStackMetricTag) SetOffset(value int32) PatternFlowMplsBottomOfStackMetricTag { @@ -272833,7 +273332,7 @@ func (obj *patternFlowMplsBottomOfStackMetricTag) SetOffset(value int32) Pattern return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowMplsBottomOfStackMetricTag) Length() int32 { @@ -272841,13 +273340,13 @@ func (obj *patternFlowMplsBottomOfStackMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowMplsBottomOfStackMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowMplsBottomOfStackMetricTag object func (obj *patternFlowMplsBottomOfStackMetricTag) SetLength(value int32) PatternFlowMplsBottomOfStackMetricTag { @@ -273429,7 +273928,7 @@ func (obj *patternFlowMplsTimeToLiveMetricTag) Clone() (PatternFlowMplsTimeToLiv return newObj, nil } -// PatternFlowMplsTimeToLiveMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowMplsTimeToLiveMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowMplsTimeToLiveMetricTag interface { Validation // Msg marshals PatternFlowMplsTimeToLiveMetricTag to protobuf object *otg.PatternFlowMplsTimeToLiveMetricTag @@ -273481,14 +273980,14 @@ type PatternFlowMplsTimeToLiveMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowMplsTimeToLiveMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowMplsTimeToLiveMetricTag object func (obj *patternFlowMplsTimeToLiveMetricTag) SetName(value string) PatternFlowMplsTimeToLiveMetricTag { @@ -273496,7 +273995,7 @@ func (obj *patternFlowMplsTimeToLiveMetricTag) SetName(value string) PatternFlow return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowMplsTimeToLiveMetricTag) Offset() int32 { @@ -273504,13 +274003,13 @@ func (obj *patternFlowMplsTimeToLiveMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowMplsTimeToLiveMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowMplsTimeToLiveMetricTag object func (obj *patternFlowMplsTimeToLiveMetricTag) SetOffset(value int32) PatternFlowMplsTimeToLiveMetricTag { @@ -273518,7 +274017,7 @@ func (obj *patternFlowMplsTimeToLiveMetricTag) SetOffset(value int32) PatternFlo return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowMplsTimeToLiveMetricTag) Length() int32 { @@ -273526,13 +274025,13 @@ func (obj *patternFlowMplsTimeToLiveMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowMplsTimeToLiveMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowMplsTimeToLiveMetricTag object func (obj *patternFlowMplsTimeToLiveMetricTag) SetLength(value int32) PatternFlowMplsTimeToLiveMetricTag { @@ -283525,7 +284024,7 @@ func (obj *patternFlowIpv4PriorityRawMetricTag) Clone() (PatternFlowIpv4Priority return newObj, nil } -// PatternFlowIpv4PriorityRawMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv4PriorityRawMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv4PriorityRawMetricTag interface { Validation // Msg marshals PatternFlowIpv4PriorityRawMetricTag to protobuf object *otg.PatternFlowIpv4PriorityRawMetricTag @@ -283577,14 +284076,14 @@ type PatternFlowIpv4PriorityRawMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv4PriorityRawMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4PriorityRawMetricTag object func (obj *patternFlowIpv4PriorityRawMetricTag) SetName(value string) PatternFlowIpv4PriorityRawMetricTag { @@ -283592,7 +284091,7 @@ func (obj *patternFlowIpv4PriorityRawMetricTag) SetName(value string) PatternFlo return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4PriorityRawMetricTag) Offset() int32 { @@ -283600,13 +284099,13 @@ func (obj *patternFlowIpv4PriorityRawMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4PriorityRawMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv4PriorityRawMetricTag object func (obj *patternFlowIpv4PriorityRawMetricTag) SetOffset(value int32) PatternFlowIpv4PriorityRawMetricTag { @@ -283614,7 +284113,7 @@ func (obj *patternFlowIpv4PriorityRawMetricTag) SetOffset(value int32) PatternFl return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4PriorityRawMetricTag) Length() int32 { @@ -283622,13 +284121,13 @@ func (obj *patternFlowIpv4PriorityRawMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4PriorityRawMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv4PriorityRawMetricTag object func (obj *patternFlowIpv4PriorityRawMetricTag) SetLength(value int32) PatternFlowIpv4PriorityRawMetricTag { @@ -284402,7 +284901,7 @@ func (obj *patternFlowIpv4TosPrecedence) SetValues(value []int32) PatternFlowIpv return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv4TosPrecedenceMetricTag func (obj *patternFlowIpv4TosPrecedence) MetricTags() PatternFlowIpv4TosPrecedencePatternFlowIpv4TosPrecedenceMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -284985,7 +285484,7 @@ func (obj *patternFlowIpv4TosDelay) SetValues(value []int32) PatternFlowIpv4TosD return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv4TosDelayMetricTag func (obj *patternFlowIpv4TosDelay) MetricTags() PatternFlowIpv4TosDelayPatternFlowIpv4TosDelayMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -285568,7 +286067,7 @@ func (obj *patternFlowIpv4TosThroughput) SetValues(value []int32) PatternFlowIpv return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv4TosThroughputMetricTag func (obj *patternFlowIpv4TosThroughput) MetricTags() PatternFlowIpv4TosThroughputPatternFlowIpv4TosThroughputMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -286151,7 +286650,7 @@ func (obj *patternFlowIpv4TosReliability) SetValues(value []int32) PatternFlowIp return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv4TosReliabilityMetricTag func (obj *patternFlowIpv4TosReliability) MetricTags() PatternFlowIpv4TosReliabilityPatternFlowIpv4TosReliabilityMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -286734,7 +287233,7 @@ func (obj *patternFlowIpv4TosMonetary) SetValues(value []int32) PatternFlowIpv4T return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv4TosMonetaryMetricTag func (obj *patternFlowIpv4TosMonetary) MetricTags() PatternFlowIpv4TosMonetaryPatternFlowIpv4TosMonetaryMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -287317,7 +287816,7 @@ func (obj *patternFlowIpv4TosUnused) SetValues(value []int32) PatternFlowIpv4Tos return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv4TosUnusedMetricTag func (obj *patternFlowIpv4TosUnused) MetricTags() PatternFlowIpv4TosUnusedPatternFlowIpv4TosUnusedMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -287900,7 +288399,7 @@ func (obj *patternFlowIpv4DscpPhb) SetValues(value []int32) PatternFlowIpv4DscpP return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv4DscpPhbMetricTag func (obj *patternFlowIpv4DscpPhb) MetricTags() PatternFlowIpv4DscpPhbPatternFlowIpv4DscpPhbMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -288483,7 +288982,7 @@ func (obj *patternFlowIpv4DscpEcn) SetValues(value []int32) PatternFlowIpv4DscpE return obj } -// description is TBD +// One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. // MetricTags returns a []PatternFlowIpv4DscpEcnMetricTag func (obj *patternFlowIpv4DscpEcn) MetricTags() PatternFlowIpv4DscpEcnPatternFlowIpv4DscpEcnMetricTagIter { if len(obj.obj.MetricTags) == 0 { @@ -288874,7 +289373,7 @@ func (obj *patternFlowGtpExtensionExtensionLengthMetricTag) Clone() (PatternFlow return newObj, nil } -// PatternFlowGtpExtensionExtensionLengthMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpExtensionExtensionLengthMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpExtensionExtensionLengthMetricTag interface { Validation // Msg marshals PatternFlowGtpExtensionExtensionLengthMetricTag to protobuf object *otg.PatternFlowGtpExtensionExtensionLengthMetricTag @@ -288926,14 +289425,14 @@ type PatternFlowGtpExtensionExtensionLengthMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpExtensionExtensionLengthMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpExtensionExtensionLengthMetricTag object func (obj *patternFlowGtpExtensionExtensionLengthMetricTag) SetName(value string) PatternFlowGtpExtensionExtensionLengthMetricTag { @@ -288941,7 +289440,7 @@ func (obj *patternFlowGtpExtensionExtensionLengthMetricTag) SetName(value string return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpExtensionExtensionLengthMetricTag) Offset() int32 { @@ -288949,13 +289448,13 @@ func (obj *patternFlowGtpExtensionExtensionLengthMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpExtensionExtensionLengthMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpExtensionExtensionLengthMetricTag object func (obj *patternFlowGtpExtensionExtensionLengthMetricTag) SetOffset(value int32) PatternFlowGtpExtensionExtensionLengthMetricTag { @@ -288963,7 +289462,7 @@ func (obj *patternFlowGtpExtensionExtensionLengthMetricTag) SetOffset(value int3 return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpExtensionExtensionLengthMetricTag) Length() int32 { @@ -288971,13 +289470,13 @@ func (obj *patternFlowGtpExtensionExtensionLengthMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpExtensionExtensionLengthMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpExtensionExtensionLengthMetricTag object func (obj *patternFlowGtpExtensionExtensionLengthMetricTag) SetLength(value int32) PatternFlowGtpExtensionExtensionLengthMetricTag { @@ -289559,7 +290058,7 @@ func (obj *patternFlowGtpExtensionContentsMetricTag) Clone() (PatternFlowGtpExte return newObj, nil } -// PatternFlowGtpExtensionContentsMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpExtensionContentsMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpExtensionContentsMetricTag interface { Validation // Msg marshals PatternFlowGtpExtensionContentsMetricTag to protobuf object *otg.PatternFlowGtpExtensionContentsMetricTag @@ -289611,14 +290110,14 @@ type PatternFlowGtpExtensionContentsMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpExtensionContentsMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpExtensionContentsMetricTag object func (obj *patternFlowGtpExtensionContentsMetricTag) SetName(value string) PatternFlowGtpExtensionContentsMetricTag { @@ -289626,7 +290125,7 @@ func (obj *patternFlowGtpExtensionContentsMetricTag) SetName(value string) Patte return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpExtensionContentsMetricTag) Offset() int32 { @@ -289634,13 +290133,13 @@ func (obj *patternFlowGtpExtensionContentsMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpExtensionContentsMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpExtensionContentsMetricTag object func (obj *patternFlowGtpExtensionContentsMetricTag) SetOffset(value int32) PatternFlowGtpExtensionContentsMetricTag { @@ -289648,7 +290147,7 @@ func (obj *patternFlowGtpExtensionContentsMetricTag) SetOffset(value int32) Patt return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpExtensionContentsMetricTag) Length() int32 { @@ -289656,13 +290155,13 @@ func (obj *patternFlowGtpExtensionContentsMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpExtensionContentsMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpExtensionContentsMetricTag object func (obj *patternFlowGtpExtensionContentsMetricTag) SetLength(value int32) PatternFlowGtpExtensionContentsMetricTag { @@ -290244,7 +290743,7 @@ func (obj *patternFlowGtpExtensionNextExtensionHeaderMetricTag) Clone() (Pattern return newObj, nil } -// PatternFlowGtpExtensionNextExtensionHeaderMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowGtpExtensionNextExtensionHeaderMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowGtpExtensionNextExtensionHeaderMetricTag interface { Validation // Msg marshals PatternFlowGtpExtensionNextExtensionHeaderMetricTag to protobuf object *otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag @@ -290296,14 +290795,14 @@ type PatternFlowGtpExtensionNextExtensionHeaderMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowGtpExtensionNextExtensionHeaderMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowGtpExtensionNextExtensionHeaderMetricTag object func (obj *patternFlowGtpExtensionNextExtensionHeaderMetricTag) SetName(value string) PatternFlowGtpExtensionNextExtensionHeaderMetricTag { @@ -290311,7 +290810,7 @@ func (obj *patternFlowGtpExtensionNextExtensionHeaderMetricTag) SetName(value st return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpExtensionNextExtensionHeaderMetricTag) Offset() int32 { @@ -290319,13 +290818,13 @@ func (obj *patternFlowGtpExtensionNextExtensionHeaderMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowGtpExtensionNextExtensionHeaderMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowGtpExtensionNextExtensionHeaderMetricTag object func (obj *patternFlowGtpExtensionNextExtensionHeaderMetricTag) SetOffset(value int32) PatternFlowGtpExtensionNextExtensionHeaderMetricTag { @@ -290333,7 +290832,7 @@ func (obj *patternFlowGtpExtensionNextExtensionHeaderMetricTag) SetOffset(value return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpExtensionNextExtensionHeaderMetricTag) Length() int32 { @@ -290341,13 +290840,13 @@ func (obj *patternFlowGtpExtensionNextExtensionHeaderMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowGtpExtensionNextExtensionHeaderMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowGtpExtensionNextExtensionHeaderMetricTag object func (obj *patternFlowGtpExtensionNextExtensionHeaderMetricTag) SetLength(value int32) PatternFlowGtpExtensionNextExtensionHeaderMetricTag { @@ -290929,7 +291428,7 @@ func (obj *patternFlowIcmpEchoTypeMetricTag) Clone() (PatternFlowIcmpEchoTypeMet return newObj, nil } -// PatternFlowIcmpEchoTypeMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIcmpEchoTypeMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIcmpEchoTypeMetricTag interface { Validation // Msg marshals PatternFlowIcmpEchoTypeMetricTag to protobuf object *otg.PatternFlowIcmpEchoTypeMetricTag @@ -290981,14 +291480,14 @@ type PatternFlowIcmpEchoTypeMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIcmpEchoTypeMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIcmpEchoTypeMetricTag object func (obj *patternFlowIcmpEchoTypeMetricTag) SetName(value string) PatternFlowIcmpEchoTypeMetricTag { @@ -290996,7 +291495,7 @@ func (obj *patternFlowIcmpEchoTypeMetricTag) SetName(value string) PatternFlowIc return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIcmpEchoTypeMetricTag) Offset() int32 { @@ -291004,13 +291503,13 @@ func (obj *patternFlowIcmpEchoTypeMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIcmpEchoTypeMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIcmpEchoTypeMetricTag object func (obj *patternFlowIcmpEchoTypeMetricTag) SetOffset(value int32) PatternFlowIcmpEchoTypeMetricTag { @@ -291018,7 +291517,7 @@ func (obj *patternFlowIcmpEchoTypeMetricTag) SetOffset(value int32) PatternFlowI return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIcmpEchoTypeMetricTag) Length() int32 { @@ -291026,13 +291525,13 @@ func (obj *patternFlowIcmpEchoTypeMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIcmpEchoTypeMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIcmpEchoTypeMetricTag object func (obj *patternFlowIcmpEchoTypeMetricTag) SetLength(value int32) PatternFlowIcmpEchoTypeMetricTag { @@ -291614,7 +292113,7 @@ func (obj *patternFlowIcmpEchoCodeMetricTag) Clone() (PatternFlowIcmpEchoCodeMet return newObj, nil } -// PatternFlowIcmpEchoCodeMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIcmpEchoCodeMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIcmpEchoCodeMetricTag interface { Validation // Msg marshals PatternFlowIcmpEchoCodeMetricTag to protobuf object *otg.PatternFlowIcmpEchoCodeMetricTag @@ -291666,14 +292165,14 @@ type PatternFlowIcmpEchoCodeMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIcmpEchoCodeMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIcmpEchoCodeMetricTag object func (obj *patternFlowIcmpEchoCodeMetricTag) SetName(value string) PatternFlowIcmpEchoCodeMetricTag { @@ -291681,7 +292180,7 @@ func (obj *patternFlowIcmpEchoCodeMetricTag) SetName(value string) PatternFlowIc return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIcmpEchoCodeMetricTag) Offset() int32 { @@ -291689,13 +292188,13 @@ func (obj *patternFlowIcmpEchoCodeMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIcmpEchoCodeMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIcmpEchoCodeMetricTag object func (obj *patternFlowIcmpEchoCodeMetricTag) SetOffset(value int32) PatternFlowIcmpEchoCodeMetricTag { @@ -291703,7 +292202,7 @@ func (obj *patternFlowIcmpEchoCodeMetricTag) SetOffset(value int32) PatternFlowI return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIcmpEchoCodeMetricTag) Length() int32 { @@ -291711,13 +292210,13 @@ func (obj *patternFlowIcmpEchoCodeMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIcmpEchoCodeMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIcmpEchoCodeMetricTag object func (obj *patternFlowIcmpEchoCodeMetricTag) SetLength(value int32) PatternFlowIcmpEchoCodeMetricTag { @@ -292299,7 +292798,7 @@ func (obj *patternFlowIcmpEchoIdentifierMetricTag) Clone() (PatternFlowIcmpEchoI return newObj, nil } -// PatternFlowIcmpEchoIdentifierMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIcmpEchoIdentifierMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIcmpEchoIdentifierMetricTag interface { Validation // Msg marshals PatternFlowIcmpEchoIdentifierMetricTag to protobuf object *otg.PatternFlowIcmpEchoIdentifierMetricTag @@ -292351,14 +292850,14 @@ type PatternFlowIcmpEchoIdentifierMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIcmpEchoIdentifierMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIcmpEchoIdentifierMetricTag object func (obj *patternFlowIcmpEchoIdentifierMetricTag) SetName(value string) PatternFlowIcmpEchoIdentifierMetricTag { @@ -292366,7 +292865,7 @@ func (obj *patternFlowIcmpEchoIdentifierMetricTag) SetName(value string) Pattern return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIcmpEchoIdentifierMetricTag) Offset() int32 { @@ -292374,13 +292873,13 @@ func (obj *patternFlowIcmpEchoIdentifierMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIcmpEchoIdentifierMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIcmpEchoIdentifierMetricTag object func (obj *patternFlowIcmpEchoIdentifierMetricTag) SetOffset(value int32) PatternFlowIcmpEchoIdentifierMetricTag { @@ -292388,7 +292887,7 @@ func (obj *patternFlowIcmpEchoIdentifierMetricTag) SetOffset(value int32) Patter return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIcmpEchoIdentifierMetricTag) Length() int32 { @@ -292396,13 +292895,13 @@ func (obj *patternFlowIcmpEchoIdentifierMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIcmpEchoIdentifierMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIcmpEchoIdentifierMetricTag object func (obj *patternFlowIcmpEchoIdentifierMetricTag) SetLength(value int32) PatternFlowIcmpEchoIdentifierMetricTag { @@ -292984,7 +293483,7 @@ func (obj *patternFlowIcmpEchoSequenceNumberMetricTag) Clone() (PatternFlowIcmpE return newObj, nil } -// PatternFlowIcmpEchoSequenceNumberMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIcmpEchoSequenceNumberMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIcmpEchoSequenceNumberMetricTag interface { Validation // Msg marshals PatternFlowIcmpEchoSequenceNumberMetricTag to protobuf object *otg.PatternFlowIcmpEchoSequenceNumberMetricTag @@ -293036,14 +293535,14 @@ type PatternFlowIcmpEchoSequenceNumberMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIcmpEchoSequenceNumberMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIcmpEchoSequenceNumberMetricTag object func (obj *patternFlowIcmpEchoSequenceNumberMetricTag) SetName(value string) PatternFlowIcmpEchoSequenceNumberMetricTag { @@ -293051,7 +293550,7 @@ func (obj *patternFlowIcmpEchoSequenceNumberMetricTag) SetName(value string) Pat return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIcmpEchoSequenceNumberMetricTag) Offset() int32 { @@ -293059,13 +293558,13 @@ func (obj *patternFlowIcmpEchoSequenceNumberMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIcmpEchoSequenceNumberMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIcmpEchoSequenceNumberMetricTag object func (obj *patternFlowIcmpEchoSequenceNumberMetricTag) SetOffset(value int32) PatternFlowIcmpEchoSequenceNumberMetricTag { @@ -293073,7 +293572,7 @@ func (obj *patternFlowIcmpEchoSequenceNumberMetricTag) SetOffset(value int32) Pa return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIcmpEchoSequenceNumberMetricTag) Length() int32 { @@ -293081,13 +293580,13 @@ func (obj *patternFlowIcmpEchoSequenceNumberMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIcmpEchoSequenceNumberMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIcmpEchoSequenceNumberMetricTag object func (obj *patternFlowIcmpEchoSequenceNumberMetricTag) SetLength(value int32) PatternFlowIcmpEchoSequenceNumberMetricTag { @@ -293669,7 +294168,7 @@ func (obj *patternFlowIcmpv6EchoTypeMetricTag) Clone() (PatternFlowIcmpv6EchoTyp return newObj, nil } -// PatternFlowIcmpv6EchoTypeMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIcmpv6EchoTypeMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIcmpv6EchoTypeMetricTag interface { Validation // Msg marshals PatternFlowIcmpv6EchoTypeMetricTag to protobuf object *otg.PatternFlowIcmpv6EchoTypeMetricTag @@ -293721,14 +294220,14 @@ type PatternFlowIcmpv6EchoTypeMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIcmpv6EchoTypeMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIcmpv6EchoTypeMetricTag object func (obj *patternFlowIcmpv6EchoTypeMetricTag) SetName(value string) PatternFlowIcmpv6EchoTypeMetricTag { @@ -293736,7 +294235,7 @@ func (obj *patternFlowIcmpv6EchoTypeMetricTag) SetName(value string) PatternFlow return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIcmpv6EchoTypeMetricTag) Offset() int32 { @@ -293744,13 +294243,13 @@ func (obj *patternFlowIcmpv6EchoTypeMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIcmpv6EchoTypeMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIcmpv6EchoTypeMetricTag object func (obj *patternFlowIcmpv6EchoTypeMetricTag) SetOffset(value int32) PatternFlowIcmpv6EchoTypeMetricTag { @@ -293758,7 +294257,7 @@ func (obj *patternFlowIcmpv6EchoTypeMetricTag) SetOffset(value int32) PatternFlo return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIcmpv6EchoTypeMetricTag) Length() int32 { @@ -293766,13 +294265,13 @@ func (obj *patternFlowIcmpv6EchoTypeMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIcmpv6EchoTypeMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIcmpv6EchoTypeMetricTag object func (obj *patternFlowIcmpv6EchoTypeMetricTag) SetLength(value int32) PatternFlowIcmpv6EchoTypeMetricTag { @@ -294354,7 +294853,7 @@ func (obj *patternFlowIcmpv6EchoCodeMetricTag) Clone() (PatternFlowIcmpv6EchoCod return newObj, nil } -// PatternFlowIcmpv6EchoCodeMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIcmpv6EchoCodeMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIcmpv6EchoCodeMetricTag interface { Validation // Msg marshals PatternFlowIcmpv6EchoCodeMetricTag to protobuf object *otg.PatternFlowIcmpv6EchoCodeMetricTag @@ -294406,14 +294905,14 @@ type PatternFlowIcmpv6EchoCodeMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIcmpv6EchoCodeMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIcmpv6EchoCodeMetricTag object func (obj *patternFlowIcmpv6EchoCodeMetricTag) SetName(value string) PatternFlowIcmpv6EchoCodeMetricTag { @@ -294421,7 +294920,7 @@ func (obj *patternFlowIcmpv6EchoCodeMetricTag) SetName(value string) PatternFlow return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIcmpv6EchoCodeMetricTag) Offset() int32 { @@ -294429,13 +294928,13 @@ func (obj *patternFlowIcmpv6EchoCodeMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIcmpv6EchoCodeMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIcmpv6EchoCodeMetricTag object func (obj *patternFlowIcmpv6EchoCodeMetricTag) SetOffset(value int32) PatternFlowIcmpv6EchoCodeMetricTag { @@ -294443,7 +294942,7 @@ func (obj *patternFlowIcmpv6EchoCodeMetricTag) SetOffset(value int32) PatternFlo return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIcmpv6EchoCodeMetricTag) Length() int32 { @@ -294451,13 +294950,13 @@ func (obj *patternFlowIcmpv6EchoCodeMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIcmpv6EchoCodeMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIcmpv6EchoCodeMetricTag object func (obj *patternFlowIcmpv6EchoCodeMetricTag) SetLength(value int32) PatternFlowIcmpv6EchoCodeMetricTag { @@ -295039,7 +295538,7 @@ func (obj *patternFlowIcmpv6EchoIdentifierMetricTag) Clone() (PatternFlowIcmpv6E return newObj, nil } -// PatternFlowIcmpv6EchoIdentifierMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIcmpv6EchoIdentifierMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIcmpv6EchoIdentifierMetricTag interface { Validation // Msg marshals PatternFlowIcmpv6EchoIdentifierMetricTag to protobuf object *otg.PatternFlowIcmpv6EchoIdentifierMetricTag @@ -295091,14 +295590,14 @@ type PatternFlowIcmpv6EchoIdentifierMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIcmpv6EchoIdentifierMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIcmpv6EchoIdentifierMetricTag object func (obj *patternFlowIcmpv6EchoIdentifierMetricTag) SetName(value string) PatternFlowIcmpv6EchoIdentifierMetricTag { @@ -295106,7 +295605,7 @@ func (obj *patternFlowIcmpv6EchoIdentifierMetricTag) SetName(value string) Patte return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIcmpv6EchoIdentifierMetricTag) Offset() int32 { @@ -295114,13 +295613,13 @@ func (obj *patternFlowIcmpv6EchoIdentifierMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIcmpv6EchoIdentifierMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIcmpv6EchoIdentifierMetricTag object func (obj *patternFlowIcmpv6EchoIdentifierMetricTag) SetOffset(value int32) PatternFlowIcmpv6EchoIdentifierMetricTag { @@ -295128,7 +295627,7 @@ func (obj *patternFlowIcmpv6EchoIdentifierMetricTag) SetOffset(value int32) Patt return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIcmpv6EchoIdentifierMetricTag) Length() int32 { @@ -295136,13 +295635,13 @@ func (obj *patternFlowIcmpv6EchoIdentifierMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIcmpv6EchoIdentifierMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIcmpv6EchoIdentifierMetricTag object func (obj *patternFlowIcmpv6EchoIdentifierMetricTag) SetLength(value int32) PatternFlowIcmpv6EchoIdentifierMetricTag { @@ -295724,7 +296223,7 @@ func (obj *patternFlowIcmpv6EchoSequenceNumberMetricTag) Clone() (PatternFlowIcm return newObj, nil } -// PatternFlowIcmpv6EchoSequenceNumberMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIcmpv6EchoSequenceNumberMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIcmpv6EchoSequenceNumberMetricTag interface { Validation // Msg marshals PatternFlowIcmpv6EchoSequenceNumberMetricTag to protobuf object *otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag @@ -295776,14 +296275,14 @@ type PatternFlowIcmpv6EchoSequenceNumberMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIcmpv6EchoSequenceNumberMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIcmpv6EchoSequenceNumberMetricTag object func (obj *patternFlowIcmpv6EchoSequenceNumberMetricTag) SetName(value string) PatternFlowIcmpv6EchoSequenceNumberMetricTag { @@ -295791,7 +296290,7 @@ func (obj *patternFlowIcmpv6EchoSequenceNumberMetricTag) SetName(value string) P return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIcmpv6EchoSequenceNumberMetricTag) Offset() int32 { @@ -295799,13 +296298,13 @@ func (obj *patternFlowIcmpv6EchoSequenceNumberMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIcmpv6EchoSequenceNumberMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIcmpv6EchoSequenceNumberMetricTag object func (obj *patternFlowIcmpv6EchoSequenceNumberMetricTag) SetOffset(value int32) PatternFlowIcmpv6EchoSequenceNumberMetricTag { @@ -295813,7 +296312,7 @@ func (obj *patternFlowIcmpv6EchoSequenceNumberMetricTag) SetOffset(value int32) return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIcmpv6EchoSequenceNumberMetricTag) Length() int32 { @@ -295821,13 +296320,13 @@ func (obj *patternFlowIcmpv6EchoSequenceNumberMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIcmpv6EchoSequenceNumberMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIcmpv6EchoSequenceNumberMetricTag object func (obj *patternFlowIcmpv6EchoSequenceNumberMetricTag) SetLength(value int32) PatternFlowIcmpv6EchoSequenceNumberMetricTag { @@ -296462,6 +296961,9 @@ type ActionResponseProtocolIpv4PingResponse interface { // x-constraint: // - /components/schemas/Device.Ipv4/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv4/properties/name +// // SrcName returns a string func (obj *actionResponseProtocolIpv4PingResponse) SrcName() string { @@ -296473,6 +296975,9 @@ func (obj *actionResponseProtocolIpv4PingResponse) SrcName() string { // x-constraint: // - /components/schemas/Device.Ipv4/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv4/properties/name +// // SetSrcName sets the string value in the ActionResponseProtocolIpv4PingResponse object func (obj *actionResponseProtocolIpv4PingResponse) SetSrcName(value string) ActionResponseProtocolIpv4PingResponse { @@ -296794,6 +297299,9 @@ type ActionResponseProtocolIpv6PingResponse interface { // x-constraint: // - /components/schemas/Device.Ipv6/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv6/properties/name +// // SrcName returns a string func (obj *actionResponseProtocolIpv6PingResponse) SrcName() string { @@ -296805,6 +297313,9 @@ func (obj *actionResponseProtocolIpv6PingResponse) SrcName() string { // x-constraint: // - /components/schemas/Device.Ipv6/properties/name // +// x-constraint: +// - /components/schemas/Device.Ipv6/properties/name +// // SetSrcName sets the string value in the ActionResponseProtocolIpv6PingResponse object func (obj *actionResponseProtocolIpv6PingResponse) SetSrcName(value string) ActionResponseProtocolIpv6PingResponse { @@ -303874,7 +304385,7 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) Clone() (PatternFlowIpv4TosPre return newObj, nil } -// PatternFlowIpv4TosPrecedenceMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv4TosPrecedenceMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv4TosPrecedenceMetricTag interface { Validation // Msg marshals PatternFlowIpv4TosPrecedenceMetricTag to protobuf object *otg.PatternFlowIpv4TosPrecedenceMetricTag @@ -303926,14 +304437,14 @@ type PatternFlowIpv4TosPrecedenceMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv4TosPrecedenceMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4TosPrecedenceMetricTag object func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetName(value string) PatternFlowIpv4TosPrecedenceMetricTag { @@ -303941,7 +304452,7 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetName(value string) PatternF return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4TosPrecedenceMetricTag) Offset() int32 { @@ -303949,13 +304460,13 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4TosPrecedenceMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv4TosPrecedenceMetricTag object func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetOffset(value int32) PatternFlowIpv4TosPrecedenceMetricTag { @@ -303963,7 +304474,7 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetOffset(value int32) Pattern return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4TosPrecedenceMetricTag) Length() int32 { @@ -303971,13 +304482,13 @@ func (obj *patternFlowIpv4TosPrecedenceMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4TosPrecedenceMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv4TosPrecedenceMetricTag object func (obj *patternFlowIpv4TosPrecedenceMetricTag) SetLength(value int32) PatternFlowIpv4TosPrecedenceMetricTag { @@ -304559,7 +305070,7 @@ func (obj *patternFlowIpv4TosDelayMetricTag) Clone() (PatternFlowIpv4TosDelayMet return newObj, nil } -// PatternFlowIpv4TosDelayMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv4TosDelayMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv4TosDelayMetricTag interface { Validation // Msg marshals PatternFlowIpv4TosDelayMetricTag to protobuf object *otg.PatternFlowIpv4TosDelayMetricTag @@ -304611,14 +305122,14 @@ type PatternFlowIpv4TosDelayMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv4TosDelayMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4TosDelayMetricTag object func (obj *patternFlowIpv4TosDelayMetricTag) SetName(value string) PatternFlowIpv4TosDelayMetricTag { @@ -304626,7 +305137,7 @@ func (obj *patternFlowIpv4TosDelayMetricTag) SetName(value string) PatternFlowIp return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4TosDelayMetricTag) Offset() int32 { @@ -304634,13 +305145,13 @@ func (obj *patternFlowIpv4TosDelayMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4TosDelayMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv4TosDelayMetricTag object func (obj *patternFlowIpv4TosDelayMetricTag) SetOffset(value int32) PatternFlowIpv4TosDelayMetricTag { @@ -304648,7 +305159,7 @@ func (obj *patternFlowIpv4TosDelayMetricTag) SetOffset(value int32) PatternFlowI return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4TosDelayMetricTag) Length() int32 { @@ -304656,13 +305167,13 @@ func (obj *patternFlowIpv4TosDelayMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4TosDelayMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv4TosDelayMetricTag object func (obj *patternFlowIpv4TosDelayMetricTag) SetLength(value int32) PatternFlowIpv4TosDelayMetricTag { @@ -305244,7 +305755,7 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) Clone() (PatternFlowIpv4TosThr return newObj, nil } -// PatternFlowIpv4TosThroughputMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv4TosThroughputMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv4TosThroughputMetricTag interface { Validation // Msg marshals PatternFlowIpv4TosThroughputMetricTag to protobuf object *otg.PatternFlowIpv4TosThroughputMetricTag @@ -305296,14 +305807,14 @@ type PatternFlowIpv4TosThroughputMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv4TosThroughputMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4TosThroughputMetricTag object func (obj *patternFlowIpv4TosThroughputMetricTag) SetName(value string) PatternFlowIpv4TosThroughputMetricTag { @@ -305311,7 +305822,7 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) SetName(value string) PatternF return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4TosThroughputMetricTag) Offset() int32 { @@ -305319,13 +305830,13 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4TosThroughputMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv4TosThroughputMetricTag object func (obj *patternFlowIpv4TosThroughputMetricTag) SetOffset(value int32) PatternFlowIpv4TosThroughputMetricTag { @@ -305333,7 +305844,7 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) SetOffset(value int32) Pattern return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4TosThroughputMetricTag) Length() int32 { @@ -305341,13 +305852,13 @@ func (obj *patternFlowIpv4TosThroughputMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4TosThroughputMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv4TosThroughputMetricTag object func (obj *patternFlowIpv4TosThroughputMetricTag) SetLength(value int32) PatternFlowIpv4TosThroughputMetricTag { @@ -305929,7 +306440,7 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) Clone() (PatternFlowIpv4TosRe return newObj, nil } -// PatternFlowIpv4TosReliabilityMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv4TosReliabilityMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv4TosReliabilityMetricTag interface { Validation // Msg marshals PatternFlowIpv4TosReliabilityMetricTag to protobuf object *otg.PatternFlowIpv4TosReliabilityMetricTag @@ -305981,14 +306492,14 @@ type PatternFlowIpv4TosReliabilityMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv4TosReliabilityMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4TosReliabilityMetricTag object func (obj *patternFlowIpv4TosReliabilityMetricTag) SetName(value string) PatternFlowIpv4TosReliabilityMetricTag { @@ -305996,7 +306507,7 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) SetName(value string) Pattern return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4TosReliabilityMetricTag) Offset() int32 { @@ -306004,13 +306515,13 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4TosReliabilityMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv4TosReliabilityMetricTag object func (obj *patternFlowIpv4TosReliabilityMetricTag) SetOffset(value int32) PatternFlowIpv4TosReliabilityMetricTag { @@ -306018,7 +306529,7 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) SetOffset(value int32) Patter return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4TosReliabilityMetricTag) Length() int32 { @@ -306026,13 +306537,13 @@ func (obj *patternFlowIpv4TosReliabilityMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4TosReliabilityMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv4TosReliabilityMetricTag object func (obj *patternFlowIpv4TosReliabilityMetricTag) SetLength(value int32) PatternFlowIpv4TosReliabilityMetricTag { @@ -306614,7 +307125,7 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) Clone() (PatternFlowIpv4TosMonet return newObj, nil } -// PatternFlowIpv4TosMonetaryMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv4TosMonetaryMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv4TosMonetaryMetricTag interface { Validation // Msg marshals PatternFlowIpv4TosMonetaryMetricTag to protobuf object *otg.PatternFlowIpv4TosMonetaryMetricTag @@ -306666,14 +307177,14 @@ type PatternFlowIpv4TosMonetaryMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv4TosMonetaryMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4TosMonetaryMetricTag object func (obj *patternFlowIpv4TosMonetaryMetricTag) SetName(value string) PatternFlowIpv4TosMonetaryMetricTag { @@ -306681,7 +307192,7 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) SetName(value string) PatternFlo return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4TosMonetaryMetricTag) Offset() int32 { @@ -306689,13 +307200,13 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4TosMonetaryMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv4TosMonetaryMetricTag object func (obj *patternFlowIpv4TosMonetaryMetricTag) SetOffset(value int32) PatternFlowIpv4TosMonetaryMetricTag { @@ -306703,7 +307214,7 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) SetOffset(value int32) PatternFl return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4TosMonetaryMetricTag) Length() int32 { @@ -306711,13 +307222,13 @@ func (obj *patternFlowIpv4TosMonetaryMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4TosMonetaryMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv4TosMonetaryMetricTag object func (obj *patternFlowIpv4TosMonetaryMetricTag) SetLength(value int32) PatternFlowIpv4TosMonetaryMetricTag { @@ -307299,7 +307810,7 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) Clone() (PatternFlowIpv4TosUnusedM return newObj, nil } -// PatternFlowIpv4TosUnusedMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv4TosUnusedMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv4TosUnusedMetricTag interface { Validation // Msg marshals PatternFlowIpv4TosUnusedMetricTag to protobuf object *otg.PatternFlowIpv4TosUnusedMetricTag @@ -307351,14 +307862,14 @@ type PatternFlowIpv4TosUnusedMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv4TosUnusedMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4TosUnusedMetricTag object func (obj *patternFlowIpv4TosUnusedMetricTag) SetName(value string) PatternFlowIpv4TosUnusedMetricTag { @@ -307366,7 +307877,7 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) SetName(value string) PatternFlowI return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4TosUnusedMetricTag) Offset() int32 { @@ -307374,13 +307885,13 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4TosUnusedMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv4TosUnusedMetricTag object func (obj *patternFlowIpv4TosUnusedMetricTag) SetOffset(value int32) PatternFlowIpv4TosUnusedMetricTag { @@ -307388,7 +307899,7 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) SetOffset(value int32) PatternFlow return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4TosUnusedMetricTag) Length() int32 { @@ -307396,13 +307907,13 @@ func (obj *patternFlowIpv4TosUnusedMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4TosUnusedMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv4TosUnusedMetricTag object func (obj *patternFlowIpv4TosUnusedMetricTag) SetLength(value int32) PatternFlowIpv4TosUnusedMetricTag { @@ -307984,7 +308495,7 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) Clone() (PatternFlowIpv4DscpPhbMetri return newObj, nil } -// PatternFlowIpv4DscpPhbMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv4DscpPhbMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv4DscpPhbMetricTag interface { Validation // Msg marshals PatternFlowIpv4DscpPhbMetricTag to protobuf object *otg.PatternFlowIpv4DscpPhbMetricTag @@ -308036,14 +308547,14 @@ type PatternFlowIpv4DscpPhbMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv4DscpPhbMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4DscpPhbMetricTag object func (obj *patternFlowIpv4DscpPhbMetricTag) SetName(value string) PatternFlowIpv4DscpPhbMetricTag { @@ -308051,7 +308562,7 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) SetName(value string) PatternFlowIpv return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4DscpPhbMetricTag) Offset() int32 { @@ -308059,13 +308570,13 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4DscpPhbMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv4DscpPhbMetricTag object func (obj *patternFlowIpv4DscpPhbMetricTag) SetOffset(value int32) PatternFlowIpv4DscpPhbMetricTag { @@ -308073,7 +308584,7 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) SetOffset(value int32) PatternFlowIp return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4DscpPhbMetricTag) Length() int32 { @@ -308081,13 +308592,13 @@ func (obj *patternFlowIpv4DscpPhbMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4DscpPhbMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv4DscpPhbMetricTag object func (obj *patternFlowIpv4DscpPhbMetricTag) SetLength(value int32) PatternFlowIpv4DscpPhbMetricTag { @@ -308669,7 +309180,7 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) Clone() (PatternFlowIpv4DscpEcnMetri return newObj, nil } -// PatternFlowIpv4DscpEcnMetricTag is a unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric tag columns appear in the flow metric rows the flow metric request allows for the metric_tag value to be specified as part of the request. +// PatternFlowIpv4DscpEcnMetricTag is metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. type PatternFlowIpv4DscpEcnMetricTag interface { Validation // Msg marshals PatternFlowIpv4DscpEcnMetricTag to protobuf object *otg.PatternFlowIpv4DscpEcnMetricTag @@ -308721,14 +309232,14 @@ type PatternFlowIpv4DscpEcnMetricTag interface { HasLength() bool } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // Name returns a string func (obj *patternFlowIpv4DscpEcnMetricTag) Name() string { return obj.obj.Name } -// Name used for metric tag +// Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field // SetName sets the string value in the PatternFlowIpv4DscpEcnMetricTag object func (obj *patternFlowIpv4DscpEcnMetricTag) SetName(value string) PatternFlowIpv4DscpEcnMetricTag { @@ -308736,7 +309247,7 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) SetName(value string) PatternFlowIpv return obj } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4DscpEcnMetricTag) Offset() int32 { @@ -308744,13 +309255,13 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) Offset() int32 { } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // Offset returns a int32 func (obj *patternFlowIpv4DscpEcnMetricTag) HasOffset() bool { return obj.obj.Offset != nil } -// Offset in bits relative to start of field +// Offset in bits relative to start of corresponding header field // SetOffset sets the int32 value in the PatternFlowIpv4DscpEcnMetricTag object func (obj *patternFlowIpv4DscpEcnMetricTag) SetOffset(value int32) PatternFlowIpv4DscpEcnMetricTag { @@ -308758,7 +309269,7 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) SetOffset(value int32) PatternFlowIp return obj } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4DscpEcnMetricTag) Length() int32 { @@ -308766,13 +309277,13 @@ func (obj *patternFlowIpv4DscpEcnMetricTag) Length() int32 { } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // Length returns a int32 func (obj *patternFlowIpv4DscpEcnMetricTag) HasLength() bool { return obj.obj.Length != nil } -// Length in bits +// Number of bits to track for metrics starting from configured offset of corresponding header field // SetLength sets the int32 value in the PatternFlowIpv4DscpEcnMetricTag object func (obj *patternFlowIpv4DscpEcnMetricTag) SetLength(value int32) PatternFlowIpv4DscpEcnMetricTag { diff --git a/gosnappi/httpapi/controllers/control_controller.go b/gosnappi/httpapi/controllers/control_controller.go index b8e05aab..14a1f7ed 100644 --- a/gosnappi/httpapi/controllers/control_controller.go +++ b/gosnappi/httpapi/controllers/control_controller.go @@ -182,6 +182,8 @@ func (ctrl *controlController) responseSetControlActionError(w http.ResponseWrit SetTransmitState: POST /control/transmit Description: Deprecated: Please use `set_control_state` with `traffic.flow_transmit` choice instead +Deprecated: Please use `set_control_state` with `traffic.flow_transmit` choice instead + Updates the state of configuration resources on the traffic generator. The Response.Warnings in the Success response is available for implementers to disclose additional information about a state change including any implicit changes that are outside the scope of the state change. */ @@ -256,6 +258,8 @@ func (ctrl *controlController) responseSetTransmitStateError(w http.ResponseWrit SetLinkState: POST /control/link Description: Deprecated: Please use `set_control_state` with `port.link` choice instead +Deprecated: Please use `set_control_state` with `port.link` choice instead + Updates the state of configuration resources on the traffic generator. */ func (ctrl *controlController) SetLinkState(w http.ResponseWriter, r *http.Request) { @@ -329,6 +333,8 @@ func (ctrl *controlController) responseSetLinkStateError(w http.ResponseWriter, SetCaptureState: POST /control/capture Description: Deprecated: Please use `set_control_state` with `port.capture` choice instead +Deprecated: Please use `set_control_state` with `port.capture` choice instead + Updates the state of configuration resources on the traffic generator. */ func (ctrl *controlController) SetCaptureState(w http.ResponseWriter, r *http.Request) { @@ -402,6 +408,8 @@ func (ctrl *controlController) responseSetCaptureStateError(w http.ResponseWrite UpdateFlows: POST /control/flows Description: Deprecated: Please use `update_config` with `flow` choice instead +Deprecated: Please use `update_config` with `flow` choice instead + Updates flow properties without disruption of transmit state. */ func (ctrl *controlController) UpdateFlows(w http.ResponseWriter, r *http.Request) { @@ -472,6 +480,8 @@ func (ctrl *controlController) responseUpdateFlowsError(w http.ResponseWriter, e SetRouteState: POST /control/routes Description: Deprecated: Please use `set_control_state` with `protocol.route` choice instead +Deprecated: Please use `set_control_state` with `protocol.route` choice instead + Updates the state of configuration resources on the traffic generator. */ func (ctrl *controlController) SetRouteState(w http.ResponseWriter, r *http.Request) { @@ -545,6 +555,8 @@ func (ctrl *controlController) responseSetRouteStateError(w http.ResponseWriter, SendPing: POST /control/ping Description: Deprecated: Please use `set_control_action` with `protocol.ipv*.ping` choice instead +Deprecated: Please use `set_control_action` with `protocol.ipv*.ping` choice instead + API to send an IPv4 and/or IPv6 ICMP Echo Request(s) between endpoints. For each endpoint 1 ping packet will be sent and API shall wait for ping response to either be successful or timeout. The API wait timeout for each request is 300ms. */ func (ctrl *controlController) SendPing(w http.ResponseWriter, r *http.Request) { @@ -615,6 +627,8 @@ func (ctrl *controlController) responseSendPingError(w http.ResponseWriter, erro SetProtocolState: POST /control/protocols Description: Deprecated: Please use `set_control_state` with `protocol.all` choice instead +Deprecated: Please use `set_control_state` with `protocol.all` choice instead + Sets all configured protocols to `start` or `stop` state. */ func (ctrl *controlController) SetProtocolState(w http.ResponseWriter, r *http.Request) { @@ -688,6 +702,8 @@ func (ctrl *controlController) responseSetProtocolStateError(w http.ResponseWrit SetDeviceState: POST /control/devices Description: Deprecated: Please use `set_control_state` with `protocol` choice instead +Deprecated: Please use `set_control_state` with `protocol` choice instead + Set specific state/actions on device configuration resources on the traffic generator. */ func (ctrl *controlController) SetDeviceState(w http.ResponseWriter, r *http.Request) { diff --git a/gosnappi/httpapi/interfaces/control_interface.go b/gosnappi/httpapi/interfaces/control_interface.go index 4668a0a8..92247c97 100644 --- a/gosnappi/httpapi/interfaces/control_interface.go +++ b/gosnappi/httpapi/interfaces/control_interface.go @@ -38,6 +38,8 @@ type ControlHandler interface { SetTransmitState: POST /control/transmit Description: Deprecated: Please use `set_control_state` with `traffic.flow_transmit` choice instead + Deprecated: Please use `set_control_state` with `traffic.flow_transmit` choice instead + Updates the state of configuration resources on the traffic generator. The Response.Warnings in the Success response is available for implementers to disclose additional information about a state change including any implicit changes that are outside the scope of the state change. */ @@ -46,6 +48,8 @@ type ControlHandler interface { SetLinkState: POST /control/link Description: Deprecated: Please use `set_control_state` with `port.link` choice instead + Deprecated: Please use `set_control_state` with `port.link` choice instead + Updates the state of configuration resources on the traffic generator. */ SetLinkState(rbody gosnappi.LinkState, r *http.Request) (gosnappi.SetLinkStateResponse, error) @@ -53,6 +57,8 @@ type ControlHandler interface { SetCaptureState: POST /control/capture Description: Deprecated: Please use `set_control_state` with `port.capture` choice instead + Deprecated: Please use `set_control_state` with `port.capture` choice instead + Updates the state of configuration resources on the traffic generator. */ SetCaptureState(rbody gosnappi.CaptureState, r *http.Request) (gosnappi.SetCaptureStateResponse, error) @@ -60,6 +66,8 @@ type ControlHandler interface { UpdateFlows: POST /control/flows Description: Deprecated: Please use `update_config` with `flow` choice instead + Deprecated: Please use `update_config` with `flow` choice instead + Updates flow properties without disruption of transmit state. */ UpdateFlows(rbody gosnappi.FlowsUpdate, r *http.Request) (gosnappi.UpdateFlowsResponse, error) @@ -67,6 +75,8 @@ type ControlHandler interface { SetRouteState: POST /control/routes Description: Deprecated: Please use `set_control_state` with `protocol.route` choice instead + Deprecated: Please use `set_control_state` with `protocol.route` choice instead + Updates the state of configuration resources on the traffic generator. */ SetRouteState(rbody gosnappi.RouteState, r *http.Request) (gosnappi.SetRouteStateResponse, error) @@ -74,6 +84,8 @@ type ControlHandler interface { SendPing: POST /control/ping Description: Deprecated: Please use `set_control_action` with `protocol.ipv*.ping` choice instead + Deprecated: Please use `set_control_action` with `protocol.ipv*.ping` choice instead + API to send an IPv4 and/or IPv6 ICMP Echo Request(s) between endpoints. For each endpoint 1 ping packet will be sent and API shall wait for ping response to either be successful or timeout. The API wait timeout for each request is 300ms. */ SendPing(rbody gosnappi.PingRequest, r *http.Request) (gosnappi.SendPingResponse, error) @@ -81,6 +93,8 @@ type ControlHandler interface { SetProtocolState: POST /control/protocols Description: Deprecated: Please use `set_control_state` with `protocol.all` choice instead + Deprecated: Please use `set_control_state` with `protocol.all` choice instead + Sets all configured protocols to `start` or `stop` state. */ SetProtocolState(rbody gosnappi.ProtocolState, r *http.Request) (gosnappi.SetProtocolStateResponse, error) @@ -88,6 +102,8 @@ type ControlHandler interface { SetDeviceState: POST /control/devices Description: Deprecated: Please use `set_control_state` with `protocol` choice instead + Deprecated: Please use `set_control_state` with `protocol` choice instead + Set specific state/actions on device configuration resources on the traffic generator. */ SetDeviceState(rbody gosnappi.DeviceState, r *http.Request) (gosnappi.SetDeviceStateResponse, error) diff --git a/gosnappi/otg/otg.pb.go b/gosnappi/otg/otg.pb.go index ea1be5b4..91460b3e 100644 --- a/gosnappi/otg/otg.pb.go +++ b/gosnappi/otg/otg.pb.go @@ -1,4 +1,4 @@ -// Open Traffic Generator API 0.11.6 +// Open Traffic Generator API 0.11.7 // Open Traffic Generator API defines a model-driven, vendor-neutral and standard // interface for emulating layer 2-7 network devices and generating test traffic. // @@ -17391,6 +17391,9 @@ type LagPort struct { // x-constraint: // - /components/schemas/Port/properties/name // + // x-constraint: + // - /components/schemas/Port/properties/name + // // required = true PortName string `protobuf:"bytes,1,opt,name=port_name,json=portName,proto3" json:"port_name,omitempty"` // Description missing in models @@ -17821,6 +17824,8 @@ type DeviceEthernet struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + // Deprecated: This property is deprecated in favor of property connection.port_name + // // Deprecated: This property is deprecated in favor of property connection.port_name // // The unique name of a Port or a LAG that will emulate this interface. @@ -17830,6 +17835,10 @@ type DeviceEthernet struct { // x-constraint: // - /components/schemas/Port/properties/name // - /components/schemas/Lag/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name PortName *string `protobuf:"bytes,1,opt,name=port_name,json=portName,proto3,oneof" json:"port_name,omitempty"` // Device connection to physical, LAG or another device. Connection *EthernetConnection `protobuf:"bytes,2,opt,name=connection,proto3,oneof" json:"connection,omitempty"` @@ -17952,11 +17961,17 @@ type EthernetConnection struct { // // x-constraint: // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name PortName *string `protobuf:"bytes,2,opt,name=port_name,json=portName,proto3,oneof" json:"port_name,omitempty"` // Name of the LAG that the Ethernet interface is configured on. // // x-constraint: // - /components/schemas/Lag/properties/name + // + // x-constraint: + // - /components/schemas/Lag/properties/name LagName *string `protobuf:"bytes,3,opt,name=lag_name,json=lagName,proto3,oneof" json:"lag_name,omitempty"` // Name of the VXLAN instance (or VXLAN tunnel) that this Ethernet interface is connected // to. @@ -17964,6 +17979,10 @@ type EthernetConnection struct { // x-constraint: // - #/components/schemas/Vxlan.V4Tunnel/properties/name // - #/components/schemas/Vxlan.V6Tunnel/properties/name + // + // x-constraint: + // - #/components/schemas/Vxlan.V4Tunnel/properties/name + // - #/components/schemas/Vxlan.V6Tunnel/properties/name VxlanName *string `protobuf:"bytes,4,opt,name=vxlan_name,json=vxlanName,proto3,oneof" json:"vxlan_name,omitempty"` } @@ -18210,6 +18229,9 @@ type DeviceIpv4Loopback struct { // x-constraint: // - /components/schemas/Device.Ethernet/properties/name // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // // required = true EthName string `protobuf:"bytes,1,opt,name=eth_name,json=ethName,proto3" json:"eth_name,omitempty"` // The IPv4 Loopback address with prefix length of 32. @@ -18451,6 +18473,9 @@ type DeviceIpv6Loopback struct { // x-constraint: // - /components/schemas/Device.Ethernet/properties/name // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // // required = true EthName string `protobuf:"bytes,1,opt,name=eth_name,json=ethName,proto3" json:"eth_name,omitempty"` // The IPv6 Loopback address with prefix length of 128. @@ -18601,6 +18626,9 @@ type Layer1 struct { // // x-constraint: // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` // Set the speed if supported. // default = Speed.Enum.speed_10_gbps @@ -19106,6 +19134,8 @@ func (x *Layer1Ieee8021Qbb) GetPfcClass_7() int32 { return 0 } +// Under Review: Information TBD +// // Under Review: Information TBD // // Configuration for capture settings. @@ -19119,6 +19149,9 @@ type Capture struct { // // x-constraint: // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` // A list of filters to apply to the capturing ports. If no filters are specified then // all packets will be captured. A capture can have multiple filters. The number of @@ -20272,6 +20305,9 @@ type IsisInterface struct { // x-constraint: // - /components/schemas/Device.Ethernet/properties/name // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // // required = true EthName string `protobuf:"bytes,1,opt,name=eth_name,json=ethName,proto3" json:"eth_name,omitempty"` // The default metric cost for the interface. @@ -22616,6 +22652,10 @@ type BgpV4Interface struct { // - /components/schemas/Device.Ipv4/properties/name // - /components/schemas/Device.Ipv4Loopback/properties/name // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv4Loopback/properties/name + // // required = true Ipv4Name string `protobuf:"bytes,1,opt,name=ipv4_name,json=ipv4Name,proto3" json:"ipv4_name,omitempty"` // This contains the list of BGPv4 peers configured on this interface. @@ -27618,6 +27658,10 @@ type BgpV6Interface struct { // - /components/schemas/Device.Ipv6/properties/name // - /components/schemas/Device.Ipv6Loopback/properties/name // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Device.Ipv6Loopback/properties/name + // // required = true Ipv6Name string `protobuf:"bytes,1,opt,name=ipv6_name,json=ipv6Name,proto3" json:"ipv6_name,omitempty"` // This contains the list of BGPv6 peers configured on this interface. @@ -28345,6 +28389,10 @@ type VxlanV4Tunnel struct { // - /components/schemas/Device.Ipv4/properties/name // - /components/schemas/Device.Ipv4Loopback/properties/name // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv4Loopback/properties/name + // // required = true SourceInterface string `protobuf:"bytes,1,opt,name=source_interface,json=sourceInterface,proto3" json:"source_interface,omitempty"` // Description missing in models @@ -28433,6 +28481,10 @@ type VxlanV6Tunnel struct { // - /components/schemas/Device.Ipv6/properties/name // - /components/schemas/Device.Ipv6Loopback/properties/name // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Device.Ipv6Loopback/properties/name + // // required = true SourceInterface string `protobuf:"bytes,1,opt,name=source_interface,json=sourceInterface,proto3" json:"source_interface,omitempty"` // Description missing in models @@ -29110,6 +29162,9 @@ type RsvpIpv4Interface struct { // x-constraint: // - /components/schemas/Device.Ipv4/properties/name // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // // required = true Ipv4Name string `protobuf:"bytes,1,opt,name=ipv4_name,json=ipv4Name,proto3" json:"ipv4_name,omitempty"` // IPv4 address of the RSVP neighbor on this interface. @@ -29278,6 +29333,10 @@ type RsvpLspIpv4Interface struct { // - /components/schemas/Device.Ipv4/properties/name // - /components/schemas/Device.Ipv4Loopback/properties/name // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv4Loopback/properties/name + // // required = true Ipv4Name string `protobuf:"bytes,1,opt,name=ipv4_name,json=ipv4Name,proto3" json:"ipv4_name,omitempty"` // Contains properties of Tail(Egress) LSPs. @@ -30313,11 +30372,11 @@ type Flow struct { // The transmit and receive endpoints. // required = true TxRx *FlowTxRx `protobuf:"bytes,1,opt,name=tx_rx,json=txRx,proto3" json:"tx_rx,omitempty"` - // Deprecated: Use flow.ingress_packet instead. + // The list of protocol headers defining the shape of all + // intended packets in corresponding flow as it is transmitted + // by traffic-generator port. // - // The header is a list of traffic protocol headers. - // - // The order of traffic protocol headers assigned to the list is the + // The order of protocol headers assigned to the list is the // order they will appear on the wire. // // In the case of an empty list the keyword/value of minItems: 1 @@ -30328,9 +30387,19 @@ type Flow struct { // which will result in an implementation by default providing at least // one ethernet packet header. Packet []*FlowHeader `protobuf:"bytes,2,rep,name=packet,proto3" json:"packet,omitempty"` - // Ingress packet - IngressPacket []*FlowHeader `protobuf:"bytes,8,rep,name=ingress_packet,json=ingressPacket,proto3" json:"ingress_packet,omitempty"` - // Egress packets + // Under Review: The packet header schema for egress tracking currently exposes unwanted + // fields. The query structure for tagged metrics inside flows metrics requires documenting + // expected response format. + // + // Under Review: The packet header schema for egress tracking currently exposes unwanted + // fields. The query structure for tagged metrics inside flows metrics requires documenting + // expected response format. + // + // The list of protocol headers defining the shape of all + // intended packets in corresponding flow as it is received + // by traffic-generator port. + // + // For all protocol headers, only the `metric_tags` property is configurable. EgressPacket []*FlowHeader `protobuf:"bytes,9,rep,name=egress_packet,json=egressPacket,proto3" json:"egress_packet,omitempty"` // The size of the packets. Size *FlowSize `protobuf:"bytes,3,opt,name=size,proto3,oneof" json:"size,omitempty"` @@ -30392,13 +30461,6 @@ func (x *Flow) GetPacket() []*FlowHeader { return nil } -func (x *Flow) GetIngressPacket() []*FlowHeader { - if x != nil { - return x.IngressPacket - } - return nil -} - func (x *Flow) GetEgressPacket() []*FlowHeader { if x != nil { return x.EgressPacket @@ -30528,6 +30590,10 @@ type FlowPort struct { // - /components/schemas/Port/properties/name // - /components/schemas/Lag/properties/name // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name + // // required = true TxName string `protobuf:"bytes,1,opt,name=tx_name,json=txName,proto3" json:"tx_name,omitempty"` // The unique name of a port that is the intended receive port. @@ -30535,6 +30601,10 @@ type FlowPort struct { // x-constraint: // - /components/schemas/Port/properties/name // - /components/schemas/Lag/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name RxName *string `protobuf:"bytes,2,opt,name=rx_name,json=rxName,proto3,oneof" json:"rx_name,omitempty"` } @@ -30646,6 +30716,17 @@ type FlowRouter struct { // - /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Bgp.CMacIpRange/properties/name + // - /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name TxNames []string `protobuf:"bytes,2,rep,name=tx_names,json=txNames,proto3" json:"tx_names,omitempty"` // TBD // @@ -30659,6 +30740,17 @@ type FlowRouter struct { // - /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Bgp.CMacIpRange/properties/name + // - /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name RxNames []string `protobuf:"bytes,3,rep,name=rx_names,json=rxNames,proto3" json:"rx_names,omitempty"` } @@ -30948,7 +31040,9 @@ type FlowCustom struct { // discarded. This packet header can be used in multiple places in the packet. // required = true Bytes string `protobuf:"bytes,1,opt,name=bytes,proto3" json:"bytes,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits + // in a corresponding header field for metrics per each applicable value. + // These would appear as tagged metrics in corresponding flow metrics. MetricTags []*FlowCustomMetricTag `protobuf:"bytes,2,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` } @@ -30998,20 +31092,23 @@ func (x *FlowCustom) GetMetricTags() []*FlowCustomMetricTag { return nil } -// Description missing in models +// Metric Tag can be used to enable tracking portion of or all bits +// in a corresponding header field for metrics per each applicable value. +// These would appear as tagged metrics in corresponding flow metrics. type FlowCustomMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. + // Name used to identify the metrics associated with the values applicable + // for configured offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // This is in bits and relative to start of the field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // This is in bits + // Number of bits to track for metrics starting from configured offset + // of corresponding header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -34640,6 +34737,11 @@ type EventRequest struct { // - /components/schemas/Port/properties/name // - /components/schemas/Bgp.V4RouteRange/name // - /components/schemas/Bgp.V6RouteRange/name + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Bgp.V4RouteRange/name + // - /components/schemas/Bgp.V6RouteRange/name Source []string `protobuf:"bytes,2,rep,name=source,proto3" json:"source,omitempty"` } @@ -34880,6 +34982,9 @@ type LldpConnection struct { // // x-constraint: // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name PortName *string `protobuf:"bytes,2,opt,name=port_name,json=portName,proto3,oneof" json:"port_name,omitempty"` } @@ -35819,6 +35924,8 @@ func (x *StateProtocol) GetLacp() *StateProtocolLacp { return nil } +// Deprecated: Please use `StatePortLink` instead +// // Deprecated: Please use `StatePortLink` instead // // Sets the link state of configured ports. @@ -35831,6 +35938,9 @@ type LinkState struct { // // x-constraint: // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` // The link state. // required = true @@ -35883,6 +35993,8 @@ func (x *LinkState) GetState() LinkState_State_Enum { return LinkState_State_unspecified } +// Deprecated: Please use `StateTrafficFlowTransmit` instead +// // Deprecated: Please use `StateTrafficFlowTransmit` instead // // Flow transmit state. @@ -35898,6 +36010,9 @@ type TransmitState struct { // // x-constraint: // - /components/schemas/Flow/properties/name + // + // x-constraint: + // - /components/schemas/Flow/properties/name FlowNames []string `protobuf:"bytes,1,rep,name=flow_names,json=flowNames,proto3" json:"flow_names,omitempty"` // The transmit state. // If the value of the state property is 'start' then all flows defined by the 'flow_names' @@ -35961,6 +36076,8 @@ func (x *TransmitState) GetState() TransmitState_State_Enum { return TransmitState_State_unspecified } +// Deprecated: Please use `StatePortCapture` instead +// // Deprecated: Please use `StatePortCapture` instead // // Control port capture state @@ -35976,6 +36093,9 @@ type CaptureState struct { // // x-constraint: // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` // The capture state. // required = true @@ -36028,6 +36148,8 @@ func (x *CaptureState) GetState() CaptureState_State_Enum { return CaptureState_State_unspecified } +// Deprecated: Please use `StateProtocolRoute` instead +// // Deprecated: Please use `StateProtocolRoute` instead // // Sets the device route state @@ -36044,6 +36166,12 @@ type RouteState struct { // - /components/schemas/Bgp.V6RouteRange/properties/name // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name + // + // x-constraint: + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name Names []string `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"` // Route specific states // required = true @@ -36096,6 +36224,8 @@ func (x *RouteState) GetState() RouteState_State_Enum { return RouteState_State_unspecified } +// Deprecated: Please use `StateProtocolAll` instead +// // Deprecated: Please use `StateProtocolAll` instead // // Sets all configured protocols to `start` or `stop` state. Setting protocol state @@ -36150,6 +36280,8 @@ func (x *ProtocolState) GetState() ProtocolState_State_Enum { return ProtocolState_State_unspecified } +// Deprecated: Please use `State.Protocol` instead +// // Deprecated: Please use `State.Protocol` instead // // Sets attributes for the requested state/actions to be performed on device(s) @@ -36220,6 +36352,9 @@ type StatePortLink struct { // // x-constraint: // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` // The link state. // required = true @@ -36285,6 +36420,9 @@ type StatePortCapture struct { // // x-constraint: // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` // The capture state. // required = true @@ -36350,6 +36488,9 @@ type StateTrafficFlowTransmit struct { // // x-constraint: // - /components/schemas/Flow/properties/name + // + // x-constraint: + // - /components/schemas/Flow/properties/name FlowNames []string `protobuf:"bytes,1,rep,name=flow_names,json=flowNames,proto3" json:"flow_names,omitempty"` // The transmit state. // If the value of the state property is 'start' then all flows defined by the 'flow_names' @@ -36479,6 +36620,12 @@ type StateProtocolRoute struct { // - /components/schemas/Bgp.V6RouteRange/properties/name // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name + // + // x-constraint: + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name Names []string `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"` // Route states // required = true @@ -36601,6 +36748,9 @@ type StateProtocolLacpAdmin struct { // // x-constraint: // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name LagMemberNames []string `protobuf:"bytes,1,rep,name=lag_member_names,json=lagMemberNames,proto3" json:"lag_member_names,omitempty"` // The LACP Member admin state. 'up' will send LACPDUs with 'sync' flag set on selected // member ports. 'down' will send LACPDUs with 'sync' flag unset on selected member @@ -36654,6 +36804,8 @@ func (x *StateProtocolLacpAdmin) GetState() StateProtocolLacpAdmin_State_Enum { return StateProtocolLacpAdmin_State_unspecified } +// Deprecated: Please use `StateProtocolLacpAdmin` instead +// // Deprecated: Please use `StateProtocolLacpAdmin` instead // // Set LACP state for specified LAG Member Port(s). @@ -36667,6 +36819,9 @@ type LacpMemberState struct { // // x-constraint: // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name LagMemberPortNames []string `protobuf:"bytes,1,rep,name=lag_member_port_names,json=lagMemberPortNames,proto3" json:"lag_member_port_names,omitempty"` // The LACP Member admin state. 'up' will send LACPDUs with 'sync' flag set on selected // member ports. 'down' will send LACPDUs with 'sync' flag unset on selected member @@ -37209,6 +37364,8 @@ func (x *ActionProtocolIpv4Ping) GetRequests() []*ActionProtocolIpv4PingRequest return nil } +// Under Review: Most ping request parameters are still TBD. +// // Under Review: Most ping request parameters are still TBD. // // Request for initiating ping between a single source and destination pair. @@ -37223,6 +37380,9 @@ type ActionProtocolIpv4PingRequest struct { // // x-constraint: // - /components/schemas/Device.Ipv4/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name SrcName *string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3,oneof" json:"src_name,omitempty"` // Destination IPv4 address to ping. DstIp *string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` @@ -37334,6 +37494,9 @@ type ActionResponseProtocolIpv4PingResponse struct { // x-constraint: // - /components/schemas/Device.Ipv4/properties/name // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // // required = true SrcName string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3" json:"src_name,omitempty"` // Destination IPv4 address used for ping. @@ -37564,6 +37727,8 @@ func (x *ActionProtocolIpv6Ping) GetRequests() []*ActionProtocolIpv6PingRequest return nil } +// Under Review: Most ping request parameters are still TBD. +// // Under Review: Most ping request parameters are still TBD. // // Request for initiating ping between a single source and destination pair. @@ -37578,6 +37743,9 @@ type ActionProtocolIpv6PingRequest struct { // // x-constraint: // - /components/schemas/Device.Ipv6/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name SrcName *string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3,oneof" json:"src_name,omitempty"` // Destination IPv6 address to ping. DstIp *string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` @@ -37689,6 +37857,9 @@ type ActionResponseProtocolIpv6PingResponse struct { // x-constraint: // - /components/schemas/Device.Ipv6/properties/name // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // // required = true SrcName string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3" json:"src_name,omitempty"` // Destination IPv6 address used for ping. @@ -37836,6 +38007,9 @@ type ActionProtocolBgpNotification struct { // // x-constraint: // - /components/schemas/Device.Bgp/properties/name + // + // x-constraint: + // - /components/schemas/Device.Bgp/properties/name Names []string `protobuf:"bytes,1,rep,name=names,proto3" json:"names,omitempty"` // Each BGP NOTIFICATION message includes an Error Code field indicating what type of // problem occurred. For certain Error Codes, an Error Subcode field provides additional @@ -37968,6 +38142,9 @@ type ActionProtocolBgpInitiateGracefulRestart struct { // // x-constraint: // - /components/schemas/Device.Bgp/properties/name + // + // x-constraint: + // - /components/schemas/Device.Bgp/properties/name PeerNames []string `protobuf:"bytes,1,rep,name=peer_names,json=peerNames,proto3" json:"peer_names,omitempty"` // Duration (in seconds) after which selected BGP peers will initiate // Graceful restart by sending the Open Message with Restart State bit set in the Graceful @@ -38100,6 +38277,9 @@ type PingIpv4 struct { // // x-constraint: // - /components/schemas/Device.Ipv4/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name SrcName *string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3,oneof" json:"src_name,omitempty"` // IPv4 address to ping DstIp *string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` @@ -38161,6 +38341,9 @@ type PingIpv6 struct { // // x-constraint: // - /components/schemas/Device.Ipv6/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name SrcName *string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3,oneof" json:"src_name,omitempty"` // IPv6 addresses to ping. DstIp *string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` @@ -38321,6 +38504,10 @@ type Response struct { // x-constraint: // - /components/schemas/Device.Ipv4/properties/name // - /components/schemas/Device.Ipv6/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv6/properties/name SrcName *string `protobuf:"bytes,1,opt,name=src_name,json=srcName,proto3,oneof" json:"src_name,omitempty"` // Destination address. DstIp *string `protobuf:"bytes,2,opt,name=dst_ip,json=dstIp,proto3,oneof" json:"dst_ip,omitempty"` @@ -38655,6 +38842,9 @@ type PortMetricsRequest struct { // // x-constraint: // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name PortNames []string `protobuf:"bytes,1,rep,name=port_names,json=portNames,proto3" json:"port_names,omitempty"` // The list of column names that the returned result set will contain. If the list is // empty then all columns will be returned. The name of the port cannot be excluded. @@ -38717,6 +38907,9 @@ type PortMetric struct { // // x-constraint: // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // The state of the connection to the test port location. The format should be the configured // port location along with any custom connection state message. @@ -38880,6 +39073,9 @@ type FlowMetricsRequest struct { // // x-constraint: // - /components/schemas/Flow/properties/name + // + // x-constraint: + // - /components/schemas/Flow/properties/name FlowNames []string `protobuf:"bytes,1,rep,name=flow_names,json=flowNames,proto3" json:"flow_names,omitempty"` // The list of metric names that the returned result set will contain. If the list is // empty then all metrics will be returned. @@ -39116,7 +39312,10 @@ type FlowMetric struct { Timestamps *MetricTimestamp `protobuf:"bytes,13,opt,name=timestamps,proto3,oneof" json:"timestamps,omitempty"` // Description missing in models Latency *MetricLatency `protobuf:"bytes,14,opt,name=latency,proto3,oneof" json:"latency,omitempty"` - // List of tagged metrics + // List of metrics corresponding to a set of values applicable + // for configured metric tags in ingress or egress packet header fields of corresponding + // flow. + // The container is keyed by list of tag-value pairs. TaggedMetrics []*FlowTaggedMetric `protobuf:"bytes,15,rep,name=tagged_metrics,json=taggedMetrics,proto3" json:"tagged_metrics,omitempty"` } @@ -39250,7 +39449,9 @@ func (x *FlowMetric) GetTaggedMetrics() []*FlowTaggedMetric { return nil } -// A container for tagged flow metrics. The container is keyed by list of tags. +// Metrics for each set of values applicable for configured +// metric tags in ingress or egress packet header fields of corresponding flow. +// The container is keyed by list of tag-value pairs. type FlowTaggedMetric struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -39639,6 +39840,9 @@ type Bgpv4MetricsRequest struct { // // x-constraint: // - /components/schemas/Bgp.V4peer/properties/name + // + // x-constraint: + // - /components/schemas/Bgp.V4peer/properties/name PeerNames []string `protobuf:"bytes,1,rep,name=peer_names,json=peerNames,proto3" json:"peer_names,omitempty"` // The list of column names that the returned result set will contain. If the list is // empty then all columns will be returned except for any result_groups. The name of @@ -39898,6 +40102,9 @@ type Bgpv6MetricsRequest struct { // // x-constraint: // - /components/schemas/Bgp.V6peer/properties/name + // + // x-constraint: + // - /components/schemas/Bgp.V6peer/properties/name PeerNames []string `protobuf:"bytes,1,rep,name=peer_names,json=peerNames,proto3" json:"peer_names,omitempty"` // The list of column names that the returned result set will contain. If the list is // empty then all columns will be returned except for any result_groups. The name of @@ -40157,6 +40364,9 @@ type IsisMetricsRequest struct { // // x-constraint: // - /components/schemas/Device.IsisRouter/properties/name + // + // x-constraint: + // - /components/schemas/Device.IsisRouter/properties/name RouterNames []string `protobuf:"bytes,1,rep,name=router_names,json=routerNames,proto3" json:"router_names,omitempty"` // The list of column names that the returned result set will contain. If the list is // empty then all columns will be returned except for any result_groups. The name of @@ -40504,6 +40714,9 @@ type LagMetricsRequest struct { // // x-constraint: // - /components/schemas/Lag/properties/name + // + // x-constraint: + // - /components/schemas/Lag/properties/name LagNames []string `protobuf:"bytes,1,rep,name=lag_names,json=lagNames,proto3" json:"lag_names,omitempty"` // The list of column names that the returned result set will contain. If the list is // empty then all columns will be returned. The name of the LAG cannot be excluded. @@ -40566,6 +40779,9 @@ type LagMetric struct { // // x-constraint: // - /components/schemas/Lag/properties/name + // + // x-constraint: + // - /components/schemas/Lag/properties/name Name *string `protobuf:"bytes,1,opt,name=name,proto3,oneof" json:"name,omitempty"` // The current operational state of the LAG. The state can be up or down. State 'up' // indicates member_ports_up >= min_links. @@ -40710,12 +40926,18 @@ type LacpMetricsRequest struct { // // x-constraint: // - /components/schemas/Lag/properties/name + // + // x-constraint: + // - /components/schemas/Lag/properties/name LagNames []string `protobuf:"bytes,1,rep,name=lag_names,json=lagNames,proto3" json:"lag_names,omitempty"` // The names of LAG members (ports) for which LACP metrics to be returned. An empty // list will return metrics for all LAG members. // // x-constraint: // - /components/schemas/Port/properties/name + // + // x-constraint: + // - /components/schemas/Port/properties/name LagMemberPortNames []string `protobuf:"bytes,2,rep,name=lag_member_port_names,json=lagMemberPortNames,proto3" json:"lag_member_port_names,omitempty"` // The list of column names that the returned result set will contain. If the list is // empty then all columns will be returned. The name of LAG and LAG member can not be @@ -40983,6 +41205,9 @@ type LldpMetricsRequest struct { // // x-constraint: // - /components/schemas/Lldp/properties/name + // + // x-constraint: + // - /components/schemas/Lldp/properties/name LldpNames []string `protobuf:"bytes,1,rep,name=lldp_names,json=lldpNames,proto3" json:"lldp_names,omitempty"` // The requested list of column names for the result set. If the list is empty then // metrics for all columns will be returned. The name of LLDP instance can not be excluded. @@ -41159,6 +41384,9 @@ type RsvpMetricsRequest struct { // // x-constraint: // - /components/schemas/Device.Rsvp/properties/name + // + // x-constraint: + // - /components/schemas/Device.Rsvp/properties/name RouterNames []string `protobuf:"bytes,1,rep,name=router_names,json=routerNames,proto3" json:"router_names,omitempty"` // The list of column names that the returned result set will contain. If the input // list is empty then all columns will be returned except for any result_groups. @@ -41757,6 +41985,9 @@ type Neighborsv4StatesRequest struct { // // x-constraint: // - /components/schemas/Device.Ethernet/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name EthernetNames []string `protobuf:"bytes,1,rep,name=ethernet_names,json=ethernetNames,proto3" json:"ethernet_names,omitempty"` } @@ -41881,6 +42112,9 @@ type Neighborsv6StatesRequest struct { // // x-constraint: // - /components/schemas/Device.Ethernet/properties/name + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name EthernetNames []string `protobuf:"bytes,1,rep,name=ethernet_names,json=ethernetNames,proto3" json:"ethernet_names,omitempty"` } @@ -42006,6 +42240,10 @@ type BgpPrefixStateRequest struct { // x-constraint: // - /components/schemas/Bgp.V4Peer/properties/name // - /components/schemas/Bgp.V6Peer/properties/name + // + // x-constraint: + // - /components/schemas/Bgp.V4Peer/properties/name + // - /components/schemas/Bgp.V6Peer/properties/name BgpPeerNames []string `protobuf:"bytes,1,rep,name=bgp_peer_names,json=bgpPeerNames,proto3" json:"bgp_peer_names,omitempty"` // Specify which prefixes to return. If the list is empty or missing then all prefixes // will be returned. @@ -42723,6 +42961,9 @@ type IsisLspsStateRequest struct { // // x-constraint: // - /components/schemas/Device.IsisRouter/properties/name + // + // x-constraint: + // - /components/schemas/Device.IsisRouter/properties/name IsisRouterNames []string `protobuf:"bytes,1,rep,name=isis_router_names,json=isisRouterNames,proto3" json:"isis_router_names,omitempty"` } @@ -43911,6 +44152,9 @@ type LldpNeighborsStateRequest struct { // // x-constraint: // - /components/schemas/Lldp/properties/name + // + // x-constraint: + // - /components/schemas/Lldp/properties/name LldpNames []string `protobuf:"bytes,1,rep,name=lldp_names,json=lldpNames,proto3" json:"lldp_names,omitempty"` // Specify the neighbors for which information will be returned. If empty or missing // then information for all neighbors will be returned. @@ -44310,6 +44554,9 @@ type RsvpLspsStateRequest struct { // // x-constraint: // - /components/schemas/Device.Rsvp/properties/name + // + // x-constraint: + // - /components/schemas/Device.Rsvp/properties/name RsvpRouterNames []string `protobuf:"bytes,1,rep,name=rsvp_router_names,json=rsvpRouterNames,proto3" json:"rsvp_router_names,omitempty"` } @@ -44759,6 +45006,9 @@ type CaptureRequest struct { // x-constraint: // - /components/schemas/Port/properties/name // + // x-constraint: + // - /components/schemas/Port/properties/name + // // required = true PortName string `protobuf:"bytes,1,opt,name=port_name,json=portName,proto3" json:"port_name,omitempty"` } @@ -44802,22 +45052,23 @@ func (x *CaptureRequest) GetPortName() string { return "" } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowEthernetDstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 48 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -44965,7 +45216,9 @@ type PatternFlowEthernetDst struct { // the default value must be used. // default = 00:00:00:00:00:00 Auto *string `protobuf:"bytes,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowEthernetDstMetricTag `protobuf:"bytes,6,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowEthernetDstCounter `protobuf:"bytes,7,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -45054,22 +45307,23 @@ func (x *PatternFlowEthernetDst) GetDecrement() *PatternFlowEthernetDstCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowEthernetSrcMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 48 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -45212,7 +45466,9 @@ type PatternFlowEthernetSrc struct { // Description missing in models // default = ['00:00:00:00:00:00'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowEthernetSrcMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowEthernetSrcCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -45294,22 +45550,23 @@ func (x *PatternFlowEthernetSrc) GetDecrement() *PatternFlowEthernetSrcCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowEthernetEtherTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -45457,7 +45714,9 @@ type PatternFlowEthernetEtherType struct { // the default value must be used. // default = 65535 Auto *int32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowEthernetEtherTypeMetricTag `protobuf:"bytes,6,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowEthernetEtherTypeCounter `protobuf:"bytes,7,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -45546,22 +45805,23 @@ func (x *PatternFlowEthernetEtherType) GetDecrement() *PatternFlowEthernetEtherT return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowEthernetPfcQueueMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 3 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -45704,7 +45964,9 @@ type PatternFlowEthernetPfcQueue struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowEthernetPfcQueueMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowEthernetPfcQueueCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -45786,22 +46048,23 @@ func (x *PatternFlowEthernetPfcQueue) GetDecrement() *PatternFlowEthernetPfcQueu return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowVlanPriorityMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 3 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -45944,7 +46207,9 @@ type PatternFlowVlanPriority struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowVlanPriorityMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowVlanPriorityCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -46026,22 +46291,23 @@ func (x *PatternFlowVlanPriority) GetDecrement() *PatternFlowVlanPriorityCounter return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowVlanCfiMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -46184,7 +46450,9 @@ type PatternFlowVlanCfi struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowVlanCfiMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowVlanCfiCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -46266,22 +46534,23 @@ func (x *PatternFlowVlanCfi) GetDecrement() *PatternFlowVlanCfiCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowVlanIdMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 12 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -46424,7 +46693,9 @@ type PatternFlowVlanId struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowVlanIdMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowVlanIdCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -46506,22 +46777,23 @@ func (x *PatternFlowVlanId) GetDecrement() *PatternFlowVlanIdCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowVlanTpidMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -46664,7 +46936,9 @@ type PatternFlowVlanTpid struct { // Description missing in models // default = [33024] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowVlanTpidMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowVlanTpidCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -46746,22 +47020,23 @@ func (x *PatternFlowVlanTpid) GetDecrement() *PatternFlowVlanTpidCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowVxlanFlagsMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -46906,7 +47181,9 @@ type PatternFlowVxlanFlags struct { // Description missing in models // default = [8] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowVxlanFlagsMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowVxlanFlagsCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -46988,22 +47265,23 @@ func (x *PatternFlowVxlanFlags) GetDecrement() *PatternFlowVxlanFlagsCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowVxlanReserved0MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 24 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -47146,7 +47424,9 @@ type PatternFlowVxlanReserved0 struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowVxlanReserved0MetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowVxlanReserved0Counter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -47228,22 +47508,23 @@ func (x *PatternFlowVxlanReserved0) GetDecrement() *PatternFlowVxlanReserved0Cou return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowVxlanVniMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 24 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -47391,7 +47672,9 @@ type PatternFlowVxlanVni struct { // the default value must be used. // default = 0 Auto *int32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowVxlanVniMetricTag `protobuf:"bytes,6,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowVxlanVniCounter `protobuf:"bytes,7,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -47480,22 +47763,23 @@ func (x *PatternFlowVxlanVni) GetDecrement() *PatternFlowVxlanVniCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowVxlanReserved1MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -47638,7 +47922,9 @@ type PatternFlowVxlanReserved1 struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowVxlanReserved1MetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowVxlanReserved1Counter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -47720,22 +48006,23 @@ func (x *PatternFlowVxlanReserved1) GetDecrement() *PatternFlowVxlanReserved1Cou return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv4VersionMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 4 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -47878,7 +48165,9 @@ type PatternFlowIpv4Version struct { // Description missing in models // default = [4] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv4VersionMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv4VersionCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -47960,22 +48249,23 @@ func (x *PatternFlowIpv4Version) GetDecrement() *PatternFlowIpv4VersionCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv4HeaderLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 4 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -48123,7 +48413,9 @@ type PatternFlowIpv4HeaderLength struct { // the default value must be used. // default = 5 Auto *int32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv4HeaderLengthMetricTag `protobuf:"bytes,6,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv4HeaderLengthCounter `protobuf:"bytes,7,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -48212,22 +48504,23 @@ func (x *PatternFlowIpv4HeaderLength) GetDecrement() *PatternFlowIpv4HeaderLengt return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv4TotalLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -48375,7 +48668,9 @@ type PatternFlowIpv4TotalLength struct { // the default value must be used. // default = 46 Auto *int32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv4TotalLengthMetricTag `protobuf:"bytes,6,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv4TotalLengthCounter `protobuf:"bytes,7,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -48464,22 +48759,23 @@ func (x *PatternFlowIpv4TotalLength) GetDecrement() *PatternFlowIpv4TotalLengthC return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv4IdentificationMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -48622,7 +48918,9 @@ type PatternFlowIpv4Identification struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv4IdentificationMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv4IdentificationCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -48704,22 +49002,23 @@ func (x *PatternFlowIpv4Identification) GetDecrement() *PatternFlowIpv4Identific return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv4ReservedMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -48862,7 +49161,9 @@ type PatternFlowIpv4Reserved struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv4ReservedMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv4ReservedCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -48944,22 +49245,23 @@ func (x *PatternFlowIpv4Reserved) GetDecrement() *PatternFlowIpv4ReservedCounter return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv4DontFragmentMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -49103,7 +49405,9 @@ type PatternFlowIpv4DontFragment struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv4DontFragmentMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv4DontFragmentCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -49185,22 +49489,23 @@ func (x *PatternFlowIpv4DontFragment) GetDecrement() *PatternFlowIpv4DontFragmen return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv4MoreFragmentsMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -49343,7 +49648,9 @@ type PatternFlowIpv4MoreFragments struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv4MoreFragmentsMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv4MoreFragmentsCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -49425,22 +49732,23 @@ func (x *PatternFlowIpv4MoreFragments) GetDecrement() *PatternFlowIpv4MoreFragme return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv4FragmentOffsetMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 5 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -49583,7 +49891,9 @@ type PatternFlowIpv4FragmentOffset struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv4FragmentOffsetMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv4FragmentOffsetCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -49665,22 +49975,23 @@ func (x *PatternFlowIpv4FragmentOffset) GetDecrement() *PatternFlowIpv4FragmentO return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv4TimeToLiveMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -49823,7 +50134,9 @@ type PatternFlowIpv4TimeToLive struct { // Description missing in models // default = [64] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv4TimeToLiveMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv4TimeToLiveCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -49905,22 +50218,23 @@ func (x *PatternFlowIpv4TimeToLive) GetDecrement() *PatternFlowIpv4TimeToLiveCou return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv4ProtocolMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -50068,7 +50382,9 @@ type PatternFlowIpv4Protocol struct { // the default value must be used. // default = 61 Auto *int32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv4ProtocolMetricTag `protobuf:"bytes,6,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv4ProtocolCounter `protobuf:"bytes,7,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -50226,22 +50542,23 @@ func (x *PatternFlowIpv4HeaderChecksum) GetCustom() int32 { return 0 } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv4SrcMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 32 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -50384,7 +50701,9 @@ type PatternFlowIpv4Src struct { // Description missing in models // default = ['0.0.0.0'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv4SrcMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv4SrcCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -50466,22 +50785,23 @@ func (x *PatternFlowIpv4Src) GetDecrement() *PatternFlowIpv4SrcCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv4DstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 32 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -50624,7 +50944,9 @@ type PatternFlowIpv4Dst struct { // Description missing in models // default = ['0.0.0.0'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv4DstMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv4DstCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -50706,22 +51028,23 @@ func (x *PatternFlowIpv4Dst) GetDecrement() *PatternFlowIpv4DstCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv4PriorityRawMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -50864,7 +51187,9 @@ type PatternFlowIpv4PriorityRaw struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv4PriorityRawMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv4PriorityRawCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -50946,22 +51271,23 @@ func (x *PatternFlowIpv4PriorityRaw) GetDecrement() *PatternFlowIpv4PriorityRawC return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv4DscpPhbMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 6 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -51104,7 +51430,9 @@ type PatternFlowIpv4DscpPhb struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv4DscpPhbMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv4DscpPhbCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -51186,22 +51514,23 @@ func (x *PatternFlowIpv4DscpPhb) GetDecrement() *PatternFlowIpv4DscpPhbCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv4DscpEcnMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 2 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -51344,7 +51673,9 @@ type PatternFlowIpv4DscpEcn struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv4DscpEcnMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv4DscpEcnCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -51426,22 +51757,23 @@ func (x *PatternFlowIpv4DscpEcn) GetDecrement() *PatternFlowIpv4DscpEcnCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv4TosPrecedenceMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 3 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -51584,7 +51916,9 @@ type PatternFlowIpv4TosPrecedence struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv4TosPrecedenceMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv4TosPrecedenceCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -51666,22 +52000,23 @@ func (x *PatternFlowIpv4TosPrecedence) GetDecrement() *PatternFlowIpv4TosPrecede return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv4TosDelayMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -51824,7 +52159,9 @@ type PatternFlowIpv4TosDelay struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv4TosDelayMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv4TosDelayCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -51906,22 +52243,23 @@ func (x *PatternFlowIpv4TosDelay) GetDecrement() *PatternFlowIpv4TosDelayCounter return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv4TosThroughputMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -52064,7 +52402,9 @@ type PatternFlowIpv4TosThroughput struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv4TosThroughputMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv4TosThroughputCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -52146,22 +52486,23 @@ func (x *PatternFlowIpv4TosThroughput) GetDecrement() *PatternFlowIpv4TosThrough return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv4TosReliabilityMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -52304,7 +52645,9 @@ type PatternFlowIpv4TosReliability struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv4TosReliabilityMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv4TosReliabilityCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -52386,22 +52729,23 @@ func (x *PatternFlowIpv4TosReliability) GetDecrement() *PatternFlowIpv4TosReliab return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv4TosMonetaryMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -52544,7 +52888,9 @@ type PatternFlowIpv4TosMonetary struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv4TosMonetaryMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv4TosMonetaryCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -52626,22 +52972,23 @@ func (x *PatternFlowIpv4TosMonetary) GetDecrement() *PatternFlowIpv4TosMonetaryC return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv4TosUnusedMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -52784,7 +53131,9 @@ type PatternFlowIpv4TosUnused struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv4TosUnusedMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv4TosUnusedCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -52866,22 +53215,23 @@ func (x *PatternFlowIpv4TosUnused) GetDecrement() *PatternFlowIpv4TosUnusedCount return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv6VersionMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 4 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -53024,7 +53374,9 @@ type PatternFlowIpv6Version struct { // Description missing in models // default = [6] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv6VersionMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv6VersionCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -53106,22 +53458,23 @@ func (x *PatternFlowIpv6Version) GetDecrement() *PatternFlowIpv6VersionCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv6TrafficClassMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -53264,7 +53617,9 @@ type PatternFlowIpv6TrafficClass struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv6TrafficClassMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv6TrafficClassCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -53346,22 +53701,23 @@ func (x *PatternFlowIpv6TrafficClass) GetDecrement() *PatternFlowIpv6TrafficClas return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv6FlowLabelMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 20 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -53504,7 +53860,9 @@ type PatternFlowIpv6FlowLabel struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv6FlowLabelMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv6FlowLabelCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -53586,22 +53944,23 @@ func (x *PatternFlowIpv6FlowLabel) GetDecrement() *PatternFlowIpv6FlowLabelCount return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv6PayloadLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -53749,7 +54108,9 @@ type PatternFlowIpv6PayloadLength struct { // the default value must be used. // default = 0 Auto *int32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv6PayloadLengthMetricTag `protobuf:"bytes,6,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv6PayloadLengthCounter `protobuf:"bytes,7,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -53838,22 +54199,23 @@ func (x *PatternFlowIpv6PayloadLength) GetDecrement() *PatternFlowIpv6PayloadLen return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv6NextHeaderMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -54001,7 +54363,9 @@ type PatternFlowIpv6NextHeader struct { // the default value must be used. // default = 59 Auto *int32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv6NextHeaderMetricTag `protobuf:"bytes,6,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv6NextHeaderCounter `protobuf:"bytes,7,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -54090,22 +54454,23 @@ func (x *PatternFlowIpv6NextHeader) GetDecrement() *PatternFlowIpv6NextHeaderCou return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv6HopLimitMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -54248,7 +54613,9 @@ type PatternFlowIpv6HopLimit struct { // Description missing in models // default = [64] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv6HopLimitMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv6HopLimitCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -54330,22 +54697,23 @@ func (x *PatternFlowIpv6HopLimit) GetDecrement() *PatternFlowIpv6HopLimitCounter return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv6SrcMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 128 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -54488,7 +54856,9 @@ type PatternFlowIpv6Src struct { // Description missing in models // default = ['::0'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv6SrcMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv6SrcCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -54570,22 +54940,23 @@ func (x *PatternFlowIpv6Src) GetDecrement() *PatternFlowIpv6SrcCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIpv6DstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 128 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -54728,7 +55099,9 @@ type PatternFlowIpv6Dst struct { // Description missing in models // default = ['::0'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIpv6DstMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIpv6DstCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -54810,22 +55183,23 @@ func (x *PatternFlowIpv6Dst) GetDecrement() *PatternFlowIpv6DstCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowPfcPauseDstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 48 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -54968,7 +55342,9 @@ type PatternFlowPfcPauseDst struct { // Description missing in models // default = ['01:80:c2:00:00:01'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowPfcPauseDstMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowPfcPauseDstCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -55050,22 +55426,23 @@ func (x *PatternFlowPfcPauseDst) GetDecrement() *PatternFlowPfcPauseDstCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowPfcPauseSrcMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 48 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -55208,7 +55585,9 @@ type PatternFlowPfcPauseSrc struct { // Description missing in models // default = ['00:00:00:00:00:00'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowPfcPauseSrcMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowPfcPauseSrcCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -55290,22 +55669,23 @@ func (x *PatternFlowPfcPauseSrc) GetDecrement() *PatternFlowPfcPauseSrcCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowPfcPauseEtherTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -55448,7 +55828,9 @@ type PatternFlowPfcPauseEtherType struct { // Description missing in models // default = [34824] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowPfcPauseEtherTypeMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowPfcPauseEtherTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -55530,22 +55912,23 @@ func (x *PatternFlowPfcPauseEtherType) GetDecrement() *PatternFlowPfcPauseEtherT return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowPfcPauseControlOpCodeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -55688,7 +56071,9 @@ type PatternFlowPfcPauseControlOpCode struct { // Description missing in models // default = [257] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowPfcPauseControlOpCodeMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowPfcPauseControlOpCodeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -55770,22 +56155,23 @@ func (x *PatternFlowPfcPauseControlOpCode) GetDecrement() *PatternFlowPfcPauseCo return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowPfcPauseClassEnableVectorMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -55928,7 +56314,9 @@ type PatternFlowPfcPauseClassEnableVector struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowPfcPauseClassEnableVectorMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowPfcPauseClassEnableVectorCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -56010,22 +56398,23 @@ func (x *PatternFlowPfcPauseClassEnableVector) GetDecrement() *PatternFlowPfcPau return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowPfcPausePauseClass0MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -56168,7 +56557,9 @@ type PatternFlowPfcPausePauseClass0 struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowPfcPausePauseClass0MetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowPfcPausePauseClass0Counter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -56250,22 +56641,23 @@ func (x *PatternFlowPfcPausePauseClass0) GetDecrement() *PatternFlowPfcPausePaus return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowPfcPausePauseClass1MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -56408,7 +56800,9 @@ type PatternFlowPfcPausePauseClass1 struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowPfcPausePauseClass1MetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowPfcPausePauseClass1Counter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -56490,22 +56884,23 @@ func (x *PatternFlowPfcPausePauseClass1) GetDecrement() *PatternFlowPfcPausePaus return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowPfcPausePauseClass2MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -56648,7 +57043,9 @@ type PatternFlowPfcPausePauseClass2 struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowPfcPausePauseClass2MetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowPfcPausePauseClass2Counter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -56730,22 +57127,23 @@ func (x *PatternFlowPfcPausePauseClass2) GetDecrement() *PatternFlowPfcPausePaus return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowPfcPausePauseClass3MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -56888,7 +57286,9 @@ type PatternFlowPfcPausePauseClass3 struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowPfcPausePauseClass3MetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowPfcPausePauseClass3Counter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -56970,22 +57370,23 @@ func (x *PatternFlowPfcPausePauseClass3) GetDecrement() *PatternFlowPfcPausePaus return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowPfcPausePauseClass4MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -57128,7 +57529,9 @@ type PatternFlowPfcPausePauseClass4 struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowPfcPausePauseClass4MetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowPfcPausePauseClass4Counter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -57210,22 +57613,23 @@ func (x *PatternFlowPfcPausePauseClass4) GetDecrement() *PatternFlowPfcPausePaus return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowPfcPausePauseClass5MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -57368,7 +57772,9 @@ type PatternFlowPfcPausePauseClass5 struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowPfcPausePauseClass5MetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowPfcPausePauseClass5Counter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -57450,22 +57856,23 @@ func (x *PatternFlowPfcPausePauseClass5) GetDecrement() *PatternFlowPfcPausePaus return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowPfcPausePauseClass6MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -57608,7 +58015,9 @@ type PatternFlowPfcPausePauseClass6 struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowPfcPausePauseClass6MetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowPfcPausePauseClass6Counter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -57690,22 +58099,23 @@ func (x *PatternFlowPfcPausePauseClass6) GetDecrement() *PatternFlowPfcPausePaus return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowPfcPausePauseClass7MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -57848,7 +58258,9 @@ type PatternFlowPfcPausePauseClass7 struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowPfcPausePauseClass7MetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowPfcPausePauseClass7Counter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -57930,22 +58342,23 @@ func (x *PatternFlowPfcPausePauseClass7) GetDecrement() *PatternFlowPfcPausePaus return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowEthernetPauseDstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 48 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -58088,7 +58501,9 @@ type PatternFlowEthernetPauseDst struct { // Description missing in models // default = ['01:80:c2:00:00:01'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowEthernetPauseDstMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowEthernetPauseDstCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -58170,22 +58585,23 @@ func (x *PatternFlowEthernetPauseDst) GetDecrement() *PatternFlowEthernetPauseDs return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowEthernetPauseSrcMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 48 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -58328,7 +58744,9 @@ type PatternFlowEthernetPauseSrc struct { // Description missing in models // default = ['00:00:00:00:00:00'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowEthernetPauseSrcMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowEthernetPauseSrcCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -58410,22 +58828,23 @@ func (x *PatternFlowEthernetPauseSrc) GetDecrement() *PatternFlowEthernetPauseSr return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowEthernetPauseEtherTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -58568,7 +58987,9 @@ type PatternFlowEthernetPauseEtherType struct { // Description missing in models // default = [34824] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowEthernetPauseEtherTypeMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowEthernetPauseEtherTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -58650,22 +59071,23 @@ func (x *PatternFlowEthernetPauseEtherType) GetDecrement() *PatternFlowEthernetP return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowEthernetPauseControlOpCodeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -58808,7 +59230,9 @@ type PatternFlowEthernetPauseControlOpCode struct { // Description missing in models // default = [1] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowEthernetPauseControlOpCodeMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowEthernetPauseControlOpCodeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -58890,22 +59314,23 @@ func (x *PatternFlowEthernetPauseControlOpCode) GetDecrement() *PatternFlowEther return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowEthernetPauseTimeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -59048,7 +59473,9 @@ type PatternFlowEthernetPauseTime struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowEthernetPauseTimeMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowEthernetPauseTimeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -59130,22 +59557,23 @@ func (x *PatternFlowEthernetPauseTime) GetDecrement() *PatternFlowEthernetPauseT return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowTcpSrcPortMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -59288,7 +59716,9 @@ type PatternFlowTcpSrcPort struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowTcpSrcPortMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowTcpSrcPortCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -59370,22 +59800,23 @@ func (x *PatternFlowTcpSrcPort) GetDecrement() *PatternFlowTcpSrcPortCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowTcpDstPortMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -59528,7 +59959,9 @@ type PatternFlowTcpDstPort struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowTcpDstPortMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowTcpDstPortCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -59610,22 +60043,23 @@ func (x *PatternFlowTcpDstPort) GetDecrement() *PatternFlowTcpDstPortCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowTcpSeqNumMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 32 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -59768,7 +60202,9 @@ type PatternFlowTcpSeqNum struct { // Description missing in models // default = [0] Values []int64 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowTcpSeqNumMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowTcpSeqNumCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -59850,22 +60286,23 @@ func (x *PatternFlowTcpSeqNum) GetDecrement() *PatternFlowTcpSeqNumCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowTcpAckNumMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 32 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -60008,7 +60445,9 @@ type PatternFlowTcpAckNum struct { // Description missing in models // default = [0] Values []int64 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowTcpAckNumMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowTcpAckNumCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -60090,22 +60529,23 @@ func (x *PatternFlowTcpAckNum) GetDecrement() *PatternFlowTcpAckNumCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowTcpDataOffsetMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 4 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -60248,7 +60688,9 @@ type PatternFlowTcpDataOffset struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowTcpDataOffsetMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowTcpDataOffsetCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -60330,22 +60772,23 @@ func (x *PatternFlowTcpDataOffset) GetDecrement() *PatternFlowTcpDataOffsetCount return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowTcpEcnNsMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -60488,7 +60931,9 @@ type PatternFlowTcpEcnNs struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowTcpEcnNsMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowTcpEcnNsCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -60570,22 +61015,23 @@ func (x *PatternFlowTcpEcnNs) GetDecrement() *PatternFlowTcpEcnNsCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowTcpEcnCwrMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -60728,7 +61174,9 @@ type PatternFlowTcpEcnCwr struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowTcpEcnCwrMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowTcpEcnCwrCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -60810,22 +61258,23 @@ func (x *PatternFlowTcpEcnCwr) GetDecrement() *PatternFlowTcpEcnCwrCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowTcpEcnEchoMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -60969,7 +61418,9 @@ type PatternFlowTcpEcnEcho struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowTcpEcnEchoMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowTcpEcnEchoCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -61051,22 +61502,23 @@ func (x *PatternFlowTcpEcnEcho) GetDecrement() *PatternFlowTcpEcnEchoCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowTcpCtlUrgMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -61209,7 +61661,9 @@ type PatternFlowTcpCtlUrg struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowTcpCtlUrgMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowTcpCtlUrgCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -61291,22 +61745,23 @@ func (x *PatternFlowTcpCtlUrg) GetDecrement() *PatternFlowTcpCtlUrgCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowTcpCtlAckMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -61449,7 +61904,9 @@ type PatternFlowTcpCtlAck struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowTcpCtlAckMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowTcpCtlAckCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -61531,22 +61988,23 @@ func (x *PatternFlowTcpCtlAck) GetDecrement() *PatternFlowTcpCtlAckCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowTcpCtlPshMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -61689,7 +62147,9 @@ type PatternFlowTcpCtlPsh struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowTcpCtlPshMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowTcpCtlPshCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -61771,22 +62231,23 @@ func (x *PatternFlowTcpCtlPsh) GetDecrement() *PatternFlowTcpCtlPshCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowTcpCtlRstMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -61929,7 +62390,9 @@ type PatternFlowTcpCtlRst struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowTcpCtlRstMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowTcpCtlRstCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -62011,22 +62474,23 @@ func (x *PatternFlowTcpCtlRst) GetDecrement() *PatternFlowTcpCtlRstCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowTcpCtlSynMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -62169,7 +62633,9 @@ type PatternFlowTcpCtlSyn struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowTcpCtlSynMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowTcpCtlSynCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -62251,22 +62717,23 @@ func (x *PatternFlowTcpCtlSyn) GetDecrement() *PatternFlowTcpCtlSynCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowTcpCtlFinMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -62409,7 +62876,9 @@ type PatternFlowTcpCtlFin struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowTcpCtlFinMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowTcpCtlFinCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -62491,22 +62960,23 @@ func (x *PatternFlowTcpCtlFin) GetDecrement() *PatternFlowTcpCtlFinCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowTcpWindowMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -62649,7 +63119,9 @@ type PatternFlowTcpWindow struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowTcpWindowMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowTcpWindowCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -62731,22 +63203,23 @@ func (x *PatternFlowTcpWindow) GetDecrement() *PatternFlowTcpWindowCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowUdpSrcPortMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -62889,7 +63362,9 @@ type PatternFlowUdpSrcPort struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowUdpSrcPortMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowUdpSrcPortCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -62971,22 +63446,23 @@ func (x *PatternFlowUdpSrcPort) GetDecrement() *PatternFlowUdpSrcPortCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowUdpDstPortMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -63129,7 +63605,9 @@ type PatternFlowUdpDstPort struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowUdpDstPortMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowUdpDstPortCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -63211,22 +63689,23 @@ func (x *PatternFlowUdpDstPort) GetDecrement() *PatternFlowUdpDstPortCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowUdpLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -63369,7 +63848,9 @@ type PatternFlowUdpLength struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowUdpLengthMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowUdpLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -63520,22 +64001,23 @@ func (x *PatternFlowUdpChecksum) GetCustom() int32 { return 0 } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGreChecksumPresentMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -63678,7 +64160,9 @@ type PatternFlowGreChecksumPresent struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGreChecksumPresentMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGreChecksumPresentCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -63760,22 +64244,23 @@ func (x *PatternFlowGreChecksumPresent) GetDecrement() *PatternFlowGreChecksumPr return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGreReserved0MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 12 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -63918,7 +64403,9 @@ type PatternFlowGreReserved0 struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGreReserved0MetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGreReserved0Counter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -64000,22 +64487,23 @@ func (x *PatternFlowGreReserved0) GetDecrement() *PatternFlowGreReserved0Counter return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGreVersionMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 3 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -64158,7 +64646,9 @@ type PatternFlowGreVersion struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGreVersionMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGreVersionCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -64240,22 +64730,23 @@ func (x *PatternFlowGreVersion) GetDecrement() *PatternFlowGreVersionCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGreProtocolMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -64398,7 +64889,9 @@ type PatternFlowGreProtocol struct { // Description missing in models // default = [2048] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGreProtocolMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGreProtocolCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -64550,22 +65043,23 @@ func (x *PatternFlowGreChecksum) GetCustom() int32 { return 0 } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGreReserved1MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -64708,7 +65202,9 @@ type PatternFlowGreReserved1 struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGreReserved1MetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGreReserved1Counter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -64790,22 +65286,23 @@ func (x *PatternFlowGreReserved1) GetDecrement() *PatternFlowGreReserved1Counter return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpv1VersionMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 3 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -64948,7 +65445,9 @@ type PatternFlowGtpv1Version struct { // Description missing in models // default = [1] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpv1VersionMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpv1VersionCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -65030,22 +65529,23 @@ func (x *PatternFlowGtpv1Version) GetDecrement() *PatternFlowGtpv1VersionCounter return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpv1ProtocolTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -65188,7 +65688,9 @@ type PatternFlowGtpv1ProtocolType struct { // Description missing in models // default = [1] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpv1ProtocolTypeMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpv1ProtocolTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -65270,22 +65772,23 @@ func (x *PatternFlowGtpv1ProtocolType) GetDecrement() *PatternFlowGtpv1ProtocolT return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpv1ReservedMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -65428,7 +65931,9 @@ type PatternFlowGtpv1Reserved struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpv1ReservedMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpv1ReservedCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -65510,22 +66015,23 @@ func (x *PatternFlowGtpv1Reserved) GetDecrement() *PatternFlowGtpv1ReservedCount return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpv1EFlagMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -65668,7 +66174,9 @@ type PatternFlowGtpv1EFlag struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpv1EFlagMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpv1EFlagCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -65750,22 +66258,23 @@ func (x *PatternFlowGtpv1EFlag) GetDecrement() *PatternFlowGtpv1EFlagCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpv1SFlagMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -65908,7 +66417,9 @@ type PatternFlowGtpv1SFlag struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpv1SFlagMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpv1SFlagCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -65990,22 +66501,23 @@ func (x *PatternFlowGtpv1SFlag) GetDecrement() *PatternFlowGtpv1SFlagCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpv1PnFlagMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -66148,7 +66660,9 @@ type PatternFlowGtpv1PnFlag struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpv1PnFlagMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpv1PnFlagCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -66230,22 +66744,23 @@ func (x *PatternFlowGtpv1PnFlag) GetDecrement() *PatternFlowGtpv1PnFlagCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpv1MessageTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -66389,7 +66904,9 @@ type PatternFlowGtpv1MessageType struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpv1MessageTypeMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpv1MessageTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -66471,22 +66988,23 @@ func (x *PatternFlowGtpv1MessageType) GetDecrement() *PatternFlowGtpv1MessageTyp return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpv1MessageLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -66630,7 +67148,9 @@ type PatternFlowGtpv1MessageLength struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpv1MessageLengthMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpv1MessageLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -66712,22 +67232,23 @@ func (x *PatternFlowGtpv1MessageLength) GetDecrement() *PatternFlowGtpv1MessageL return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpv1TeidMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 32 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -66870,7 +67391,9 @@ type PatternFlowGtpv1Teid struct { // Description missing in models // default = [0] Values []int64 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpv1TeidMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpv1TeidCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -66952,22 +67475,23 @@ func (x *PatternFlowGtpv1Teid) GetDecrement() *PatternFlowGtpv1TeidCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpv1SquenceNumberMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -67111,7 +67635,9 @@ type PatternFlowGtpv1SquenceNumber struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpv1SquenceNumberMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpv1SquenceNumberCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -67193,22 +67719,23 @@ func (x *PatternFlowGtpv1SquenceNumber) GetDecrement() *PatternFlowGtpv1SquenceN return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpv1NPduNumberMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -67352,7 +67879,9 @@ type PatternFlowGtpv1NPduNumber struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpv1NPduNumberMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpv1NPduNumberCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -67434,22 +67963,23 @@ func (x *PatternFlowGtpv1NPduNumber) GetDecrement() *PatternFlowGtpv1NPduNumberC return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpv1NextExtensionHeaderTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -67593,7 +68123,9 @@ type PatternFlowGtpv1NextExtensionHeaderType struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpv1NextExtensionHeaderTypeMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpv1NextExtensionHeaderTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -67675,22 +68207,23 @@ func (x *PatternFlowGtpv1NextExtensionHeaderType) GetDecrement() *PatternFlowGtp return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpExtensionExtensionLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -67835,7 +68368,9 @@ type PatternFlowGtpExtensionExtensionLength struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpExtensionExtensionLengthMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpExtensionExtensionLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -67917,22 +68452,23 @@ func (x *PatternFlowGtpExtensionExtensionLength) GetDecrement() *PatternFlowGtpE return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpExtensionContentsMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 48 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -68075,7 +68611,9 @@ type PatternFlowGtpExtensionContents struct { // Description missing in models // default = [0] Values []int64 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpExtensionContentsMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpExtensionContentsCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -68157,22 +68695,23 @@ func (x *PatternFlowGtpExtensionContents) GetDecrement() *PatternFlowGtpExtensio return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpExtensionNextExtensionHeaderMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -68316,7 +68855,9 @@ type PatternFlowGtpExtensionNextExtensionHeader struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpExtensionNextExtensionHeaderMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpExtensionNextExtensionHeaderCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -68398,22 +68939,23 @@ func (x *PatternFlowGtpExtensionNextExtensionHeader) GetDecrement() *PatternFlow return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpv2VersionMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 3 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -68556,7 +69098,9 @@ type PatternFlowGtpv2Version struct { // Description missing in models // default = [2] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpv2VersionMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpv2VersionCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -68638,22 +69182,23 @@ func (x *PatternFlowGtpv2Version) GetDecrement() *PatternFlowGtpv2VersionCounter return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpv2PiggybackingFlagMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -68797,7 +69342,9 @@ type PatternFlowGtpv2PiggybackingFlag struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpv2PiggybackingFlagMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpv2PiggybackingFlagCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -68879,22 +69426,23 @@ func (x *PatternFlowGtpv2PiggybackingFlag) GetDecrement() *PatternFlowGtpv2Piggy return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpv2TeidFlagMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -69039,7 +69587,9 @@ type PatternFlowGtpv2TeidFlag struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpv2TeidFlagMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpv2TeidFlagCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -69121,22 +69671,23 @@ func (x *PatternFlowGtpv2TeidFlag) GetDecrement() *PatternFlowGtpv2TeidFlagCount return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpv2Spare1MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 3 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -69279,7 +69830,9 @@ type PatternFlowGtpv2Spare1 struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpv2Spare1MetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpv2Spare1Counter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -69361,22 +69914,23 @@ func (x *PatternFlowGtpv2Spare1) GetDecrement() *PatternFlowGtpv2Spare1Counter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpv2MessageTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -69520,7 +70074,9 @@ type PatternFlowGtpv2MessageType struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpv2MessageTypeMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpv2MessageTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -69602,22 +70158,23 @@ func (x *PatternFlowGtpv2MessageType) GetDecrement() *PatternFlowGtpv2MessageTyp return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpv2MessageLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -69761,7 +70318,9 @@ type PatternFlowGtpv2MessageLength struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpv2MessageLengthMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpv2MessageLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -69843,22 +70402,23 @@ func (x *PatternFlowGtpv2MessageLength) GetDecrement() *PatternFlowGtpv2MessageL return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpv2TeidMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 32 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -70002,7 +70562,9 @@ type PatternFlowGtpv2Teid struct { // Description missing in models // default = [0] Values []int64 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpv2TeidMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpv2TeidCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -70084,22 +70646,23 @@ func (x *PatternFlowGtpv2Teid) GetDecrement() *PatternFlowGtpv2TeidCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpv2SequenceNumberMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 24 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -70242,7 +70805,9 @@ type PatternFlowGtpv2SequenceNumber struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpv2SequenceNumberMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpv2SequenceNumberCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -70324,22 +70889,23 @@ func (x *PatternFlowGtpv2SequenceNumber) GetDecrement() *PatternFlowGtpv2Sequenc return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowGtpv2Spare2MetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -70482,7 +71048,9 @@ type PatternFlowGtpv2Spare2 struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowGtpv2Spare2MetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowGtpv2Spare2Counter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -70564,22 +71132,23 @@ func (x *PatternFlowGtpv2Spare2) GetDecrement() *PatternFlowGtpv2Spare2Counter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowArpHardwareTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -70722,7 +71291,9 @@ type PatternFlowArpHardwareType struct { // Description missing in models // default = [1] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowArpHardwareTypeMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowArpHardwareTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -70804,22 +71375,23 @@ func (x *PatternFlowArpHardwareType) GetDecrement() *PatternFlowArpHardwareTypeC return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowArpProtocolTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -70962,7 +71534,9 @@ type PatternFlowArpProtocolType struct { // Description missing in models // default = [2048] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowArpProtocolTypeMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowArpProtocolTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -71044,22 +71618,23 @@ func (x *PatternFlowArpProtocolType) GetDecrement() *PatternFlowArpProtocolTypeC return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowArpHardwareLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -71202,7 +71777,9 @@ type PatternFlowArpHardwareLength struct { // Description missing in models // default = [6] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowArpHardwareLengthMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowArpHardwareLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -71284,22 +71861,23 @@ func (x *PatternFlowArpHardwareLength) GetDecrement() *PatternFlowArpHardwareLen return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowArpProtocolLengthMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -71442,7 +72020,9 @@ type PatternFlowArpProtocolLength struct { // Description missing in models // default = [4] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowArpProtocolLengthMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowArpProtocolLengthCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -71524,22 +72104,23 @@ func (x *PatternFlowArpProtocolLength) GetDecrement() *PatternFlowArpProtocolLen return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowArpOperationMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -71682,7 +72263,9 @@ type PatternFlowArpOperation struct { // Description missing in models // default = [1] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowArpOperationMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowArpOperationCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -71764,22 +72347,23 @@ func (x *PatternFlowArpOperation) GetDecrement() *PatternFlowArpOperationCounter return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowArpSenderHardwareAddrMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 48 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -71922,7 +72506,9 @@ type PatternFlowArpSenderHardwareAddr struct { // Description missing in models // default = ['00:00:00:00:00:00'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowArpSenderHardwareAddrMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowArpSenderHardwareAddrCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -72004,22 +72590,23 @@ func (x *PatternFlowArpSenderHardwareAddr) GetDecrement() *PatternFlowArpSenderH return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowArpSenderProtocolAddrMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 32 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -72162,7 +72749,9 @@ type PatternFlowArpSenderProtocolAddr struct { // Description missing in models // default = ['0.0.0.0'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowArpSenderProtocolAddrMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowArpSenderProtocolAddrCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -72244,22 +72833,23 @@ func (x *PatternFlowArpSenderProtocolAddr) GetDecrement() *PatternFlowArpSenderP return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowArpTargetHardwareAddrMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 48 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -72402,7 +72992,9 @@ type PatternFlowArpTargetHardwareAddr struct { // Description missing in models // default = ['00:00:00:00:00:00'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowArpTargetHardwareAddrMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowArpTargetHardwareAddrCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -72484,22 +73076,23 @@ func (x *PatternFlowArpTargetHardwareAddr) GetDecrement() *PatternFlowArpTargetH return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowArpTargetProtocolAddrMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 32 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -72642,7 +73235,9 @@ type PatternFlowArpTargetProtocolAddr struct { // Description missing in models // default = ['0.0.0.0'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowArpTargetProtocolAddrMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowArpTargetProtocolAddrCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -72724,22 +73319,23 @@ func (x *PatternFlowArpTargetProtocolAddr) GetDecrement() *PatternFlowArpTargetP return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIcmpEchoTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -72882,7 +73478,9 @@ type PatternFlowIcmpEchoType struct { // Description missing in models // default = [8] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIcmpEchoTypeMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIcmpEchoTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -72964,22 +73562,23 @@ func (x *PatternFlowIcmpEchoType) GetDecrement() *PatternFlowIcmpEchoTypeCounter return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIcmpEchoCodeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -73122,7 +73721,9 @@ type PatternFlowIcmpEchoCode struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIcmpEchoCodeMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIcmpEchoCodeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -73273,22 +73874,23 @@ func (x *PatternFlowIcmpEchoChecksum) GetCustom() int32 { return 0 } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIcmpEchoIdentifierMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -73431,7 +74033,9 @@ type PatternFlowIcmpEchoIdentifier struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIcmpEchoIdentifierMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIcmpEchoIdentifierCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -73513,22 +74117,23 @@ func (x *PatternFlowIcmpEchoIdentifier) GetDecrement() *PatternFlowIcmpEchoIdent return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIcmpEchoSequenceNumberMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -73671,7 +74276,9 @@ type PatternFlowIcmpEchoSequenceNumber struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIcmpEchoSequenceNumberMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIcmpEchoSequenceNumberCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -73822,22 +74429,23 @@ func (x *PatternFlowIcmpCommonChecksum) GetCustom() int32 { return 0 } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIcmpNextFieldsIdentifierMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -73980,7 +74588,9 @@ type PatternFlowIcmpNextFieldsIdentifier struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIcmpNextFieldsIdentifierMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIcmpNextFieldsIdentifierCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -74062,22 +74672,23 @@ func (x *PatternFlowIcmpNextFieldsIdentifier) GetDecrement() *PatternFlowIcmpNex return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIcmpNextFieldsSequenceNumberMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -74220,7 +74831,9 @@ type PatternFlowIcmpNextFieldsSequenceNumber struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIcmpNextFieldsSequenceNumberMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIcmpNextFieldsSequenceNumberCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -74302,22 +74915,23 @@ func (x *PatternFlowIcmpNextFieldsSequenceNumber) GetDecrement() *PatternFlowIcm return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIcmpv6EchoTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -74460,7 +75074,9 @@ type PatternFlowIcmpv6EchoType struct { // Description missing in models // default = [128] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIcmpv6EchoTypeMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIcmpv6EchoTypeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -74542,22 +75158,23 @@ func (x *PatternFlowIcmpv6EchoType) GetDecrement() *PatternFlowIcmpv6EchoTypeCou return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIcmpv6EchoCodeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -74700,7 +75317,9 @@ type PatternFlowIcmpv6EchoCode struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIcmpv6EchoCodeMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIcmpv6EchoCodeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -74782,22 +75401,23 @@ func (x *PatternFlowIcmpv6EchoCode) GetDecrement() *PatternFlowIcmpv6EchoCodeCou return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIcmpv6EchoIdentifierMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -74940,7 +75560,9 @@ type PatternFlowIcmpv6EchoIdentifier struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIcmpv6EchoIdentifierMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIcmpv6EchoIdentifierCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -75022,22 +75644,23 @@ func (x *PatternFlowIcmpv6EchoIdentifier) GetDecrement() *PatternFlowIcmpv6EchoI return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIcmpv6EchoSequenceNumberMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -75180,7 +75803,9 @@ type PatternFlowIcmpv6EchoSequenceNumber struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIcmpv6EchoSequenceNumberMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIcmpv6EchoSequenceNumberCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -75400,22 +76025,23 @@ func (x *PatternFlowIcmpv6CommonChecksum) GetCustom() int32 { return 0 } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowPppAddressMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -75558,7 +76184,9 @@ type PatternFlowPppAddress struct { // Description missing in models // default = [255] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowPppAddressMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowPppAddressCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -75640,22 +76268,23 @@ func (x *PatternFlowPppAddress) GetDecrement() *PatternFlowPppAddressCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowPppControlMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -75798,7 +76427,9 @@ type PatternFlowPppControl struct { // Description missing in models // default = [3] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowPppControlMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowPppControlCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -75880,22 +76511,23 @@ func (x *PatternFlowPppControl) GetDecrement() *PatternFlowPppControlCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowPppProtocolTypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -76043,7 +76675,9 @@ type PatternFlowPppProtocolType struct { // the default value must be used. // default = 33 Auto *int32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowPppProtocolTypeMetricTag `protobuf:"bytes,6,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowPppProtocolTypeCounter `protobuf:"bytes,7,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -76132,22 +76766,23 @@ func (x *PatternFlowPppProtocolType) GetDecrement() *PatternFlowPppProtocolTypeC return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIgmpv1VersionMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 4 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -76290,7 +76925,9 @@ type PatternFlowIgmpv1Version struct { // Description missing in models // default = [1] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIgmpv1VersionMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIgmpv1VersionCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -76372,22 +77009,23 @@ func (x *PatternFlowIgmpv1Version) GetDecrement() *PatternFlowIgmpv1VersionCount return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIgmpv1TypeMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 4 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -76530,7 +77168,9 @@ type PatternFlowIgmpv1Type struct { // Description missing in models // default = [1] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIgmpv1TypeMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIgmpv1TypeCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -76612,22 +77252,23 @@ func (x *PatternFlowIgmpv1Type) GetDecrement() *PatternFlowIgmpv1TypeCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIgmpv1UnusedMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -76770,7 +77411,9 @@ type PatternFlowIgmpv1Unused struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIgmpv1UnusedMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIgmpv1UnusedCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -76921,22 +77564,23 @@ func (x *PatternFlowIgmpv1Checksum) GetCustom() int32 { return 0 } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowIgmpv1GroupAddressMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 32 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -77079,7 +77723,9 @@ type PatternFlowIgmpv1GroupAddress struct { // Description missing in models // default = ['0.0.0.0'] Values []string `protobuf:"bytes,3,rep,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowIgmpv1GroupAddressMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowIgmpv1GroupAddressCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -77161,22 +77807,23 @@ func (x *PatternFlowIgmpv1GroupAddress) GetDecrement() *PatternFlowIgmpv1GroupAd return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowMplsLabelMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 20 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -77324,7 +77971,9 @@ type PatternFlowMplsLabel struct { // the default value must be used. // default = 16 Auto *int32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowMplsLabelMetricTag `protobuf:"bytes,6,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowMplsLabelCounter `protobuf:"bytes,7,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -77413,22 +78062,23 @@ func (x *PatternFlowMplsLabel) GetDecrement() *PatternFlowMplsLabelCounter { return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowMplsTrafficClassMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 3 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -77571,7 +78221,9 @@ type PatternFlowMplsTrafficClass struct { // Description missing in models // default = [0] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowMplsTrafficClassMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowMplsTrafficClassCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -77653,22 +78305,23 @@ func (x *PatternFlowMplsTrafficClass) GetDecrement() *PatternFlowMplsTrafficClas return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowMplsBottomOfStackMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -77816,7 +78469,9 @@ type PatternFlowMplsBottomOfStack struct { // the default value must be used. // default = 1 Auto *int32 `protobuf:"varint,4,opt,name=auto,proto3,oneof" json:"auto,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowMplsBottomOfStackMetricTag `protobuf:"bytes,6,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowMplsBottomOfStackCounter `protobuf:"bytes,7,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -77905,22 +78560,23 @@ func (x *PatternFlowMplsBottomOfStack) GetDecrement() *PatternFlowMplsBottomOfSt return nil } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. type PatternFlowMplsTimeToLiveMetricTag struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 Offset *int32 `protobuf:"varint,2,opt,name=offset,proto3,oneof" json:"offset,omitempty"` - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 Length *int32 `protobuf:"varint,3,opt,name=length,proto3,oneof" json:"length,omitempty"` } @@ -78063,7 +78719,9 @@ type PatternFlowMplsTimeToLive struct { // Description missing in models // default = [64] Values []int32 `protobuf:"varint,3,rep,packed,name=values,proto3" json:"values,omitempty"` - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. MetricTags []*PatternFlowMplsTimeToLiveMetricTag `protobuf:"bytes,5,rep,name=metric_tags,json=metricTags,proto3" json:"metric_tags,omitempty"` // Description missing in models Increment *PatternFlowMplsTimeToLiveCounter `protobuf:"bytes,6,opt,name=increment,proto3,oneof" json:"increment,omitempty"` @@ -94935,3952 +95593,4102 @@ var file_otg_proto_rawDesc = []byte{ 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x68, 0x6f, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb5, 0x03, 0x0a, 0x04, 0x46, 0x6c, 0x6f, + 0x68, 0x6f, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xfd, 0x02, 0x0a, 0x04, 0x46, 0x6c, 0x6f, 0x77, 0x12, 0x22, 0x0a, 0x05, 0x74, 0x78, 0x5f, 0x72, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x78, 0x52, 0x78, 0x52, 0x04, 0x74, 0x78, 0x52, 0x78, 0x12, 0x27, 0x0a, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x36, - 0x0a, 0x0e, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0d, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x34, 0x0a, 0x0d, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, - 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, - 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x04, - 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x48, 0x00, 0x52, 0x04, 0x73, 0x69, 0x7a, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, - 0x65, 0x48, 0x01, 0x52, 0x04, 0x72, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, - 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x48, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x48, 0x03, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x64, 0x75, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x22, 0xf0, 0x01, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x78, 0x52, 0x78, 0x12, 0x36, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x78, 0x52, 0x78, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x6f, - 0x72, 0x74, 0x48, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, - 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x37, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2d, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, - 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x22, 0x4d, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x6f, 0x72, 0x74, 0x12, - 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x74, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x78, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x72, 0x78, 0x4e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x72, 0x78, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x72, 0x12, 0x32, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, - 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x6f, - 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x74, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x12, 0x19, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x07, 0x72, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x04, 0x4d, - 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, - 0x6d, 0x65, 0x73, 0x68, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x6f, - 0x5f, 0x6f, 0x6e, 0x65, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, - 0xc0, 0x0a, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x38, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, - 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x63, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x48, 0x02, 0x52, 0x08, 0x65, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x76, 0x6c, - 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x48, 0x03, 0x52, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x88, - 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x48, 0x04, 0x52, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, - 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x05, 0x52, 0x04, 0x69, 0x70, - 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x36, 0x48, 0x06, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, - 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x48, 0x07, 0x52, 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x41, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, - 0x73, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x48, 0x08, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, 0x73, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x74, 0x63, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x48, - 0x09, 0x52, 0x03, 0x74, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x75, 0x64, 0x70, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x55, 0x64, 0x70, 0x48, 0x0a, 0x52, 0x03, 0x75, 0x64, 0x70, 0x88, 0x01, 0x01, 0x12, 0x23, - 0x0a, 0x03, 0x67, 0x72, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x48, 0x0b, 0x52, 0x03, 0x67, 0x72, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x31, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x48, 0x0c, 0x52, 0x05, 0x67, 0x74, 0x70, 0x76, 0x31, 0x88, 0x01, 0x01, 0x12, 0x29, - 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x48, 0x0d, 0x52, - 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x61, 0x72, 0x70, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x72, 0x70, 0x48, 0x0e, 0x52, 0x03, 0x61, 0x72, 0x70, 0x88, 0x01, 0x01, 0x12, 0x26, - 0x0a, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x48, 0x0f, 0x52, 0x04, 0x69, - 0x63, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x48, 0x10, 0x52, 0x06, 0x69, 0x63, 0x6d, 0x70, 0x76, - 0x36, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x70, 0x70, 0x70, 0x18, 0x12, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x48, - 0x11, 0x52, 0x03, 0x70, 0x70, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x69, 0x67, 0x6d, - 0x70, 0x76, 0x31, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x48, 0x12, 0x52, 0x06, 0x69, 0x67, - 0x6d, 0x70, 0x76, 0x31, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x18, - 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x4d, 0x70, 0x6c, 0x73, 0x48, 0x13, 0x52, 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x1a, - 0xf5, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xea, 0x01, 0x0a, 0x04, 0x45, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x06, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x34, + 0x0a, 0x0d, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x18, + 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x52, 0x0c, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x12, 0x26, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, + 0x65, 0x48, 0x00, 0x52, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, + 0x72, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x48, 0x01, 0x52, 0x04, 0x72, 0x61, 0x74, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x02, 0x52, 0x08, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x03, 0x52, 0x07, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xf0, 0x01, 0x0a, 0x08, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x78, 0x52, 0x78, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x78, 0x52, 0x78, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, + 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x6f, 0x72, 0x74, 0x48, 0x01, 0x52, 0x04, 0x70, 0x6f, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x1a, 0x37, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2d, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, + 0x12, 0x0a, 0x0a, 0x06, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x22, 0x4d, 0x0a, 0x08, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x78, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1c, 0x0a, 0x07, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x06, 0x72, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x72, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x0a, 0x46, + 0x6c, 0x6f, 0x77, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x32, 0x0a, 0x04, 0x6d, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x08, 0x74, 0x78, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x07, 0x74, 0x78, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x78, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x72, 0x78, 0x4e, 0x61, + 0x6d, 0x65, 0x73, 0x1a, 0x39, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x01, - 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x10, 0x02, 0x12, 0x08, - 0x0a, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, - 0x6e, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x05, 0x12, 0x08, 0x0a, - 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, - 0x75, 0x73, 0x65, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, 0x08, 0x12, 0x07, 0x0a, 0x03, 0x74, 0x63, 0x70, 0x10, - 0x09, 0x12, 0x07, 0x0a, 0x03, 0x75, 0x64, 0x70, 0x10, 0x0a, 0x12, 0x07, 0x0a, 0x03, 0x67, 0x72, - 0x65, 0x10, 0x0b, 0x12, 0x09, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x31, 0x10, 0x0c, 0x12, 0x09, - 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x10, 0x0d, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x72, 0x70, - 0x10, 0x0e, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x10, 0x0f, 0x12, 0x0a, 0x0a, 0x06, - 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x10, 0x10, 0x12, 0x07, 0x0a, 0x03, 0x70, 0x70, 0x70, 0x10, - 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x10, 0x12, 0x12, 0x08, 0x0a, - 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x10, 0x13, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x76, - 0x6c, 0x61, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, 0x73, 0x65, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x74, 0x63, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x64, 0x70, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x67, 0x72, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x67, 0x74, 0x70, 0x76, 0x31, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x67, 0x74, 0x70, 0x76, 0x32, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, - 0x72, 0x70, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x70, 0x70, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x70, - 0x6c, 0x73, 0x22, 0x5d, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, - 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x22, 0x79, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0xae, 0x02, 0x0a, - 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x32, 0x0a, - 0x03, 0x64, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x48, 0x00, 0x52, 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x32, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x6d, 0x65, 0x73, 0x68, 0x10, 0x01, 0x12, 0x0e, + 0x0a, 0x0a, 0x6f, 0x6e, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6f, 0x6e, 0x65, 0x10, 0x02, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xc0, 0x0a, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x2c, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x48, 0x01, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x32, + 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x48, 0x02, 0x52, 0x08, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x48, + 0x03, 0x52, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x76, 0x78, + 0x6c, 0x61, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x48, 0x04, 0x52, 0x05, 0x76, 0x78, 0x6c, + 0x61, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x48, 0x05, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, + 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x06, 0x52, 0x04, 0x69, 0x70, + 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x48, 0x07, 0x52, 0x08, 0x70, 0x66, + 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0d, 0x65, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, 0x73, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x48, 0x08, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, + 0x74, 0x63, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x48, 0x09, 0x52, 0x03, 0x74, 0x63, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x23, 0x0a, 0x03, 0x75, 0x64, 0x70, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x48, 0x0a, 0x52, 0x03, + 0x75, 0x64, 0x70, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, 0x67, 0x72, 0x65, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, + 0x65, 0x48, 0x0b, 0x52, 0x03, 0x67, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x67, + 0x74, 0x70, 0x76, 0x31, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x48, 0x0c, 0x52, 0x05, 0x67, 0x74, + 0x70, 0x76, 0x31, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x48, 0x0d, 0x52, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x88, 0x01, + 0x01, 0x12, 0x23, 0x0a, 0x03, 0x61, 0x72, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x0e, 0x52, 0x03, + 0x61, 0x72, 0x70, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x48, 0x0f, 0x52, 0x04, 0x69, 0x63, 0x6d, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2c, + 0x0a, 0x06, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x48, + 0x10, 0x52, 0x06, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x03, + 0x70, 0x70, 0x70, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x48, 0x11, 0x52, 0x03, 0x70, 0x70, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x2c, 0x0a, 0x06, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, + 0x76, 0x31, 0x48, 0x12, 0x52, 0x06, 0x69, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x88, 0x01, 0x01, 0x12, + 0x26, 0x0a, 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x48, 0x13, 0x52, 0x04, + 0x6d, 0x70, 0x6c, 0x73, 0x88, 0x01, 0x01, 0x1a, 0xf5, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0xea, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, + 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x03, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x69, + 0x70, 0x76, 0x34, 0x10, 0x05, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x06, 0x12, + 0x0c, 0x0a, 0x08, 0x70, 0x66, 0x63, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, 0x07, 0x12, 0x11, 0x0a, + 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, 0x08, + 0x12, 0x07, 0x0a, 0x03, 0x74, 0x63, 0x70, 0x10, 0x09, 0x12, 0x07, 0x0a, 0x03, 0x75, 0x64, 0x70, + 0x10, 0x0a, 0x12, 0x07, 0x0a, 0x03, 0x67, 0x72, 0x65, 0x10, 0x0b, 0x12, 0x09, 0x0a, 0x05, 0x67, + 0x74, 0x70, 0x76, 0x31, 0x10, 0x0c, 0x12, 0x09, 0x0a, 0x05, 0x67, 0x74, 0x70, 0x76, 0x32, 0x10, + 0x0d, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x72, 0x70, 0x10, 0x0e, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x63, + 0x6d, 0x70, 0x10, 0x0f, 0x12, 0x0a, 0x0a, 0x06, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x10, 0x10, + 0x12, 0x07, 0x0a, 0x03, 0x70, 0x70, 0x70, 0x10, 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x69, 0x67, 0x6d, + 0x70, 0x76, 0x31, 0x10, 0x12, 0x12, 0x08, 0x0a, 0x04, 0x6d, 0x70, 0x6c, 0x73, 0x10, 0x13, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x78, 0x6c, 0x61, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x66, 0x63, 0x70, + 0x61, 0x75, 0x73, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x70, 0x61, 0x75, 0x73, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x63, 0x70, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x75, 0x64, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x72, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x67, 0x74, 0x70, 0x76, 0x31, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x67, 0x74, 0x70, + 0x76, 0x32, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, 0x72, 0x70, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, + 0x63, 0x6d, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x69, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x70, 0x70, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x69, 0x67, 0x6d, 0x70, 0x76, + 0x31, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x70, 0x6c, 0x73, 0x22, 0x5d, 0x0a, 0x0a, 0x46, 0x6c, + 0x6f, 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x12, 0x39, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x22, 0x79, 0x0a, 0x13, 0x46, 0x6c, 0x6f, + 0x77, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0xae, 0x02, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x12, 0x32, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x48, + 0x00, 0x52, 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x03, 0x73, 0x72, 0x63, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, + 0x53, 0x72, 0x63, 0x48, 0x01, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, + 0x0a, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x09, 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x75, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x48, 0x03, 0x52, 0x08, 0x70, 0x66, 0x63, + 0x51, 0x75, 0x65, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x74, 0x68, + 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x66, 0x63, 0x5f, + 0x71, 0x75, 0x65, 0x75, 0x65, 0x22, 0xfe, 0x01, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, + 0x61, 0x6e, 0x12, 0x3d, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, + 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x63, 0x66, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x48, 0x01, 0x52, 0x03, 0x73, - 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x09, - 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x09, - 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, - 0x65, 0x48, 0x03, 0x52, 0x08, 0x70, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x66, 0x63, 0x5f, 0x71, 0x75, 0x65, 0x75, 0x65, 0x22, 0xfe, 0x01, - 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x12, 0x3d, 0x0a, 0x08, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, + 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x48, 0x01, 0x52, 0x03, 0x63, 0x66, 0x69, 0x88, 0x01, + 0x01, 0x12, 0x2b, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x48, 0x02, 0x52, 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, + 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, - 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x63, 0x66, 0x69, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x48, - 0x01, 0x52, 0x03, 0x63, 0x66, 0x69, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x48, 0x02, 0x52, - 0x02, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x04, 0x74, 0x70, 0x69, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x48, 0x03, - 0x52, 0x04, 0x74, 0x70, 0x69, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x63, 0x66, 0x69, 0x42, 0x05, - 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x22, 0xa7, - 0x02, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x12, 0x35, 0x0a, 0x05, - 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, + 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x48, 0x03, 0x52, 0x04, 0x74, 0x70, 0x69, 0x64, 0x88, 0x01, + 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x63, 0x66, 0x69, 0x42, 0x05, 0x0a, 0x03, 0x5f, 0x69, 0x64, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x74, 0x70, 0x69, 0x64, 0x22, 0xa7, 0x02, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x78, 0x6c, 0x61, 0x6e, 0x12, 0x35, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x48, + 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x48, 0x01, + 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x88, 0x01, 0x01, 0x12, 0x2f, + 0x0a, 0x03, 0x76, 0x6e, 0x69, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, - 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x30, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x03, 0x76, 0x6e, 0x69, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x48, 0x02, 0x52, - 0x03, 0x76, 0x6e, 0x69, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x48, 0x03, 0x52, 0x09, 0x72, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, - 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x30, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x76, 0x6e, 0x69, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x22, 0x9f, 0x09, 0x0a, 0x08, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x12, 0x3a, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x01, 0x52, 0x0c, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, - 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x48, 0x02, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, - 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x03, 0x52, 0x0b, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x4f, - 0x0a, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x04, 0x52, 0x0e, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, - 0x3d, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x48, - 0x05, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4a, - 0x0a, 0x0d, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, - 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x06, 0x52, 0x0c, 0x64, 0x6f, 0x6e, 0x74, 0x46, - 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0e, 0x6d, 0x6f, - 0x72, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x07, 0x52, 0x0d, 0x6d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0f, 0x66, 0x72, 0x61, - 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x48, 0x08, 0x52, 0x0e, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0c, 0x74, - 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, - 0x65, 0x48, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x48, 0x0a, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, - 0x01, 0x12, 0x50, 0x0a, 0x0f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x65, 0x63, - 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x0b, - 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, - 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x48, 0x0c, 0x52, 0x03, 0x73, 0x72, 0x63, - 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x48, 0x0d, 0x52, 0x03, 0x64, 0x73, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0f, - 0x0a, 0x0d, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, - 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, - 0x72, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x22, 0xc2, 0x02, 0x0a, 0x10, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, - 0x3e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x36, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x48, 0x01, 0x52, - 0x03, 0x72, 0x61, 0x77, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x03, 0x74, 0x6f, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x48, 0x02, 0x52, 0x03, 0x74, 0x6f, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x2a, 0x0a, 0x04, 0x64, 0x73, 0x63, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, - 0x70, 0x48, 0x03, 0x52, 0x04, 0x64, 0x73, 0x63, 0x70, 0x88, 0x01, 0x01, 0x1a, 0x3d, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x07, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x74, 0x6f, 0x73, 0x10, - 0x02, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x73, 0x63, 0x70, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x72, 0x61, 0x77, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x74, 0x6f, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x22, - 0x86, 0x01, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, - 0x12, 0x32, 0x0a, 0x03, 0x70, 0x68, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x48, 0x02, 0x52, 0x03, 0x76, 0x6e, 0x69, 0x88, 0x01, 0x01, 0x12, + 0x41, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x31, 0x48, 0x03, 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x76, + 0x6e, 0x69, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, + 0x22, 0x9f, 0x09, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x12, 0x3a, 0x0a, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x48, 0x01, 0x52, 0x0c, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x48, 0x02, + 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, + 0x0c, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x48, 0x03, 0x52, 0x0b, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x48, 0x04, 0x52, 0x0e, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x48, 0x05, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x64, 0x6f, 0x6e, 0x74, 0x5f, 0x66, + 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x48, 0x00, 0x52, 0x03, 0x70, 0x68, - 0x62, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x03, 0x65, 0x63, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x48, 0x01, - 0x52, 0x03, 0x65, 0x63, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x68, 0x62, - 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x63, 0x6e, 0x22, 0xef, 0x03, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x63, - 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, + 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x48, + 0x06, 0x52, 0x0c, 0x64, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0e, 0x6d, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x07, 0x52, + 0x0d, 0x6d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x50, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x48, 0x08, + 0x52, 0x0e, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, + 0x69, 0x76, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, + 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x48, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, + 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x08, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x48, - 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x37, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x01, 0x52, - 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0a, 0x74, 0x68, 0x72, - 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, - 0x48, 0x02, 0x52, 0x0a, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, - 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x48, 0x03, 0x52, 0x0b, 0x72, 0x65, - 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x08, - 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x48, - 0x04, 0x52, 0x08, 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3a, - 0x0a, 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, + 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x0a, 0x52, 0x08, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0f, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x0b, 0x52, 0x0e, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x73, + 0x72, 0x63, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, + 0x63, 0x48, 0x0c, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x64, + 0x73, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, + 0x74, 0x48, 0x0d, 0x52, 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x68, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x64, 0x6f, 0x6e, 0x74, + 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x6f, + 0x72, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x12, 0x0a, 0x10, + 0x5f, 0x66, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, + 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x12, + 0x0a, 0x10, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, + 0x73, 0x74, 0x22, 0xc2, 0x02, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x3e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x52, 0x61, 0x77, 0x48, 0x01, 0x52, 0x03, 0x72, 0x61, 0x77, 0x88, 0x01, 0x01, 0x12, + 0x27, 0x0a, 0x03, 0x74, 0x6f, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x48, 0x02, + 0x52, 0x03, 0x74, 0x6f, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x04, 0x64, 0x73, 0x63, 0x70, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x48, 0x03, 0x52, 0x04, 0x64, 0x73, 0x63, + 0x70, 0x88, 0x01, 0x01, 0x1a, 0x3d, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x33, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x72, 0x61, 0x77, 0x10, 0x01, + 0x12, 0x07, 0x0a, 0x03, 0x74, 0x6f, 0x73, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x73, 0x63, + 0x70, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x06, + 0x0a, 0x04, 0x5f, 0x72, 0x61, 0x77, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x6f, 0x73, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x64, 0x73, 0x63, 0x70, 0x22, 0x86, 0x01, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x12, 0x32, 0x0a, 0x03, 0x70, 0x68, 0x62, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, + 0x68, 0x62, 0x48, 0x00, 0x52, 0x03, 0x70, 0x68, 0x62, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x03, + 0x65, 0x63, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, + 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x48, 0x01, 0x52, 0x03, 0x65, 0x63, 0x6e, 0x88, 0x01, 0x01, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x68, 0x62, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x63, 0x6e, + 0x22, 0xef, 0x03, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, + 0x12, 0x46, 0x0a, 0x0a, 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, + 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x70, 0x72, 0x65, 0x63, 0x65, + 0x64, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, + 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, + 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x01, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, + 0x01, 0x12, 0x46, 0x0a, 0x0a, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, + 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x48, 0x02, 0x52, 0x0a, 0x74, 0x68, 0x72, 0x6f, + 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x72, 0x65, 0x6c, + 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x48, 0x05, 0x52, - 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, - 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x64, 0x65, - 0x6c, 0x61, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, - 0x75, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x22, 0xf8, 0x04, 0x0a, 0x08, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x12, 0x3a, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, - 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x48, 0x01, 0x52, 0x0c, - 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x41, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x48, 0x02, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, - 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0e, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, - 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x03, 0x52, - 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x04, 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x09, 0x68, 0x6f, 0x70, 0x5f, 0x6c, - 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, - 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x48, 0x05, 0x52, 0x08, 0x68, 0x6f, 0x70, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x48, 0x06, 0x52, - 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x48, 0x07, 0x52, - 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, - 0x61, 0x62, 0x65, 0x6c, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x78, 0x74, - 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x70, 0x5f, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x64, 0x73, 0x74, 0x22, 0xbc, 0x09, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x32, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, - 0x48, 0x00, 0x52, 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x03, 0x73, 0x72, - 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x53, 0x72, 0x63, 0x48, 0x01, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x45, - 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, + 0x74, 0x79, 0x48, 0x03, 0x52, 0x0b, 0x72, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x08, 0x6d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, + 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x48, 0x04, 0x52, 0x08, 0x6d, 0x6f, 0x6e, 0x65, 0x74, + 0x61, 0x72, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, + 0x6e, 0x75, 0x73, 0x65, 0x64, 0x48, 0x05, 0x52, 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x72, + 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6d, + 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x6e, 0x75, 0x73, + 0x65, 0x64, 0x22, 0xf8, 0x04, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x12, + 0x3a, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, + 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x74, + 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x48, 0x01, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, + 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x48, 0x02, 0x52, 0x09, 0x66, 0x6c, + 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x0e, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x03, 0x52, 0x0d, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6e, 0x65, 0x78, + 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, - 0x70, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5e, 0x0a, 0x13, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x04, + 0x52, 0x0a, 0x6e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, + 0x3e, 0x0a, 0x09, 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x48, 0x05, 0x52, 0x08, 0x68, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x2e, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x36, 0x53, 0x72, 0x63, 0x48, 0x06, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, + 0x2e, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x36, 0x44, 0x73, 0x74, 0x48, 0x07, 0x52, 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x42, 0x06, 0x0a, + 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x22, 0xbc, 0x09, + 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x32, + 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x48, 0x00, 0x52, 0x03, 0x64, 0x73, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x32, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x48, 0x01, 0x52, 0x03, + 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, + 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, + 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x48, 0x04, 0x52, 0x11, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, - 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, - 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x30, 0x48, 0x05, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x30, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, - 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x03, 0x52, + 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x5e, 0x0a, 0x13, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x31, 0x48, 0x06, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x31, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, - 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x32, 0x48, 0x07, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, - 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x5f, 0x33, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x48, - 0x08, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x88, 0x01, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x48, 0x04, 0x52, 0x11, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x5f, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x5f, 0x30, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x48, 0x09, 0x52, - 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x88, 0x01, 0x01, 0x12, - 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x48, 0x05, 0x52, + 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x88, 0x01, 0x01, 0x12, + 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x48, 0x0a, 0x52, 0x0b, 0x70, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, - 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, 0x18, 0x0c, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x48, 0x06, 0x52, 0x0b, 0x70, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, + 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x48, 0x0b, 0x52, 0x0b, 0x70, 0x61, 0x75, - 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, - 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x37, 0x18, 0x0d, 0x20, 0x01, + 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x48, 0x07, 0x52, 0x0b, 0x70, 0x61, 0x75, + 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, + 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x48, 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, - 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x74, - 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x16, 0x0a, 0x14, - 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, - 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, - 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x32, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, - 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x33, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x34, 0x42, 0x10, - 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x48, 0x08, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, + 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x34, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x34, 0x48, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x34, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, + 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x35, 0x48, 0x0a, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x35, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x36, 0x48, 0x0b, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, + 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x5f, 0x37, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x48, + 0x0c, 0x52, 0x0b, 0x70, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x88, 0x01, + 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, + 0x63, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, + 0x63, 0x6f, 0x64, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x65, + 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x42, 0x10, 0x0a, 0x0e, + 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x30, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x31, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x5f, 0x36, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x5f, 0x37, 0x22, 0xa2, 0x03, 0x0a, 0x11, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, - 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x03, 0x64, 0x73, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x5f, 0x32, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x5f, 0x33, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, + 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x34, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, 0x73, 0x65, + 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x35, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x75, + 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x36, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, + 0x61, 0x75, 0x73, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f, 0x37, 0x22, 0xa2, 0x03, 0x0a, + 0x11, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x12, 0x37, 0x0a, 0x03, 0x64, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, + 0x74, 0x48, 0x00, 0x52, 0x03, 0x64, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x03, 0x73, + 0x72, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x48, 0x01, 0x52, 0x03, 0x73, 0x72, + 0x63, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0a, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x48, 0x02, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x57, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, + 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, + 0x70, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x03, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x48, 0x00, 0x52, 0x03, 0x64, 0x73, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, - 0x72, 0x63, 0x48, 0x01, 0x52, 0x03, 0x73, 0x72, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0a, - 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x09, 0x65, 0x74, 0x68, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x03, 0x52, - 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x48, 0x04, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, - 0x04, 0x5f, 0x64, 0x73, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x0d, 0x0a, - 0x0b, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, - 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xaa, 0x08, 0x0a, 0x07, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, - 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x48, - 0x01, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, - 0x07, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x73, 0x65, 0x71, - 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x75, - 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, - 0x75, 0x6d, 0x48, 0x03, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, - 0x43, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x48, 0x04, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x06, 0x65, 0x63, 0x6e, 0x5f, 0x6e, 0x73, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x48, 0x05, - 0x52, 0x05, 0x65, 0x63, 0x6e, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x65, 0x63, - 0x6e, 0x5f, 0x63, 0x77, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x48, 0x06, 0x52, 0x06, 0x65, 0x63, 0x6e, 0x43, 0x77, 0x72, - 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x65, 0x63, 0x6e, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, - 0x6f, 0x48, 0x07, 0x52, 0x07, 0x65, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x88, 0x01, 0x01, 0x12, - 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x75, 0x72, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x48, 0x08, 0x52, 0x06, 0x63, - 0x74, 0x6c, 0x55, 0x72, 0x67, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, - 0x61, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, - 0x6c, 0x41, 0x63, 0x6b, 0x48, 0x09, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x88, 0x01, - 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x70, 0x73, 0x68, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x48, 0x0a, 0x52, - 0x06, 0x63, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, - 0x6c, 0x5f, 0x72, 0x73, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, + 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x04, 0x52, 0x04, 0x74, 0x69, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x64, 0x73, 0x74, 0x42, 0x06, 0x0a, + 0x04, 0x5f, 0x73, 0x72, 0x63, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x5f, 0x6f, 0x70, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x22, 0xaa, 0x08, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x12, 0x3a, 0x0a, + 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, 0x07, 0x73, + 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x73, 0x74, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x48, 0x0b, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x52, 0x73, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x48, - 0x0c, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, - 0x63, 0x74, 0x6c, 0x5f, 0x66, 0x69, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x48, 0x01, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, 0x6f, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, + 0x6d, 0x48, 0x02, 0x52, 0x06, 0x73, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x37, + 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x06, 0x61, 0x63, + 0x6b, 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x48, 0x04, 0x52, 0x0a, 0x64, + 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x06, + 0x65, 0x63, 0x6e, 0x5f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x48, 0x05, 0x52, 0x05, 0x65, 0x63, 0x6e, 0x4e, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x77, 0x72, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x48, 0x06, + 0x52, 0x06, 0x65, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x65, + 0x63, 0x6e, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x48, 0x0d, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x46, - 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, - 0x48, 0x0e, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x64, - 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x65, 0x71, 0x5f, - 0x6e, 0x75, 0x6d, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x6e, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x65, - 0x63, 0x6e, 0x5f, 0x63, 0x77, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x65, - 0x63, 0x68, 0x6f, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x75, 0x72, 0x67, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x61, 0x63, 0x6b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x63, 0x74, 0x6c, 0x5f, 0x70, 0x73, 0x68, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, - 0x72, 0x73, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x66, 0x69, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x22, 0xa9, 0x02, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x55, - 0x64, 0x70, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, - 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, - 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x48, 0x01, 0x52, 0x07, - 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x02, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, - 0x6d, 0x48, 0x03, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, - 0x75, 0x6d, 0x22, 0xed, 0x03, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x12, 0x52, - 0x0a, 0x10, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, - 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0f, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x30, 0x48, 0x01, 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, - 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x48, 0x02, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3c, - 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x52, - 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x08, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x08, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x09, 0x72, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x48, 0x07, 0x52, 0x07, 0x65, 0x63, 0x6e, + 0x45, 0x63, 0x68, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x75, + 0x72, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, + 0x55, 0x72, 0x67, 0x48, 0x08, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x88, 0x01, 0x01, + 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x61, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x48, 0x09, 0x52, 0x06, + 0x63, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, + 0x5f, 0x70, 0x73, 0x68, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, + 0x74, 0x6c, 0x50, 0x73, 0x68, 0x48, 0x0a, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x88, + 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x72, 0x73, 0x74, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x48, 0x0b, + 0x52, 0x06, 0x63, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, + 0x74, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x48, 0x0c, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x53, 0x79, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x07, 0x63, 0x74, 0x6c, 0x5f, 0x66, 0x69, 0x6e, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, + 0x48, 0x0d, 0x52, 0x06, 0x63, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, + 0x06, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x48, 0x0e, 0x52, 0x06, 0x77, 0x69, 0x6e, 0x64, + 0x6f, 0x77, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x65, 0x71, 0x5f, 0x6e, 0x75, 0x6d, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x61, 0x63, 0x6b, 0x5f, 0x6e, 0x75, 0x6d, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x61, 0x74, 0x61, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x63, 0x6e, 0x5f, + 0x6e, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x63, 0x77, 0x72, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x65, 0x63, 0x6e, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x63, 0x74, 0x6c, 0x5f, 0x75, 0x72, 0x67, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, + 0x61, 0x63, 0x6b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x70, 0x73, 0x68, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, 0x72, 0x73, 0x74, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x63, 0x74, 0x6c, 0x5f, 0x73, 0x79, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x74, 0x6c, 0x5f, + 0x66, 0x69, 0x6e, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x22, 0xa9, + 0x02, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x12, 0x3a, 0x0a, 0x08, 0x73, 0x72, + 0x63, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, + 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x50, + 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x08, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, + 0x50, 0x6f, 0x72, 0x74, 0x48, 0x01, 0x52, 0x07, 0x64, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x02, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, + 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x08, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x22, 0xed, 0x03, 0x0a, 0x07, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x12, 0x52, 0x0a, 0x10, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, + 0x73, 0x65, 0x6e, 0x74, 0x48, 0x00, 0x52, 0x0f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, + 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x09, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x48, 0x05, 0x52, 0x09, 0x72, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x42, 0x0a, - 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, 0x63, - 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x31, 0x22, 0xd7, 0x08, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x12, 0x3b, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, - 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, - 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x72, 0x65, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, + 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x48, 0x01, 0x52, 0x09, 0x72, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, + 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x02, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x03, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, + 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x31, 0x48, 0x05, 0x52, 0x09, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, + 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, + 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x22, 0xd7, 0x08, 0x0a, 0x09, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x12, 0x3b, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x48, 0x02, 0x52, 0x08, 0x72, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x65, 0x5f, - 0x66, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x03, 0x52, 0x05, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x88, - 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, + 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, + 0x01, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x48, 0x02, 0x52, 0x08, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x88, + 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x04, - 0x52, 0x05, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x6e, - 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x05, 0x52, 0x06, 0x70, 0x6e, 0x46, 0x6c, - 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x06, 0x52, - 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x4e, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x07, 0x52, 0x0d, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, - 0x32, 0x0a, 0x04, 0x74, 0x65, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x48, 0x08, 0x52, 0x04, 0x74, 0x65, 0x69, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0e, 0x73, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, - 0x09, 0x52, 0x0d, 0x73, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0c, 0x6e, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x6e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x0a, 0x52, 0x0a, 0x6e, 0x50, - 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x6e, 0x0a, 0x1a, 0x6e, - 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x0b, 0x52, - 0x17, 0x6e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x11, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, - 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x65, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, - 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, - 0x0f, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x65, 0x69, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x6e, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x1d, 0x0a, - 0x1b, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0xdc, 0x02, 0x0a, - 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x5b, 0x0a, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x00, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x45, - 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x01, 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x02, 0x52, 0x13, 0x6e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, - 0x13, 0x0a, 0x11, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x22, 0xfe, 0x05, 0x0a, 0x09, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x12, 0x3b, 0x0a, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x03, + 0x52, 0x05, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x73, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x11, 0x70, 0x69, 0x67, 0x67, 0x79, 0x62, - 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, - 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x01, 0x52, 0x10, 0x70, 0x69, 0x67, 0x67, - 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, - 0x3f, 0x0a, 0x09, 0x74, 0x65, 0x69, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, - 0x67, 0x48, 0x02, 0x52, 0x08, 0x74, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, - 0x12, 0x38, 0x0a, 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x48, 0x03, 0x52, - 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, 0x31, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0c, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x48, 0x04, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, + 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x04, 0x52, 0x05, 0x73, 0x46, 0x6c, 0x61, 0x67, 0x88, + 0x01, 0x01, 0x12, 0x39, 0x0a, 0x07, 0x70, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, + 0x48, 0x05, 0x52, 0x06, 0x70, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, + 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x06, 0x52, 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0e, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x48, 0x07, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x65, 0x69, 0x64, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, + 0x48, 0x08, 0x52, 0x04, 0x74, 0x65, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0e, 0x73, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x09, 0x52, 0x0d, 0x73, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0c, 0x6e, + 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x48, 0x0a, 0x52, 0x0a, 0x6e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x6e, 0x0a, 0x1a, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, + 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x48, 0x0b, 0x52, 0x17, 0x6e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x11, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x10, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x73, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6e, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x65, 0x69, + 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x22, 0xdc, 0x02, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x5b, 0x0a, 0x10, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x48, 0x00, 0x52, 0x0f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x48, 0x01, + 0x52, 0x08, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x68, 0x0a, + 0x15, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x48, 0x05, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x04, 0x74, 0x65, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x48, 0x06, 0x52, - 0x04, 0x74, 0x65, 0x69, 0x64, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x07, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x06, 0x73, - 0x70, 0x61, 0x72, 0x65, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x48, 0x08, 0x52, 0x06, 0x73, 0x70, 0x61, 0x72, - 0x65, 0x32, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x70, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, - 0x6e, 0x67, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x65, 0x69, 0x64, - 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x65, 0x31, - 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x65, 0x69, 0x64, 0x42, 0x12, 0x0a, - 0x10, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x65, 0x32, 0x22, 0xb8, 0x07, 0x0a, - 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x12, 0x49, 0x0a, 0x0d, 0x68, 0x61, 0x72, 0x64, - 0x77, 0x61, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x48, 0x00, 0x52, 0x0c, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x0c, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4f, - 0x0a, 0x0f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, + 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x13, 0x6e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x65, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, + 0x78, 0x74, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x22, 0xfe, 0x05, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x32, 0x12, 0x3b, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x57, + 0x0a, 0x11, 0x70, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x66, + 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, + 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, + 0x48, 0x01, 0x52, 0x10, 0x70, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, + 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x09, 0x74, 0x65, 0x69, 0x64, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x48, 0x02, 0x52, 0x08, 0x74, 0x65, 0x69, + 0x64, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x06, 0x73, 0x70, 0x61, 0x72, + 0x65, 0x31, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, + 0x70, 0x61, 0x72, 0x65, 0x31, 0x48, 0x03, 0x52, 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, 0x31, 0x88, + 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0c, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x04, 0x52, 0x0b, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0e, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x05, 0x52, 0x0d, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x04, + 0x74, 0x65, 0x69, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x32, 0x54, 0x65, 0x69, 0x64, 0x48, 0x06, 0x52, 0x04, 0x74, 0x65, 0x69, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x51, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, + 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x07, + 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, 0x32, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, + 0x48, 0x08, 0x52, 0x06, 0x73, 0x70, 0x61, 0x72, 0x65, 0x32, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x70, 0x69, + 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x65, 0x69, 0x64, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x73, 0x70, 0x61, 0x72, 0x65, 0x31, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x74, 0x65, 0x69, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x73, 0x70, + 0x61, 0x72, 0x65, 0x32, 0x22, 0xb8, 0x07, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, + 0x12, 0x49, 0x0a, 0x0d, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, - 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x02, 0x52, 0x0e, 0x68, 0x61, - 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, - 0x4f, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x48, 0x03, 0x52, 0x0e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x12, 0x3f, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x48, 0x04, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x5c, 0x0a, 0x14, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x72, 0x64, - 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, - 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x48, 0x05, 0x52, 0x12, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, - 0x5c, 0x0a, 0x14, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x41, 0x64, 0x64, 0x72, 0x48, 0x06, 0x52, 0x12, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, - 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, + 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x68, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0d, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, + 0x72, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x48, 0x02, 0x52, 0x0e, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x0f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x48, 0x03, 0x52, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, - 0x64, 0x72, 0x48, 0x07, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, - 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x14, 0x74, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, - 0x48, 0x08, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x68, 0x61, - 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, - 0x10, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x68, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x42, 0x17, 0x0a, 0x15, - 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x42, 0x17, - 0x0a, 0x15, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x22, 0xaf, 0x01, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x04, - 0x65, 0x63, 0x68, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x48, 0x01, 0x52, - 0x04, 0x65, 0x63, 0x68, 0x6f, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x65, - 0x63, 0x68, 0x6f, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x22, 0xa0, 0x03, 0x0a, 0x0c, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, - 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x35, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x01, 0x52, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, - 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, - 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x08, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0a, 0x69, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x48, 0x03, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x04, 0x52, 0x09, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x14, 0x73, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x48, 0x05, + 0x52, 0x12, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, + 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x14, 0x73, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x48, 0x06, 0x52, 0x12, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, + 0x64, 0x72, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, + 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, + 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x48, 0x07, 0x52, 0x12, 0x74, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x14, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x48, 0x08, 0x52, 0x12, 0x74, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x88, 0x01, + 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, + 0x72, 0x65, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x5f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x42, 0x17, 0x0a, + 0x15, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x5f, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, + 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x22, + 0xaf, 0x01, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x12, 0x36, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, + 0x70, 0x45, 0x63, 0x68, 0x6f, 0x48, 0x01, 0x52, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x88, 0x01, 0x01, + 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x10, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x65, 0x63, 0x68, + 0x6f, 0x22, 0xa0, 0x03, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, + 0x68, 0x6f, 0x12, 0x35, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, + 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, + 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x01, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x41, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, + 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, + 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x48, 0x03, 0x52, 0x0a, 0x69, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x0f, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x04, 0x52, + 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x63, 0x6f, 0x64, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, + 0x6d, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x22, 0xb5, 0x01, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, + 0x70, 0x76, 0x36, 0x12, 0x38, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, + 0x6d, 0x70, 0x76, 0x36, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, + 0x04, 0x65, 0x63, 0x68, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, + 0x48, 0x01, 0x52, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, + 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x65, 0x63, 0x68, 0x6f, 0x22, 0xac, 0x03, 0x0a, + 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x12, + 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x04, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0xb5, 0x01, 0x0a, - 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x12, 0x38, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, - 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x48, 0x01, 0x52, 0x04, 0x65, 0x63, 0x68, 0x6f, - 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x65, 0x63, 0x68, 0x6f, 0x10, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x65, 0x63, 0x68, 0x6f, 0x22, 0xac, 0x03, 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x37, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, + 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, + 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x01, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x49, 0x0a, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, - 0x6f, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x37, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x48, 0x01, - 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0a, 0x69, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x48, 0x02, 0x52, 0x0a, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, - 0x72, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x48, 0x02, 0x52, 0x0a, 0x69, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0f, + 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, + 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, + 0x03, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, + 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x08, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, + 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x22, 0xf4, 0x01, 0x0a, 0x07, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x12, 0x39, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x39, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x48, + 0x01, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, + 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x22, 0x88, 0x03, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, + 0x31, 0x12, 0x3c, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x33, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x48, 0x03, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x08, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, - 0x75, 0x6d, 0x48, 0x04, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, - 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x63, - 0x6f, 0x64, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x69, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x73, 0x75, 0x6d, 0x22, 0xf4, 0x01, 0x0a, 0x07, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x12, - 0x39, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x07, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x07, 0x63, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x48, 0x01, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, - 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, - 0x0c, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x0a, 0x0a, 0x08, - 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x88, 0x03, 0x0a, 0x0a, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x12, 0x3c, 0x0a, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, - 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x07, 0x76, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, - 0x65, 0x48, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x06, - 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, - 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x48, 0x02, 0x52, 0x06, 0x75, 0x6e, - 0x75, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, - 0x31, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x08, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x48, 0x04, 0x52, 0x0c, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x73, 0x75, 0x6d, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xe4, 0x02, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, - 0x6c, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x05, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, - 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x48, 0x01, 0x52, 0x0c, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0f, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, - 0x66, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, - 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, - 0x48, 0x02, 0x52, 0x0d, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, - 0x6b, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, - 0x6c, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, - 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, - 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, - 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x62, 0x6f, 0x74, 0x74, - 0x6f, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x22, 0xc1, 0x02, 0x0a, - 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x01, 0x52, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x49, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, - 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x48, 0x03, 0x52, 0x06, - 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x47, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x3d, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x66, 0x69, 0x78, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, - 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, - 0x22, 0x79, 0x0a, 0x11, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x15, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x03, 0x65, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, - 0x6e, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x22, 0x4e, 0x0a, 0x0e, 0x46, - 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x15, 0x0a, - 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x69, - 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x61, 0x78, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, - 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x61, 0x78, 0x22, 0x88, 0x03, 0x0a, 0x08, - 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, - 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x15, 0x0a, 0x03, 0x70, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, - 0x03, 0x70, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x62, 0x70, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x03, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x6b, 0x62, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, 0x04, - 0x6b, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6d, 0x62, 0x70, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, 0x04, 0x52, 0x04, 0x6d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x67, 0x62, 0x70, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x05, - 0x52, 0x04, 0x67, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x70, 0x65, 0x72, - 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x48, 0x06, 0x52, - 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x61, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x57, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x07, 0x0a, 0x03, 0x70, 0x70, 0x73, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x70, - 0x73, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6b, 0x62, 0x70, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, - 0x04, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x62, 0x70, 0x73, 0x10, - 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x10, - 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, - 0x5f, 0x70, 0x70, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x62, 0x70, 0x73, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x6b, 0x62, 0x70, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x65, 0x72, 0x63, - 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x22, 0xdd, 0x03, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x44, - 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x73, 0x48, 0x01, 0x52, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x73, 0x48, 0x02, 0x52, 0x0c, 0x66, 0x69, 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x62, 0x75, 0x72, 0x73, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x42, - 0x75, 0x72, 0x73, 0x74, 0x48, 0x03, 0x52, 0x05, 0x62, 0x75, 0x72, 0x73, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x38, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x43, - 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x48, 0x04, 0x52, 0x0a, 0x63, 0x6f, 0x6e, - 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x62, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x58, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, - 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x10, 0x01, - 0x12, 0x11, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, - 0x73, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x75, 0x72, 0x73, 0x74, 0x10, 0x03, 0x12, 0x0e, - 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x10, 0x04, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, - 0x78, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x74, - 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x22, 0x64, 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, - 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x29, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x01, - 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, - 0x61, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xb6, 0x02, 0x0a, - 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x02, 0x48, 0x01, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, - 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, - 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x48, 0x03, 0x52, 0x0c, 0x6d, - 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x4f, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x45, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, - 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, - 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x03, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, - 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, - 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x91, 0x01, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, - 0x78, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x07, 0x70, - 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, - 0x12, 0x29, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, - 0x02, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x22, 0x91, 0x01, 0x0a, 0x10, 0x46, 0x6c, - 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1d, - 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, - 0x00, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, - 0x03, 0x67, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x03, 0x67, 0x61, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, - 0x6c, 0x61, 0x79, 0x48, 0x02, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, - 0x67, 0x61, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xde, 0x01, - 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x42, 0x75, 0x72, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x62, - 0x75, 0x72, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x62, - 0x75, 0x72, 0x73, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x07, 0x70, 0x61, 0x63, - 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x4b, - 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x67, 0x61, - 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, - 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x42, - 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x48, 0x03, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x67, 0x61, 0x70, 0x22, 0xd6, - 0x02, 0x0a, 0x19, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x12, 0x47, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x25, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, - 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x03, 0x52, - 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, - 0x1a, 0x4f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x45, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x10, 0x01, 0x12, 0x0f, - 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x02, 0x12, - 0x10, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, - 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, - 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, - 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0xcf, 0x01, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x01, 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, - 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x08, 0x48, 0x02, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x88, - 0x01, 0x01, 0x12, 0x36, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, - 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x48, 0x03, 0x52, 0x07, - 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x42, 0x0d, - 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x42, 0x0a, 0x0a, - 0x08, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, 0xc6, 0x01, 0x0a, 0x12, 0x46, 0x6c, - 0x6f, 0x77, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, - 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, - 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x04, 0x4d, 0x6f, 0x64, - 0x65, 0x22, 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x74, - 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x10, 0x01, 0x12, 0x0f, 0x0a, - 0x0b, 0x63, 0x75, 0x74, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x10, 0x02, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, - 0x64, 0x65, 0x22, 0xc1, 0x02, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x06, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, - 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x04, 0x6c, 0x69, 0x6e, - 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x48, 0x01, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x88, - 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x11, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x54, - 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x48, 0x02, 0x52, 0x0f, 0x72, 0x78, 0x52, 0x61, - 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x5f, - 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, - 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, - 0x61, 0x77, 0x48, 0x03, 0x52, 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, - 0x69, 0x6e, 0x6b, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, - 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x77, 0x69, - 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x22, 0x6f, 0x0a, 0x14, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, - 0x78, 0x52, 0x61, 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x1b, - 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, - 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x74, - 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, - 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, 0x33, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x45, 0x0a, 0x1b, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, - 0x69, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x12, 0x1b, 0x0a, 0x06, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x22, 0x83, 0x02, 0x0a, 0x0c, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xa9, 0x01, - 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x0d, 0x0a, 0x09, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x01, 0x12, - 0x0b, 0x0a, 0x07, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x75, 0x70, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x10, 0x03, - 0x12, 0x13, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, - 0x69, 0x73, 0x65, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x78, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x62, 0x6f, 0x76, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, - 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x10, 0x05, 0x12, 0x20, 0x0a, 0x1c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, - 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x10, 0x06, 0x22, 0x87, 0x01, 0x0a, 0x11, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x2e, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x48, 0x00, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x26, 0x0a, 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, - 0x6b, 0x55, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x76, 0x65, 0x6e, - 0x74, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, - 0x75, 0x72, 0x6c, 0x22, 0xa3, 0x03, 0x0a, 0x04, 0x4c, 0x6c, 0x64, 0x70, 0x12, 0x33, 0x0a, 0x0a, - 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x36, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, - 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x48, 0x00, 0x52, 0x09, 0x63, 0x68, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x07, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x48, 0x01, 0x52, 0x06, 0x70, - 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, - 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, - 0x6d, 0x65, 0x48, 0x02, 0x52, 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x48, 0x03, 0x52, 0x08, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, - 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x04, 0x52, 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, - 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, - 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x5f, 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, - 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x19, - 0x0a, 0x17, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x22, 0xbb, 0x01, 0x0a, 0x0e, 0x4c, 0x6c, - 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, - 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x30, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x26, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x0d, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xbd, 0x03, 0x0a, 0x0d, 0x4c, 0x6c, 0x64, 0x70, - 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x48, - 0x01, 0x52, 0x11, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, - 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0c, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x17, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, - 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, - 0x70, 0x65, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, - 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x69, - 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, - 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, - 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xbe, 0x03, 0x0a, 0x0a, 0x4c, 0x6c, 0x64, 0x70, - 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, - 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x33, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, - 0x11, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x62, 0x74, 0x79, - 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, - 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x48, 0x02, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x0c, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x5f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x17, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, - 0x79, 0x70, 0x65, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, - 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, - 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, - 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xe6, 0x01, 0x0a, 0x15, 0x4c, 0x6c, 0x64, - 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, - 0x73, 0x73, 0x69, 0x73, 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, - 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0xf4, 0x01, 0x0a, 0x1c, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, - 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, - 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, - 0x62, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, - 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xd8, 0x01, 0x0a, 0x0e, 0x4c, 0x6c, 0x64, - 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, + 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, + 0x65, 0x64, 0x48, 0x02, 0x52, 0x06, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x3f, 0x0a, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, + 0x6d, 0x48, 0x03, 0x52, 0x08, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x88, 0x01, 0x01, + 0x12, 0x4c, 0x0a, 0x0d, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x48, 0x04, 0x52, 0x0c, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x42, 0x0b, + 0x0a, 0x09, 0x5f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x42, 0x10, 0x0a, 0x0e, 0x5f, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0xe4, 0x02, + 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x12, 0x34, 0x0a, 0x05, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, + 0x12, 0x4a, 0x0a, 0x0d, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, + 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x48, 0x01, 0x52, 0x0c, 0x74, 0x72, 0x61, + 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0f, + 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, + 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x48, 0x02, 0x52, 0x0d, 0x62, 0x6f, 0x74, 0x74, + 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0c, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x6c, 0x69, 0x76, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, + 0x76, 0x65, 0x48, 0x03, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, + 0x12, 0x0a, 0x10, 0x5f, 0x62, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x5f, 0x6f, 0x66, 0x5f, 0x73, 0x74, + 0x61, 0x63, 0x6b, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, + 0x6c, 0x69, 0x76, 0x65, 0x22, 0xc1, 0x02, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, + 0x65, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, - 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0xaa, 0x01, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x12, 0x0a, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x4b, 0x69, 0x6e, 0x64, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x1a, 0x3d, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, - 0x22, 0x35, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, - 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6b, 0x69, 0x6e, 0x64, - 0x22, 0x25, 0x0a, 0x07, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x77, - 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x77, - 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x22, 0xba, 0x01, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x01, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x88, 0x01, - 0x01, 0x1a, 0x2c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x22, 0x0a, 0x04, 0x45, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x66, 0x69, 0x78, + 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x48, + 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x30, 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, 0x61, + 0x6e, 0x64, 0x6f, 0x6d, 0x48, 0x03, 0x52, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x88, 0x01, + 0x01, 0x1a, 0x47, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x3d, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x10, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, - 0x6c, 0x6f, 0x77, 0x73, 0x22, 0xb8, 0x01, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x50, - 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x12, 0x1f, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x09, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, - 0x73, 0x1a, 0x3c, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x72, - 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x69, 0x7a, 0x65, 0x10, 0x02, 0x22, - 0xbf, 0x02, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x35, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x27, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x50, 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x33, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x01, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x48, 0x02, 0x52, 0x07, 0x74, 0x72, 0x61, - 0x66, 0x66, 0x69, 0x63, 0x88, 0x01, 0x01, 0x1a, 0x46, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x3c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, - 0x72, 0x74, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x10, 0x03, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, - 0x63, 0x22, 0xf1, 0x01, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, - 0x32, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, - 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x88, 0x01, 0x01, - 0x12, 0x34, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, - 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x48, 0x01, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, - 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x38, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x2e, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x69, 0x6e, - 0x6b, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x10, 0x02, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x61, - 0x70, 0x74, 0x75, 0x72, 0x65, 0x22, 0xd6, 0x01, 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, - 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x12, 0x35, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x47, 0x0a, - 0x0d, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x6d, 0x69, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x34, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x66, 0x6c, 0x6f, - 0x77, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x10, 0x01, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, 0xb6, - 0x02, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x66, 0x69, 0x78, 0x65, 0x64, 0x10, 0x01, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x72, 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x22, 0x79, 0x0a, 0x11, 0x46, 0x6c, 0x6f, 0x77, + 0x53, 0x69, 0x7a, 0x65, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x65, 0x6e, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x03, 0x65, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x65, 0x6e, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x22, 0x4e, 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x53, 0x69, 0x7a, 0x65, 0x52, + 0x61, 0x6e, 0x64, 0x6f, 0x6d, 0x12, 0x15, 0x0a, 0x03, 0x6d, 0x69, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x03, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, + 0x6d, 0x61, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x03, 0x6d, 0x61, 0x78, + 0x88, 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6d, 0x69, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x6d, 0x61, 0x78, 0x22, 0x88, 0x03, 0x0a, 0x08, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x03, - 0x61, 0x6c, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x01, - 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x04, 0x6c, 0x61, - 0x63, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, - 0x48, 0x02, 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x35, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, - 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x10, 0x03, 0x42, 0x06, 0x0a, 0x04, - 0x5f, 0x61, 0x6c, 0x6c, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x22, 0x8f, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x6e, 0x6b, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x32, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, + 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x52, 0x61, 0x74, 0x65, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x70, 0x70, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x03, 0x70, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x15, 0x0a, 0x03, 0x62, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x03, + 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6b, 0x62, 0x70, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, 0x04, 0x6b, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x6d, 0x62, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, 0x04, 0x52, + 0x04, 0x6d, 0x62, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x67, 0x62, 0x70, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x05, 0x52, 0x04, 0x67, 0x62, 0x70, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x02, 0x48, 0x06, 0x52, 0x0a, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, + 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x61, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x57, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x70, 0x70, 0x73, + 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x70, 0x73, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6b, + 0x62, 0x70, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x6d, 0x62, 0x70, 0x73, 0x10, 0x04, 0x12, + 0x08, 0x0a, 0x04, 0x67, 0x62, 0x70, 0x73, 0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x65, 0x72, + 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x70, 0x70, 0x73, 0x42, 0x06, 0x0a, 0x04, + 0x5f, 0x62, 0x70, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6b, 0x62, 0x70, 0x73, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6d, 0x62, 0x70, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x67, 0x62, 0x70, 0x73, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x61, 0x67, 0x65, 0x22, 0xdd, + 0x03, 0x0a, 0x0c, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0d, 0x66, + 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, + 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x48, 0x01, 0x52, 0x0c, 0x66, 0x69, 0x78, + 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0d, + 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, + 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x48, 0x02, 0x52, 0x0c, 0x66, 0x69, + 0x78, 0x65, 0x64, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, + 0x05, 0x62, 0x75, 0x72, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x42, 0x75, 0x72, 0x73, 0x74, 0x48, 0x03, 0x52, 0x05, + 0x62, 0x75, 0x72, 0x73, 0x74, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, + 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, + 0x73, 0x48, 0x04, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x88, + 0x01, 0x01, 0x1a, 0x62, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x58, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, + 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x66, 0x69, 0x78, 0x65, + 0x64, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x62, + 0x75, 0x72, 0x73, 0x74, 0x10, 0x03, 0x12, 0x0e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, + 0x75, 0x6f, 0x75, 0x73, 0x10, 0x04, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70, 0x61, 0x63, 0x6b, + 0x65, 0x74, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x42, + 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, 0x22, 0x64, + 0x0a, 0x0e, 0x46, 0x6c, 0x6f, 0x77, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x6f, 0x75, 0x73, + 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, + 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x01, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x88, + 0x01, 0x01, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x64, + 0x65, 0x6c, 0x61, 0x79, 0x22, 0xb6, 0x02, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, + 0x61, 0x79, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, + 0x61, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x05, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x48, 0x02, 0x52, 0x0b, 0x6e, + 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, + 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x02, 0x48, 0x03, 0x52, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x4f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x45, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x91, 0x01, + 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, 0x64, 0x65, 0x6c, 0x61, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x02, 0x52, 0x05, 0x64, 0x65, 0x6c, 0x61, 0x79, + 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, + 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x64, 0x65, 0x6c, 0x61, + 0x79, 0x22, 0x91, 0x01, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x46, 0x69, 0x78, 0x65, 0x64, 0x53, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1d, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x07, 0x73, 0x65, 0x63, 0x6f, 0x6e, + 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x01, 0x52, 0x03, 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x05, + 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x48, 0x02, 0x52, 0x05, 0x64, + 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x73, 0x65, 0x63, 0x6f, + 0x6e, 0x64, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, 0x61, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x64, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xde, 0x01, 0x0a, 0x09, 0x46, 0x6c, 0x6f, 0x77, 0x42, 0x75, + 0x72, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x1d, 0x0a, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x07, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x15, 0x0a, 0x03, 0x67, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x03, + 0x67, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x5f, + 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x67, 0x61, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, 0x48, + 0x03, 0x52, 0x0d, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, 0x74, 0x47, 0x61, 0x70, + 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x62, 0x75, 0x72, 0x73, 0x74, 0x73, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x67, + 0x61, 0x70, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x5f, 0x62, 0x75, 0x72, + 0x73, 0x74, 0x5f, 0x67, 0x61, 0x70, 0x22, 0xd6, 0x02, 0x0a, 0x19, 0x46, 0x6c, 0x6f, 0x77, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, + 0x74, 0x47, 0x61, 0x70, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x44, + 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x42, 0x75, 0x72, 0x73, + 0x74, 0x47, 0x61, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x05, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, + 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x27, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x01, 0x48, 0x03, 0x52, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x4f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x45, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, + 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x6d, 0x69, 0x63, 0x72, 0x6f, + 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x10, 0x03, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x6e, 0x61, 0x6e, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, + 0xcf, 0x01, 0x0a, 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, + 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x04, 0x6c, 0x6f, + 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0a, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x07, 0x6c, 0x61, + 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x48, 0x03, 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, + 0x79, 0x22, 0xc6, 0x01, 0x0a, 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, + 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, + 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x2e, 0x4d, 0x6f, 0x64, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x88, 0x01, + 0x01, 0x1a, 0x43, 0x0a, 0x04, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x5f, 0x66, 0x6f, 0x72, 0x77, + 0x61, 0x72, 0x64, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x63, 0x75, 0x74, 0x5f, 0x74, 0x68, 0x72, + 0x6f, 0x75, 0x67, 0x68, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x22, 0xc1, 0x02, 0x0a, 0x05, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x27, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x48, + 0x01, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x11, 0x72, 0x78, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x48, 0x02, 0x52, 0x0f, 0x72, 0x78, 0x52, 0x61, 0x74, 0x65, 0x54, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x12, 0x5f, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, + 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, + 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x48, 0x03, 0x52, 0x16, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, + 0x64, 0x72, 0x61, 0x77, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x42, 0x14, 0x0a, 0x12, 0x5f, + 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, + 0x64, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, + 0x72, 0x74, 0x69, 0x73, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x22, 0x6f, + 0x0a, 0x14, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x54, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x21, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x48, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, + 0x6f, 0x6c, 0x64, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x22, + 0x33, 0x0a, 0x09, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x1b, 0x0a, 0x06, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x22, 0x45, 0x0a, 0x1b, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x12, 0x1b, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0x83, 0x02, 0x0a, 0x0c, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, 0x04, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x6f, 0x75, 0x72, 0x63, 0x65, 0x1a, 0xa9, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0xa0, + 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x6c, 0x69, 0x6e, 0x6b, + 0x5f, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, + 0x75, 0x70, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, + 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x10, 0x04, 0x12, 0x20, 0x0a, + 0x1c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x62, + 0x6f, 0x76, 0x65, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x10, 0x05, 0x12, + 0x20, 0x0a, 0x1c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x5f, + 0x62, 0x65, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x10, + 0x06, 0x22, 0x87, 0x01, 0x0a, 0x11, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x53, 0x75, 0x62, 0x73, 0x63, + 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, + 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x00, 0x52, 0x06, 0x65, 0x76, + 0x65, 0x6e, 0x74, 0x73, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x63, 0x61, 0x6c, 0x6c, 0x62, + 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x0b, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x55, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x63, + 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x75, 0x72, 0x6c, 0x22, 0xa3, 0x03, 0x0a, 0x04, + 0x4c, 0x6c, 0x64, 0x70, 0x12, 0x33, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, + 0x6c, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x63, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x0a, 0x63, 0x68, 0x61, + 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, + 0x64, 0x48, 0x00, 0x52, 0x09, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x2d, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, + 0x74, 0x49, 0x64, 0x48, 0x01, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, + 0x12, 0x39, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, + 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x48, 0x02, 0x52, 0x0a, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x68, + 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x48, 0x03, + 0x52, 0x08, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, + 0x16, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x04, 0x52, + 0x15, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x6f, 0x6c, + 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, + 0x6c, 0x22, 0xbb, 0x01, 0x0a, 0x0e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, + 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x1a, 0x30, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x26, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, - 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x22, 0xb1, 0x01, 0x0a, 0x0d, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, - 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, - 0x4c, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x43, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, + 0xbd, 0x03, 0x0a, 0x0d, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, + 0x64, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, + 0x73, 0x69, 0x73, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4f, + 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, + 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x4d, 0x61, 0x63, + 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x48, 0x01, 0x52, 0x11, 0x6d, 0x61, 0x63, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x39, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x02, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x03, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x5f, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x01, + 0x12, 0x1a, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x03, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6d, + 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, + 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, 0x0a, + 0x0e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, + 0xbe, 0x03, 0x0a, 0x0a, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x12, 0x38, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x6d, 0x61, 0x63, 0x41, 0x64, 0x64, 0x72, + 0x65, 0x73, 0x73, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x5c, 0x0a, + 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, + 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, + 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, + 0x48, 0x02, 0x52, 0x14, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x6c, + 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x03, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x53, 0x75, 0x62, 0x74, 0x79, + 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x69, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x5f, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x6d, 0x61, 0x63, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, + 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x02, 0x12, 0x11, 0x0a, + 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x10, 0x03, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x16, 0x0a, 0x14, 0x5f, + 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x74, + 0x79, 0x70, 0x65, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, + 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x42, 0x10, + 0x0a, 0x0e, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, + 0x22, 0xe6, 0x01, 0x0a, 0x15, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, + 0x4d, 0x61, 0x63, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x4d, 0x61, 0x63, 0x53, + 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xf4, 0x01, 0x0a, 0x1c, 0x4c, 0x6c, + 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, + 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, + 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x22, 0xd8, 0x01, 0x0a, 0x0e, 0x4c, 0x6c, 0x64, 0x70, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x53, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x36, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, + 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, + 0x6f, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xaa, 0x01, 0x0a, 0x05, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x6b, 0x69, 0x6e, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x72, + 0x72, 0x6f, 0x72, 0x2e, 0x4b, 0x69, 0x6e, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, + 0x1a, 0x3d, 0x0a, 0x04, 0x4b, 0x69, 0x6e, 0x64, 0x22, 0x35, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, - 0x73, 0x74, 0x6f, 0x70, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, - 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x10, 0x04, 0x22, 0x98, 0x01, - 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, - 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x32, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x1a, 0x35, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, + 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, + 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x6b, 0x69, 0x6e, 0x64, 0x22, 0x25, 0x0a, 0x07, 0x57, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x22, + 0xba, 0x01, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x05, + 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x48, 0x01, 0x52, + 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x2c, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x22, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x22, 0xb8, 0x01, 0x0a, + 0x0b, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x12, 0x4a, 0x0a, 0x0e, + 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x73, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x70, 0x65, + 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x1f, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x77, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, + 0x6f, 0x77, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x1a, 0x3c, 0x0a, 0x0d, 0x50, 0x72, 0x6f, + 0x70, 0x65, 0x72, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, - 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x10, 0x02, 0x22, 0x93, 0x01, 0x0a, 0x0a, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x30, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, - 0x3d, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x34, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x72, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x08, 0x0a, + 0x04, 0x73, 0x69, 0x7a, 0x65, 0x10, 0x02, 0x22, 0xbf, 0x02, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x35, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, + 0x27, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x48, 0x00, 0x52, + 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x01, + 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, + 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, + 0x63, 0x48, 0x02, 0x52, 0x07, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x88, 0x01, 0x01, 0x1a, + 0x46, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x3c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x74, 0x72, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x10, 0x03, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x74, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x22, 0xf1, 0x01, 0x0a, 0x09, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x32, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x2b, 0x0a, 0x04, 0x6c, + 0x69, 0x6e, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x48, 0x00, 0x52, + 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, + 0x48, 0x01, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x38, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x63, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x69, 0x6e, + 0x6b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x22, 0xd6, 0x01, + 0x0a, 0x0c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x12, 0x35, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, + 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x48, 0x00, 0x52, 0x0c, 0x66, + 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x34, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x10, 0x01, 0x12, - 0x0d, 0x0a, 0x09, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x10, 0x02, 0x22, 0x7b, - 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x1a, 0x35, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x2c, 0x0a, + 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, + 0x69, 0x74, 0x10, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, 0xb6, 0x02, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x12, 0x2c, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x41, 0x6c, 0x6c, 0x48, 0x00, 0x52, 0x03, 0x61, 0x6c, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x32, + 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x48, 0x01, 0x52, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x48, 0x02, 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, + 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x35, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, - 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x10, 0x02, 0x22, 0xea, 0x01, 0x0a, 0x0b, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x11, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x6d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x38, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2e, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x15, 0x0a, 0x11, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x97, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, - 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x32, - 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, - 0x10, 0x02, 0x22, 0xa0, 0x01, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, - 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x35, - 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, - 0x74, 0x6f, 0x70, 0x10, 0x02, 0x22, 0xd6, 0x01, 0x0a, 0x18, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, - 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, - 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, - 0x73, 0x12, 0x43, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, - 0x66, 0x69, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x4c, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, - 0x43, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x6c, 0x6c, 0x10, 0x01, 0x12, + 0x09, 0x0a, 0x05, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x61, + 0x63, 0x70, 0x10, 0x03, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, 0x6c, 0x6c, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x22, + 0x8f, 0x01, 0x0a, 0x09, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x32, 0x0a, + 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, + 0x02, 0x22, 0xb1, 0x01, 0x0a, 0x0d, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x4c, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x22, 0x43, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x10, 0x02, 0x12, 0x09, + 0x0a, 0x05, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6d, 0x65, 0x10, 0x04, 0x22, 0x98, 0x01, 0x0a, 0x0c, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, + 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x35, 0x0a, 0x05, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x10, 0x02, + 0x22, 0x93, 0x01, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x30, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x3d, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x22, 0x34, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x77, 0x69, 0x74, + 0x68, 0x64, 0x72, 0x61, 0x77, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x10, 0x02, 0x22, 0x7b, 0x0a, 0x0d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x35, 0x0a, 0x05, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, + 0x70, 0x10, 0x02, 0x22, 0xea, 0x01, 0x0a, 0x0b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x45, + 0x0a, 0x11, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, + 0x01, 0x52, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x38, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x2e, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x6c, 0x61, 0x63, 0x70, + 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, + 0x61, 0x63, 0x70, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x22, 0x97, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x69, + 0x6e, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x33, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, + 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x32, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, + 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, + 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x22, 0xa0, 0x01, 0x0a, 0x10, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x12, + 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x36, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x61, 0x70, + 0x74, 0x75, 0x72, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x35, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, + 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x10, 0x02, 0x12, 0x09, 0x0a, - 0x05, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, 0x03, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, - 0x6d, 0x65, 0x10, 0x04, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x81, - 0x01, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x41, 0x6c, 0x6c, 0x12, 0x36, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x35, 0x0a, 0x05, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, - 0x10, 0x02, 0x22, 0xa3, 0x01, 0x0a, 0x12, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, - 0x38, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x3d, 0x0a, 0x05, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x22, 0x34, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x77, - 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x64, 0x76, - 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x10, 0x02, 0x22, 0xbf, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x12, 0x3a, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x61, 0x64, - 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, - 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x48, 0x00, 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x88, - 0x01, 0x01, 0x1a, 0x2c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x22, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x10, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x22, 0xc3, 0x01, 0x0a, 0x16, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, - 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x28, 0x0a, 0x10, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0e, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, - 0x41, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, - 0x01, 0x01, 0x1a, 0x32, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, - 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x22, 0xaf, 0x01, 0x0a, 0x0f, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x15, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x12, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, - 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, - 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x32, - 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x10, 0x02, 0x22, 0xd6, 0x01, + 0x0a, 0x18, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6c, + 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, + 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x4c, + 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x43, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, - 0x10, 0x02, 0x22, 0xbb, 0x01, 0x0a, 0x0d, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x08, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, - 0x01, 0x01, 0x1a, 0x2f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x25, 0x0a, 0x04, + 0x12, 0x09, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x73, + 0x74, 0x6f, 0x70, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x70, 0x61, 0x75, 0x73, 0x65, 0x10, 0x03, + 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6d, 0x65, 0x10, 0x04, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x81, 0x01, 0x0a, 0x10, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, 0x6c, 0x12, 0x36, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x6c, + 0x6c, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x1a, 0x35, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x10, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x22, 0x76, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x72, - 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x77, 0x61, 0x72, - 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x34, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, - 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc5, 0x01, 0x0a, 0x0e, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x01, + 0x12, 0x08, 0x0a, 0x04, 0x73, 0x74, 0x6f, 0x70, 0x10, 0x02, 0x22, 0xa3, 0x01, 0x0a, 0x12, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x38, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x1a, 0x3d, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x34, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x10, + 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x10, 0x02, + 0x22, 0xbf, 0x01, 0x0a, 0x11, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x48, 0x00, + 0x52, 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x1a, 0x2c, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x22, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x10, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x22, 0xc3, 0x01, 0x0a, 0x16, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x12, 0x28, 0x0a, + 0x10, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x61, 0x63, 0x70, 0x41, 0x64, + 0x6d, 0x69, 0x6e, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x32, 0x0a, 0x05, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, + 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xaf, 0x01, 0x0a, 0x0f, 0x4c, 0x61, 0x63, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x15, + 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x6c, 0x61, 0x67, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, + 0x35, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x1a, 0x32, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, + 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, + 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x22, 0xbb, 0x01, 0x0a, 0x0d, 0x43, + 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x12, 0x3c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, - 0x01, 0x01, 0x1a, 0x2f, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x25, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x10, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x22, 0xb6, 0x02, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x6f, 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x00, 0x52, 0x08, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x1a, 0x2f, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x25, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, + 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0x76, 0x0a, 0x15, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x34, 0x0a, + 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x00, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0xc5, 0x01, 0x0a, 0x0e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x04, - 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, - 0x70, 0x76, 0x34, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x30, - 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x3c, 0x0a, 0x08, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x48, 0x00, 0x52, 0x08, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x88, 0x01, 0x01, 0x1a, 0x2f, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x25, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, + 0x08, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x10, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x22, 0xb6, 0x02, 0x0a, 0x0e, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x37, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x48, 0x00, 0x52, 0x04, 0x69, + 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x48, 0x01, 0x52, + 0x04, 0x69, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x03, 0x62, 0x67, 0x70, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x48, 0x02, 0x52, + 0x03, 0x62, 0x67, 0x70, 0x88, 0x01, 0x01, 0x1a, 0x3e, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x34, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, + 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x12, 0x07, + 0x0a, 0x03, 0x62, 0x67, 0x70, 0x10, 0x03, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x34, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x62, 0x67, + 0x70, 0x22, 0x96, 0x02, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x3f, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x38, 0x0a, + 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x48, 0x00, 0x52, 0x04, + 0x69, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x48, 0x01, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x88, 0x01, + 0x01, 0x1a, 0x35, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, + 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x22, 0xbd, 0x01, 0x0a, 0x12, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, + 0x34, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x34, + 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x49, 0x70, 0x76, 0x36, 0x48, 0x01, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, - 0x12, 0x2d, 0x0a, 0x03, 0x62, 0x67, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x48, 0x02, 0x52, 0x03, 0x62, 0x67, 0x70, 0x88, 0x01, 0x01, 0x1a, - 0x3e, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x34, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, - 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x67, 0x70, 0x10, 0x03, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, - 0x36, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x62, 0x67, 0x70, 0x22, 0x96, 0x02, 0x0a, 0x16, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x3f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x49, 0x70, 0x76, 0x34, 0x48, 0x00, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, - 0x38, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x48, 0x01, - 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x1a, 0x35, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, - 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x22, 0xbd, 0x01, 0x0a, 0x12, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, - 0x76, 0x34, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, - 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x69, - 0x6e, 0x67, 0x22, 0xd5, 0x01, 0x0a, 0x1a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, - 0x34, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, - 0x76, 0x34, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x10, - 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x22, 0x58, 0x0a, 0x16, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, - 0x50, 0x69, 0x6e, 0x67, 0x12, 0x3e, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x73, 0x22, 0x73, 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, - 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x22, 0x6b, 0x0a, 0x1e, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x09, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0xe9, 0x01, 0x0a, 0x26, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, - 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x73, - 0x74, 0x49, 0x70, 0x12, 0x4f, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x1a, 0x3c, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x32, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x75, 0x63, 0x63, 0x65, - 0x65, 0x64, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, - 0x10, 0x02, 0x22, 0xbd, 0x01, 0x0a, 0x12, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, - 0x76, 0x36, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x34, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x22, 0xd5, 0x01, 0x0a, 0x1a, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x3c, + 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x69, - 0x6e, 0x67, 0x22, 0xd5, 0x01, 0x0a, 0x1a, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, - 0x36, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, - 0x76, 0x36, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6e, 0x67, 0x22, 0x58, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x3e, 0x0a, 0x08, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x73, 0x0a, 0x1d, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, + 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, + 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, + 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, + 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, + 0x70, 0x22, 0x6b, 0x0a, 0x1e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, + 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0xe9, + 0x01, 0x0a, 0x26, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x72, 0x63, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x72, 0x63, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x12, 0x4f, 0x0a, 0x06, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x34, 0x50, 0x69, 0x6e, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0x3c, 0x0a, 0x06, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x0d, 0x0a, 0x09, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, + 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x02, 0x22, 0xbd, 0x01, 0x0a, 0x12, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, + 0x36, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x34, + 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x10, - 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x22, 0x58, 0x0a, 0x16, 0x41, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, - 0x50, 0x69, 0x6e, 0x67, 0x12, 0x3e, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x73, 0x22, 0x73, 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, - 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x22, 0x6b, 0x0a, 0x1e, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x09, 0x72, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x22, 0xd5, 0x01, 0x0a, 0x1a, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x3c, + 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, + 0x67, 0x48, 0x00, 0x52, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x2b, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x21, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x08, 0x0a, 0x04, 0x70, 0x69, 0x6e, 0x67, 0x10, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x69, + 0x6e, 0x67, 0x22, 0x58, 0x0a, 0x16, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x3e, 0x0a, 0x08, + 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x22, 0x73, 0x0a, 0x1d, + 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, + 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, + 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, + 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, + 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, + 0x70, 0x22, 0x6b, 0x0a, 0x1e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, - 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0xe9, 0x01, 0x0a, 0x26, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, - 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x73, - 0x74, 0x49, 0x70, 0x12, 0x4f, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x72, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x1a, 0x3c, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x32, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x75, 0x63, 0x63, 0x65, - 0x65, 0x64, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, - 0x10, 0x02, 0x22, 0x8f, 0x03, 0x0a, 0x11, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, + 0x69, 0x6e, 0x67, 0x12, 0x49, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0xe9, + 0x01, 0x0a, 0x26, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, + 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x72, 0x63, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x72, 0x63, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x12, 0x4f, 0x0a, 0x06, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x49, 0x70, 0x76, 0x36, 0x50, 0x69, 0x6e, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0x3c, 0x0a, 0x06, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x0d, 0x0a, 0x09, 0x73, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, + 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x02, 0x22, 0x8f, 0x03, 0x0a, 0x11, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x12, 0x4b, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, - 0x67, 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, - 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x6e, 0x0a, 0x19, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x67, 0x72, - 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x49, 0x6e, 0x69, 0x74, - 0x69, 0x61, 0x74, 0x65, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x48, 0x01, 0x52, 0x17, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x47, - 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x1a, 0x52, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x48, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, - 0x74, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x1c, 0x0a, 0x1a, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, - 0x61, 0x74, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x22, 0x8f, 0x08, 0x0a, 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, + 0x12, 0x3a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x4b, 0x0a, 0x0c, + 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x6e, 0x0a, 0x19, 0x69, 0x6e, 0x69, + 0x74, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, + 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x42, 0x67, 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x05, 0x63, 0x65, 0x61, - 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x65, 0x61, 0x73, 0x65, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x48, 0x01, 0x52, 0x05, 0x63, 0x65, 0x61, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x57, - 0x0a, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x02, - 0x52, 0x12, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x12, 0x6f, 0x70, 0x65, 0x6e, 0x5f, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x42, 0x67, 0x70, 0x4f, 0x70, 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x48, 0x03, 0x52, 0x10, 0x6f, 0x70, 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x14, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x04, 0x52, 0x12, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, - 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x12, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x72, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x48, - 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x48, - 0x05, 0x52, 0x10, 0x68, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x72, 0x45, 0x78, 0x70, 0x69, - 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x67, 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, - 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x46, 0x69, 0x6e, 0x69, 0x74, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x48, 0x06, 0x52, 0x17, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, - 0x36, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x07, 0x52, 0x06, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0xbd, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x63, 0x65, 0x61, 0x73, 0x65, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, - 0x02, 0x12, 0x16, 0x0a, 0x12, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x72, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x66, - 0x69, 0x6e, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x68, - 0x69, 0x6e, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x07, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x65, 0x61, 0x73, 0x65, 0x42, 0x17, 0x0a, 0x15, - 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x17, 0x0a, 0x15, - 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x42, 0x1d, 0x0a, 0x1b, - 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, - 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x85, 0x01, 0x0a, 0x28, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x49, 0x6e, 0x69, 0x74, - 0x69, 0x61, 0x74, 0x65, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x65, - 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xde, - 0x01, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x32, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x69, - 0x6e, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x69, - 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x69, 0x6e, 0x67, 0x49, 0x70, 0x76, 0x34, 0x48, 0x01, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, - 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x49, 0x70, 0x76, 0x36, - 0x48, 0x02, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x1a, 0x35, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, - 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, - 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x22, - 0x5e, 0x0a, 0x08, 0x50, 0x69, 0x6e, 0x67, 0x49, 0x70, 0x76, 0x34, 0x12, 0x1e, 0x0a, 0x08, 0x73, - 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x64, - 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x64, - 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x22, - 0x5e, 0x0a, 0x08, 0x50, 0x69, 0x6e, 0x67, 0x49, 0x70, 0x76, 0x36, 0x12, 0x1e, 0x0a, 0x08, 0x73, - 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x64, - 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x64, - 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x22, - 0x36, 0x0a, 0x0b, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, - 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x65, 0x6e, - 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x3b, 0x0a, 0x0c, 0x50, 0x69, 0x6e, 0x67, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2b, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x73, 0x22, 0xde, 0x01, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, - 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x3b, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, - 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, - 0x10, 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xee, 0x05, 0x0a, 0x0e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x01, 0x52, - 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, - 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, - 0x02, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x05, 0x62, 0x67, - 0x70, 0x76, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x48, 0x03, 0x52, 0x05, 0x62, 0x67, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, - 0x33, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x04, 0x52, 0x05, 0x62, 0x67, 0x70, 0x76, - 0x36, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x69, 0x73, 0x69, 0x73, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x05, 0x52, 0x04, 0x69, - 0x73, 0x69, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x03, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x06, 0x52, 0x03, 0x6c, - 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x07, 0x52, 0x04, - 0x6c, 0x61, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x08, - 0x52, 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, 0x72, 0x73, 0x76, - 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, - 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x48, 0x09, 0x52, 0x04, 0x72, 0x73, 0x76, 0x70, 0x88, 0x01, 0x01, 0x1a, 0x7c, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x72, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, - 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, - 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x34, 0x10, 0x03, 0x12, 0x09, 0x0a, - 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x73, 0x69, 0x73, - 0x10, 0x05, 0x12, 0x07, 0x0a, 0x03, 0x6c, 0x61, 0x67, 0x10, 0x06, 0x12, 0x08, 0x0a, 0x04, 0x6c, - 0x61, 0x63, 0x70, 0x10, 0x07, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x10, 0x08, 0x12, - 0x08, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x10, 0x09, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x67, 0x70, 0x76, 0x34, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x67, 0x70, 0x76, 0x36, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, - 0x73, 0x69, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6c, 0x61, 0x67, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x6c, 0x61, 0x63, 0x70, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x6c, 0x64, 0x70, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x72, 0x73, 0x76, 0x70, 0x22, 0xfa, 0x05, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x0c, 0x70, 0x6f, 0x72, - 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x52, 0x0b, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, - 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x66, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x12, 0x35, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0c, 0x62, 0x67, 0x70, 0x76, - 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x35, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, - 0x36, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x52, 0x0c, 0x62, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, - 0x32, 0x0a, 0x0c, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x69, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x12, 0x2f, 0x0a, 0x0b, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, - 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0a, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x6c, 0x61, 0x63, - 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x6c, 0x6c, 0x64, 0x70, - 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, - 0x0b, 0x6c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, - 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0a, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x52, 0x0b, 0x72, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x1a, 0xc5, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x67, 0x70, - 0x76, 0x34, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, - 0x62, 0x67, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x04, 0x12, - 0x10, 0x0a, 0x0c, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, - 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x09, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0xe5, 0x02, 0x0a, 0x12, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, - 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, - 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, - 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xe2, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xd2, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x10, 0x01, 0x12, 0x0c, - 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, - 0x6c, 0x69, 0x6e, 0x6b, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, - 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, - 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x07, 0x12, - 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x08, 0x12, 0x12, 0x0a, - 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, - 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, - 0x61, 0x74, 0x65, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, - 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0b, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0c, 0x22, 0x8b, 0x07, 0x0a, 0x0a, - 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, - 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, - 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, - 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, - 0x74, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, 0x04, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x5f, 0x72, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x48, 0x05, 0x52, 0x08, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x48, 0x06, 0x52, 0x07, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x48, 0x07, 0x52, 0x07, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, - 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x48, 0x09, 0x52, 0x0c, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, - 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x48, - 0x0b, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x0c, 0x52, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x88, 0x01, - 0x01, 0x1a, 0x31, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x6b, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, - 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x3c, 0x0a, 0x07, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x22, - 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, - 0x10, 0x02, 0x1a, 0x3d, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, 0x31, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, - 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, - 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, - 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, - 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, 0xf7, 0x02, 0x0a, 0x12, 0x46, 0x6c, - 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6c, 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, - 0x4b, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x0e, - 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x97, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x6c, 0x42, 0x67, 0x70, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x47, 0x72, 0x61, 0x63, + 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x48, 0x01, 0x52, 0x17, 0x69, + 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x47, 0x72, 0x61, 0x63, 0x65, 0x66, 0x75, 0x6c, 0x52, + 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x52, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x48, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, + 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x01, 0x12, 0x1d, + 0x0a, 0x19, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x63, 0x65, + 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x10, 0x02, 0x42, 0x0f, 0x0a, + 0x0d, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x1c, + 0x0a, 0x1a, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x5f, 0x67, 0x72, 0x61, 0x63, + 0x65, 0x66, 0x75, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x22, 0x8f, 0x08, 0x0a, + 0x1d, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, + 0x67, 0x70, 0x4e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x14, + 0x0a, 0x05, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x05, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x42, 0x67, 0x70, 0x4e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x33, 0x0a, 0x05, 0x63, 0x65, 0x61, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, + 0x43, 0x65, 0x61, 0x73, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x01, 0x52, 0x05, 0x63, 0x65, + 0x61, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x42, 0x67, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x02, 0x52, 0x12, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, + 0x51, 0x0a, 0x12, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x4f, 0x70, 0x65, 0x6e, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x03, 0x52, 0x10, 0x6f, + 0x70, 0x65, 0x6e, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, + 0x01, 0x01, 0x12, 0x57, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x48, 0x04, 0x52, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x51, 0x0a, 0x12, 0x68, + 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x48, 0x6f, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x72, + 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x48, 0x05, 0x52, 0x10, 0x68, 0x6f, 0x6c, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x72, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x67, + 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, + 0x67, 0x70, 0x46, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, + 0x68, 0x69, 0x6e, 0x65, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x06, 0x52, 0x17, 0x66, 0x69, 0x6e, + 0x69, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x42, 0x67, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x48, 0x07, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, + 0xbd, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xb2, 0x01, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x63, 0x65, 0x61, 0x73, 0x65, 0x10, 0x01, 0x12, + 0x18, 0x0a, 0x14, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x6f, 0x70, 0x65, + 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, + 0x03, 0x12, 0x18, 0x0a, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x04, 0x12, 0x16, 0x0a, 0x12, 0x68, + 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x64, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x07, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x65, 0x61, 0x73, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x5f, 0x68, 0x65, 0x61, 0x64, 0x65, 0x72, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x68, 0x6f, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x72, 0x5f, 0x65, 0x78, 0x70, + 0x69, 0x72, 0x65, 0x64, 0x42, 0x1d, 0x0a, 0x1b, 0x5f, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x65, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x85, + 0x01, 0x0a, 0x28, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x42, 0x67, 0x70, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x74, 0x65, 0x47, 0x72, 0x61, 0x63, + 0x65, 0x66, 0x75, 0x6c, 0x52, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, + 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x09, 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x72, 0x65, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x48, 0x00, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x65, 0x6c, 0x61, + 0x79, 0x88, 0x01, 0x01, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xde, 0x01, 0x0a, 0x04, 0x50, 0x69, 0x6e, 0x67, 0x12, + 0x32, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x49, 0x70, 0x76, 0x34, + 0x48, 0x01, 0x52, 0x04, 0x69, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x04, 0x69, + 0x70, 0x76, 0x36, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x69, 0x6e, 0x67, 0x49, 0x70, 0x76, 0x36, 0x48, 0x02, 0x52, 0x04, 0x69, 0x70, 0x76, 0x36, + 0x88, 0x01, 0x01, 0x1a, 0x35, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x2b, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, + 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x22, 0x5e, 0x0a, 0x08, 0x50, 0x69, 0x6e, 0x67, 0x49, + 0x70, 0x76, 0x34, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x22, 0x5e, 0x0a, 0x08, 0x50, 0x69, 0x6e, 0x67, 0x49, + 0x70, 0x76, 0x36, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, 0x49, 0x70, 0x88, 0x01, 0x01, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x73, 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x64, 0x73, 0x74, 0x5f, 0x69, 0x70, 0x22, 0x36, 0x0a, 0x0b, 0x50, 0x69, 0x6e, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x27, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, + 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x09, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x69, 0x6e, 0x67, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, + 0x3b, 0x0a, 0x0c, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x2b, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x52, 0x09, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x73, 0x22, 0xde, 0x01, 0x0a, + 0x08, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1e, 0x0a, 0x08, 0x73, 0x72, 0x63, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x73, + 0x72, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x64, 0x73, 0x74, + 0x5f, 0x69, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x64, 0x73, 0x74, + 0x49, 0x70, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x02, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x3b, 0x0a, + 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x10, 0x01, 0x12, 0x0d, - 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, 0x12, 0x0d, 0x0a, - 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, - 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x07, - 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x73, 0x22, 0xa8, 0x03, 0x0a, 0x17, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, - 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, - 0x1d, 0x0a, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, - 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, - 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2d, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x66, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x46, 0x69, - 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x88, 0x01, - 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x79, 0x0a, + 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x10, 0x01, 0x12, 0x0b, 0x0a, + 0x07, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x10, 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x73, + 0x72, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x64, 0x73, 0x74, 0x5f, + 0x69, 0x70, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0xee, 0x05, + 0x0a, 0x0e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x30, + 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x01, 0x52, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x30, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x02, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x88, + 0x01, 0x01, 0x12, 0x33, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x03, 0x52, 0x05, 0x62, + 0x67, 0x70, 0x76, 0x34, 0x88, 0x01, 0x01, 0x12, 0x33, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x48, 0x04, 0x52, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x04, + 0x69, 0x73, 0x69, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x48, 0x05, 0x52, 0x04, 0x69, 0x73, 0x69, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2d, + 0x0a, 0x03, 0x6c, 0x61, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x48, 0x06, 0x52, 0x03, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, + 0x04, 0x6c, 0x61, 0x63, 0x70, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x48, 0x07, 0x52, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x30, 0x0a, 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x08, 0x52, 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x30, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x09, 0x52, 0x04, 0x72, 0x73, 0x76, 0x70, + 0x88, 0x01, 0x01, 0x1a, 0x7c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x72, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, - 0x5f, 0x74, 0x78, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, - 0x72, 0x78, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, - 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x04, - 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, - 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x06, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x69, 0x6e, 0x63, - 0x6c, 0x75, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, - 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0x4f, - 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, - 0xb9, 0x06, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, - 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x78, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x78, - 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x08, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x48, 0x04, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, - 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, - 0x72, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x48, 0x05, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x5f, 0x74, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x48, 0x06, 0x52, 0x07, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, - 0x5f, 0x72, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x48, 0x07, 0x52, 0x07, 0x62, 0x79, 0x74, - 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x48, - 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, - 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x09, 0x52, 0x0c, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, 0x52, 0x04, 0x6c, - 0x6f, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x48, 0x0b, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x31, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4c, - 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x0c, 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0e, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x01, + 0x12, 0x08, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x67, + 0x70, 0x76, 0x34, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x62, 0x67, 0x70, 0x76, 0x36, 0x10, 0x04, + 0x12, 0x08, 0x0a, 0x04, 0x69, 0x73, 0x69, 0x73, 0x10, 0x05, 0x12, 0x07, 0x0a, 0x03, 0x6c, 0x61, + 0x67, 0x10, 0x06, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x61, 0x63, 0x70, 0x10, 0x07, 0x12, 0x08, 0x0a, + 0x04, 0x6c, 0x6c, 0x64, 0x70, 0x10, 0x08, 0x12, 0x08, 0x0a, 0x04, 0x72, 0x73, 0x76, 0x70, 0x10, + 0x09, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x66, 0x6c, 0x6f, 0x77, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x62, 0x67, 0x70, 0x76, 0x34, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x62, 0x67, 0x70, + 0x76, 0x36, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x73, 0x69, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, + 0x6c, 0x61, 0x67, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6c, 0x6c, 0x64, 0x70, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x72, 0x73, 0x76, 0x70, 0x22, 0xfa, + 0x05, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x32, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, + 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x70, 0x6f, 0x72, 0x74, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x66, 0x6c, + 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x35, 0x0a, 0x0d, 0x62, 0x67, 0x70, + 0x76, 0x34, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x52, 0x0c, 0x62, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x12, 0x35, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, + 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0c, 0x62, 0x67, 0x70, 0x76, 0x36, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x69, 0x73, 0x69, 0x73, 0x5f, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, + 0x69, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x2f, 0x0a, 0x0b, 0x6c, + 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x52, 0x0a, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, + 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x08, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x52, 0x0b, 0x6c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x12, 0x32, 0x0a, 0x0c, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, + 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x6c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x12, 0x32, 0x0a, 0x0c, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0b, 0x72, 0x73, 0x76, + 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x1a, 0xc5, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0xba, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, + 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x01, 0x12, + 0x10, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, + 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x34, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x76, 0x36, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x73, 0x69, 0x73, 0x5f, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x6c, 0x61, 0x67, + 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x61, + 0x63, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, + 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x08, 0x12, 0x10, + 0x0a, 0x0c, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x10, 0x09, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0xe5, 0x02, 0x0a, 0x12, + 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, + 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xe2, + 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xd2, + 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x6d, 0x69, 0x74, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x10, 0x03, 0x12, 0x0b, + 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, + 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x5f, 0x72, 0x78, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, + 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0a, 0x12, 0x11, 0x0a, + 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0b, + 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x10, 0x0c, 0x22, 0x8b, 0x07, 0x0a, 0x0a, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x04, + 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x04, 0x6c, 0x69, 0x6e, 0x6b, 0x88, 0x01, 0x01, + 0x12, 0x3b, 0x0a, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x03, 0x52, 0x07, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, + 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, + 0x48, 0x04, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x03, 0x48, 0x05, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x03, 0x48, 0x06, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x03, 0x48, 0x07, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, + 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x02, 0x48, 0x09, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, + 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, + 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0b, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x74, 0x72, 0x61, + 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0c, 0x52, 0x08, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x31, 0x0a, 0x04, 0x4c, 0x69, 0x6e, + 0x6b, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, + 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x3c, 0x0a, 0x07, + 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, + 0x07, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, 0x02, 0x1a, 0x3d, 0x0a, 0x08, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, + 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x63, 0x61, 0x70, + 0x74, 0x75, 0x72, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, + 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, + 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, + 0x72, 0x61, 0x74, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, + 0x74, 0x22, 0xf7, 0x02, 0x0a, 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6c, 0x6f, 0x77, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6c, + 0x6f, 0x77, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x0e, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x52, 0x0d, 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x1a, 0x49, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, 0x3d, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x70, 0x61, 0x75, 0x73, 0x65, 0x64, 0x10, 0x03, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x74, 0x78, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x78, 0x42, 0x0b, - 0x0a, 0x09, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, - 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, - 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, - 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x6f, 0x73, 0x73, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x9b, 0x04, 0x0a, 0x10, + 0x72, 0x69, 0x63, 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x48, 0x00, 0x52, 0x0d, 0x74, 0x61, + 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x97, + 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x87, + 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x74, 0x72, 0x61, 0x6e, + 0x73, 0x6d, 0x69, 0x74, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x5f, 0x74, 0x78, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, + 0x72, 0x78, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, + 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x05, + 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, + 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x07, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x74, 0x61, 0x67, + 0x67, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0xa8, 0x03, 0x0a, 0x17, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x12, 0x26, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x08, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, - 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, - 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, - 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x02, 0x48, 0x04, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, - 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x48, - 0x05, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, - 0x48, 0x06, 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0a, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x07, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, - 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x08, 0x52, 0x07, 0x6c, - 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, - 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, - 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, - 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x42, 0x0d, - 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x42, 0x0a, 0x0a, - 0x08, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x22, 0x6f, 0x0a, 0x0d, 0x46, 0x6c, 0x6f, - 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xac, 0x01, 0x0a, 0x12, 0x46, - 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x68, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x03, 0x68, 0x65, 0x78, 0x88, 0x01, 0x01, 0x1a, 0x2a, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x20, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, - 0x03, 0x68, 0x65, 0x78, 0x10, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x68, 0x65, 0x78, 0x22, 0xa2, 0x01, 0x0a, 0x0f, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x31, 0x0a, - 0x12, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x10, 0x66, 0x69, 0x72, - 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x0f, 0x6c, - 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x88, 0x01, - 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x61, 0x73, - 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x22, 0xa8, - 0x01, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, - 0x12, 0x22, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x09, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x4e, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, - 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x69, - 0x6d, 0x75, 0x6d, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x76, 0x65, 0x72, - 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x09, - 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, - 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, - 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, - 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x73, 0x22, 0xf8, 0x03, 0x0a, 0x13, 0x42, 0x67, - 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x12, 0x4c, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xf3, - 0x02, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xe3, - 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, - 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x04, 0x12, - 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x08, 0x12, - 0x0e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x09, 0x12, - 0x12, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, - 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0b, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, - 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, - 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0d, 0x12, 0x1a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x10, 0x0e, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x10, 0x0f, 0x22, 0xb4, 0x0a, 0x0a, 0x0b, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, - 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, - 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, - 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x03, 0x52, 0x10, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x73, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x2c, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x48, 0x04, 0x52, 0x0e, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, - 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, - 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x05, 0x52, 0x12, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x53, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, - 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x48, 0x06, 0x52, 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, - 0x73, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x48, 0x07, 0x52, 0x0b, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x48, 0x08, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, - 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x09, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x2a, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0a, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, - 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, - 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0b, 0x52, 0x0e, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, - 0x76, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x6b, 0x65, - 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0c, 0x52, 0x12, 0x6b, 0x65, 0x65, 0x70, 0x61, - 0x6c, 0x69, 0x76, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x32, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0d, 0x52, 0x11, - 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x0e, 0x52, 0x15, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x40, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x0f, 0x52, 0x08, 0x66, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, - 0x01, 0x01, 0x1a, 0x39, 0x0a, 0x0c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, - 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x76, 0x0a, - 0x08, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x6a, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x64, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, - 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, - 0x69, 0x76, 0x65, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, - 0x72, 0x6d, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, - 0x68, 0x65, 0x64, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, - 0x0a, 0x0e, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, - 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x42, 0x12, 0x0a, - 0x10, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, - 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0d, 0x0a, - 0x0b, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, - 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, - 0x12, 0x0a, 0x10, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, - 0x65, 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, - 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, - 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, - 0x6e, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xf8, 0x03, 0x0a, 0x13, - 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, - 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x1a, 0xf3, 0x02, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x22, 0xe3, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x16, 0x0a, - 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, - 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, - 0x04, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, - 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, - 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, - 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, - 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0b, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x65, - 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0d, 0x12, 0x1a, 0x0a, 0x16, 0x6e, - 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0e, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, - 0x74, 0x61, 0x74, 0x65, 0x10, 0x0f, 0x22, 0xb4, 0x0a, 0x0a, 0x0b, 0x42, 0x67, 0x70, 0x76, 0x36, + 0x73, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x07, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x63, 0x6c, + 0x75, 0x64, 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, + 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x88, 0x01, 0x01, 0x12, + 0x50, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x46, 0x69, 0x6c, + 0x74, 0x65, 0x72, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x12, 0x32, 0x0a, 0x07, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x07, 0x66, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x88, 0x01, 0x0a, 0x0b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x79, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, + 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x01, 0x12, 0x0d, 0x0a, + 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, + 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x05, 0x12, 0x12, 0x0a, 0x0e, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x06, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x42, 0x18, 0x0a, 0x16, + 0x5f, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x22, 0x4f, 0x0a, 0x13, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x17, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xb9, 0x06, 0x0a, 0x0a, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x4c, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, - 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0c, 0x73, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, - 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x10, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x30, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, - 0x74, 0x69, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x03, 0x52, 0x10, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x73, 0x41, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x48, 0x04, 0x52, 0x0e, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x35, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, - 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x05, - 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, - 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x48, 0x06, 0x52, 0x16, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x48, 0x07, 0x52, 0x0b, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, - 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x48, 0x08, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, - 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x09, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0a, 0x52, 0x0d, 0x6f, 0x70, - 0x65, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, - 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, - 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0b, 0x52, 0x0e, 0x6b, 0x65, 0x65, 0x70, 0x61, - 0x6c, 0x69, 0x76, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, + 0x1c, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, + 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, + 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x74, + 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x08, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x48, 0x04, + 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, + 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, + 0x48, 0x05, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x03, 0x48, 0x06, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x03, 0x48, 0x07, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x02, 0x48, 0x09, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, + 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x02, 0x48, 0x0a, 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x39, + 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x0b, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x07, 0x6c, 0x61, 0x74, + 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x48, 0x0c, + 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0e, + 0x74, 0x61, 0x67, 0x67, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x0f, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x61, 0x67, 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x52, 0x0d, 0x74, 0x61, 0x67, + 0x67, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x1a, 0x49, 0x0a, 0x08, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x22, 0x3d, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x0b, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, + 0x73, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x70, 0x61, 0x75, + 0x73, 0x65, 0x64, 0x10, 0x03, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x74, 0x78, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x6d, 0x69, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, + 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, + 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x61, 0x74, 0x65, + 0x6e, 0x63, 0x79, 0x22, 0x9b, 0x04, 0x0a, 0x10, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x61, 0x67, 0x67, + 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x26, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, + 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, + 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x04, 0x48, 0x00, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, + 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x04, 0x48, 0x01, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x48, 0x02, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x48, 0x03, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, + 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x48, 0x04, 0x52, 0x0c, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x48, 0x05, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x6c, 0x6f, + 0x73, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x48, 0x06, 0x52, 0x04, 0x6c, 0x6f, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x07, 0x52, + 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x31, + 0x0a, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4c, 0x61, 0x74, 0x65, + 0x6e, 0x63, 0x79, 0x48, 0x08, 0x52, 0x07, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x88, 0x01, + 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, + 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, + 0x79, 0x22, 0x6f, 0x0a, 0x0d, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x22, 0xac, 0x01, 0x0a, 0x12, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x68, + 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x68, 0x65, 0x78, 0x88, + 0x01, 0x01, 0x1a, 0x2a, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x20, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x68, 0x65, 0x78, 0x10, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x68, 0x65, + 0x78, 0x22, 0xa2, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x31, 0x0a, 0x12, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x01, 0x48, 0x00, 0x52, 0x10, 0x66, 0x69, 0x72, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6c, 0x61, 0x73, 0x74, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x01, 0x48, 0x01, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x66, 0x69, + 0x72, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, + 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x22, 0xa8, 0x01, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x22, 0x0a, 0x0a, 0x6d, 0x69, 0x6e, 0x69, + 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x09, + 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x4e, 0x73, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, + 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, + 0x48, 0x01, 0x52, 0x09, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x4e, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x22, 0x0a, 0x0a, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6e, 0x73, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x01, 0x48, 0x02, 0x52, 0x09, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x4e, + 0x73, 0x88, 0x01, 0x01, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, + 0x5f, 0x6e, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6d, 0x61, 0x78, 0x69, 0x6d, 0x75, 0x6d, 0x5f, + 0x6e, 0x73, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x6e, + 0x73, 0x22, 0xf8, 0x03, 0x0a, 0x13, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x65, 0x65, + 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x70, + 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, + 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x29, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xf3, 0x02, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, + 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, + 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x06, 0x12, + 0x10, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, + 0x07, 0x12, 0x14, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0a, 0x12, 0x13, 0x0a, 0x0f, 0x6b, + 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0b, + 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x6e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, + 0x0d, 0x12, 0x1a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0e, 0x12, 0x0d, 0x0a, + 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x0f, 0x22, 0xb4, 0x0a, 0x0a, + 0x0b, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x01, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, + 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x02, 0x52, 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, + 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x03, 0x52, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x41, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x04, 0x52, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, + 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x05, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, + 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3d, 0x0a, + 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x06, 0x52, 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, + 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x07, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x53, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x48, 0x08, + 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x48, 0x09, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x0a, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, + 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0b, 0x52, + 0x0e, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x0c, 0x52, 0x12, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, + 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x0d, 0x52, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, + 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0e, 0x52, 0x15, + 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x46, 0x73, + 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0f, 0x52, 0x08, 0x66, + 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x39, 0x0a, 0x0c, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, + 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x76, 0x0a, 0x08, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x22, 0x6a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x64, + 0x6c, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x03, 0x12, 0x0c, 0x0a, + 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x6f, + 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, + 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x06, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, + 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, + 0x74, 0x69, 0x73, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, + 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, + 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, + 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6b, 0x65, 0x65, 0x70, + 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0c, 0x52, 0x12, 0x6b, 0x65, 0x65, - 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0d, - 0x52, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0e, 0x52, 0x15, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x40, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, - 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0f, 0x52, 0x08, 0x66, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x88, 0x01, 0x01, 0x1a, 0x39, 0x0a, 0x0c, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, - 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, - 0x76, 0x0a, 0x08, 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x6a, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x64, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x0b, - 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x73, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x72, 0x6d, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, - 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, - 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x42, - 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, - 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1b, 0x0a, 0x19, - 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, - 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x11, - 0x0a, 0x0f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, - 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x15, 0x0a, - 0x13, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, - 0x73, 0x65, 0x6e, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xac, 0x06, - 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, - 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xa5, 0x05, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, - 0x61, 0x6d, 0x65, 0x73, 0x22, 0x95, 0x05, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, - 0x0a, 0x0e, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, - 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x10, 0x03, 0x12, 0x1c, 0x0a, - 0x18, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, - 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x6c, - 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, - 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x05, 0x12, 0x21, 0x0a, - 0x1d, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x06, - 0x12, 0x25, 0x0a, 0x21, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x70, 0x73, - 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x08, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x31, 0x5f, - 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x09, 0x12, - 0x10, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, - 0x0a, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0b, 0x12, 0x0f, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x6c, 0x73, - 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0c, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x6c, - 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0d, 0x12, 0x12, 0x0a, - 0x0e, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x10, - 0x0e, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, - 0x66, 0x6c, 0x61, 0x70, 0x10, 0x0f, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x10, 0x10, 0x12, 0x1c, 0x0a, 0x18, - 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, - 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x11, 0x12, 0x20, 0x0a, 0x1c, 0x6c, 0x32, - 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, - 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x12, 0x12, 0x21, 0x0a, 0x1d, - 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, - 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x13, 0x12, - 0x25, 0x0a, 0x21, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x10, 0x14, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, - 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x15, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x70, - 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x16, 0x12, 0x10, - 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x17, - 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x10, 0x18, 0x12, 0x0f, 0x0a, 0x0b, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x19, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, - 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x1a, 0x22, 0xcc, 0x0f, 0x0a, - 0x0a, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x0c, - 0x6c, 0x31, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x2b, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, - 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x0d, 0x6c, 0x31, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x18, - 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, - 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x03, - 0x52, 0x15, 0x6c, 0x31, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, 0x65, 0x6c, - 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1c, 0x6c, 0x31, - 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, - 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x04, 0x52, 0x19, 0x6c, 0x31, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, - 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x44, 0x0a, 0x1d, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, - 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x05, 0x52, 0x18, 0x6c, 0x31, 0x50, 0x6f, 0x69, - 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x53, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x21, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, - 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x06, 0x52, 0x1c, 0x6c, 0x31, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, - 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, - 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x48, 0x07, - 0x52, 0x0e, 0x6c, 0x31, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x53, 0x69, 0x7a, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, - 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x48, 0x08, 0x52, 0x0a, 0x6c, 0x31, 0x50, - 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x31, - 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x09, 0x52, 0x0e, 0x6c, 0x31, 0x50, 0x73, 0x6e, 0x70, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, - 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x0a, 0x52, 0x0a, 0x6c, 0x31, 0x43, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0b, 0x52, 0x0e, 0x6c, 0x31, - 0x43, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x23, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x0c, 0x52, 0x09, 0x6c, 0x31, 0x4c, 0x73, 0x70, 0x53, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0d, 0x52, - 0x0d, 0x6c, 0x31, 0x4c, 0x73, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, - 0x5f, 0x75, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0e, 0x52, 0x0c, 0x6c, 0x32, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, - 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x18, - 0x10, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0f, 0x52, 0x0d, 0x6c, 0x32, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x18, 0x6c, 0x32, 0x5f, + 0x76, 0x65, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x19, 0x0a, 0x17, 0x5f, 0x6e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x22, 0xf8, 0x03, 0x0a, 0x13, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, + 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x09, 0x70, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0c, 0x63, 0x6f, + 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, + 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, + 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xf3, 0x02, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, + 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xe3, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x02, 0x12, 0x15, 0x0a, + 0x11, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, + 0x65, 0x64, 0x10, 0x03, 0x12, 0x13, 0x0a, 0x0f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x04, 0x12, 0x18, 0x0a, 0x14, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x12, 0x1c, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, + 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, + 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x10, 0x07, 0x12, 0x14, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x09, 0x12, 0x12, 0x0a, 0x0e, 0x6f, 0x70, 0x65, + 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0a, 0x12, 0x13, 0x0a, + 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, + 0x10, 0x0b, 0x12, 0x17, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0c, 0x12, 0x16, 0x0a, 0x12, 0x6e, + 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x10, 0x0d, 0x12, 0x1a, 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0e, 0x12, + 0x0d, 0x0a, 0x09, 0x66, 0x73, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x10, 0x0f, 0x22, 0xb4, + 0x0a, 0x0a, 0x0b, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x31, 0x0a, 0x12, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x02, 0x52, 0x10, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x11, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x03, 0x52, 0x10, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x41, 0x64, 0x76, + 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x04, 0x52, 0x0e, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x35, 0x0a, 0x14, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x05, 0x52, 0x12, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, + 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x3d, 0x0a, 0x18, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x06, 0x52, 0x16, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, + 0x0a, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x07, 0x52, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x53, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x08, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x48, 0x09, 0x52, 0x09, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x6f, 0x70, + 0x65, 0x6e, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x0a, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, + 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x0b, 0x52, 0x0e, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x53, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, + 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x0c, 0x52, 0x12, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x52, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x6e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, + 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0d, 0x52, 0x11, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x3a, + 0x0a, 0x16, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, + 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0e, + 0x52, 0x15, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x09, 0x66, 0x73, + 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x76, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, + 0x46, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0f, 0x52, + 0x08, 0x66, 0x73, 0x6d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x39, 0x0a, 0x0c, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x29, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, + 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x76, 0x0a, 0x08, 0x46, 0x73, 0x6d, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x22, 0x6a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, + 0x69, 0x64, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, + 0x74, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x03, 0x12, + 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0f, 0x0a, + 0x0b, 0x6f, 0x70, 0x65, 0x6e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x10, 0x05, 0x12, 0x0f, + 0x0a, 0x0b, 0x65, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x64, 0x10, 0x06, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x73, 0x5f, 0x61, 0x64, 0x76, + 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x17, 0x0a, 0x15, 0x5f, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x77, + 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x6f, 0x70, 0x65, 0x6e, + 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x73, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6b, 0x65, + 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x16, 0x0a, + 0x14, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x19, 0x0a, 0x17, + 0x5f, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x73, 0x6d, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0xac, 0x06, 0x0a, 0x12, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, + 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, + 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xa5, 0x05, 0x0a, + 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x95, 0x05, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x31, + 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x10, 0x02, 0x12, + 0x14, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x10, 0x03, 0x12, 0x1c, 0x0a, 0x18, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, + 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x20, 0x0a, 0x1c, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, + 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x10, 0x05, 0x12, 0x21, 0x0a, 0x1d, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, + 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x06, 0x12, 0x25, 0x0a, 0x21, 0x6c, 0x31, 0x5f, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, + 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x07, 0x12, + 0x10, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, + 0x08, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x09, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x63, 0x73, + 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0a, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x31, 0x5f, + 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0b, 0x12, + 0x0f, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x0c, + 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x0e, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x10, 0x0f, 0x12, 0x14, + 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x10, 0x10, 0x12, 0x1c, 0x0a, 0x18, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, + 0x10, 0x11, 0x12, 0x20, 0x0a, 0x1c, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x10, 0x12, 0x12, 0x21, 0x0a, 0x1d, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, + 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x13, 0x12, 0x25, 0x0a, 0x21, 0x6c, 0x32, 0x5f, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, + 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x14, 0x12, 0x10, + 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x15, + 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x10, 0x16, 0x12, 0x10, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, + 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x17, 0x12, 0x14, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x63, + 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x18, 0x12, 0x0f, + 0x0a, 0x0b, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x10, 0x19, 0x12, + 0x13, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x10, 0x1a, 0x22, 0xcc, 0x0f, 0x0a, 0x0a, 0x49, 0x73, 0x69, 0x73, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, + 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x0c, 0x6c, 0x31, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x31, 0x5f, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x02, 0x52, 0x0d, 0x6c, 0x31, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x18, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x03, 0x52, 0x15, 0x6c, 0x31, 0x42, 0x72, 0x6f, 0x61, + 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1c, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, + 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x48, 0x04, 0x52, 0x19, 0x6c, 0x31, 0x42, 0x72, + 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1d, 0x6c, 0x31, 0x5f, 0x70, + 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, + 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x05, 0x52, 0x18, 0x6c, 0x31, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, + 0x0a, 0x21, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x48, 0x06, 0x52, 0x1c, 0x6c, 0x31, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, + 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, + 0x6c, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x48, 0x07, 0x52, 0x0e, 0x6c, 0x31, 0x44, 0x61, 0x74, 0x61, + 0x62, 0x61, 0x73, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, + 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x08, 0x52, 0x0a, 0x6c, 0x31, 0x50, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x48, 0x09, 0x52, 0x0e, + 0x6c, 0x31, 0x50, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, + 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0a, 0x52, 0x0a, 0x6c, 0x31, 0x43, 0x73, 0x6e, + 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x31, 0x5f, 0x63, + 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x0b, 0x52, 0x0e, 0x6c, 0x31, 0x43, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x6c, 0x31, 0x5f, 0x6c, 0x73, + 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0c, 0x52, 0x09, + 0x6c, 0x31, 0x4c, 0x73, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, + 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0d, 0x52, 0x0d, 0x6c, 0x31, 0x4c, 0x73, 0x70, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x32, 0x5f, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x0e, 0x52, 0x0c, 0x6c, 0x32, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x55, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0f, 0x52, + 0x0d, 0x6c, 0x32, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x3c, 0x0a, 0x18, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, + 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x10, 0x52, 0x15, 0x6c, 0x32, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, + 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x44, 0x0a, 0x1c, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, + 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, + 0x12, 0x20, 0x01, 0x28, 0x05, 0x48, 0x11, 0x52, 0x19, 0x6c, 0x32, 0x42, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1d, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, + 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x48, 0x12, 0x52, 0x18, + 0x6c, 0x32, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, + 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x21, 0x6c, + 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, + 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x48, 0x13, 0x52, 0x1c, 0x6c, 0x32, 0x50, 0x6f, 0x69, 0x6e, + 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x32, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x15, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x14, 0x52, 0x0e, 0x6c, 0x32, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, + 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x70, + 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x48, 0x15, + 0x52, 0x0a, 0x6c, 0x32, 0x50, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x2d, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x48, 0x16, 0x52, 0x0e, 0x6c, 0x32, 0x50, + 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, + 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x18, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x17, 0x52, 0x0a, 0x6c, 0x32, 0x43, 0x73, 0x6e, 0x70, 0x53, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x18, 0x52, 0x0e, 0x6c, 0x32, 0x43, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, + 0x65, 0x6e, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x48, 0x19, 0x52, 0x09, 0x6c, 0x32, 0x4c, + 0x73, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, + 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x1b, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x1a, 0x52, 0x0d, 0x6c, 0x32, 0x4c, 0x73, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, + 0x75, 0x70, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x31, 0x5f, 0x62, 0x72, + 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, + 0x65, 0x6e, 0x74, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, + 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, + 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, + 0x5f, 0x6c, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, + 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, + 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x31, 0x5f, 0x63, + 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x31, 0x5f, + 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x12, 0x0a, + 0x10, 0x5f, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x73, 0x5f, 0x75, 0x70, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x48, 0x10, 0x52, 0x15, 0x6c, - 0x32, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, - 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1c, 0x6c, 0x32, 0x5f, 0x62, 0x72, - 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x48, 0x11, 0x52, - 0x19, 0x6c, 0x32, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x48, 0x65, 0x6c, 0x6c, - 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, - 0x1d, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x13, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x12, 0x52, 0x18, 0x6c, 0x32, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, - 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x53, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x21, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, - 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, - 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x48, 0x13, - 0x52, 0x1c, 0x6c, 0x32, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x54, 0x6f, 0x50, 0x6f, 0x69, 0x6e, 0x74, - 0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, - 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, - 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x48, 0x14, 0x52, 0x0e, 0x6c, - 0x32, 0x44, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, - 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x48, 0x15, 0x52, 0x0a, 0x6c, 0x32, 0x50, 0x73, 0x6e, 0x70, - 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x6c, 0x32, 0x5f, 0x70, 0x73, - 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x16, 0x52, 0x0e, 0x6c, 0x32, 0x50, 0x73, 0x6e, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, - 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x48, 0x17, 0x52, 0x0a, - 0x6c, 0x32, 0x43, 0x73, 0x6e, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, - 0x10, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x48, 0x18, 0x52, 0x0e, 0x6c, 0x32, 0x43, 0x73, 0x6e, - 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0b, - 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x18, 0x1a, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x19, 0x52, 0x09, 0x6c, 0x32, 0x4c, 0x73, 0x70, 0x53, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x48, 0x1a, 0x52, 0x0d, 0x6c, 0x32, - 0x4c, 0x73, 0x70, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x31, 0x5f, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, - 0x31, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x42, 0x1b, - 0x0a, 0x19, 0x5f, 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, - 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, - 0x6c, 0x31, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, - 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x20, 0x0a, 0x1e, - 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, - 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x24, - 0x0a, 0x22, 0x5f, 0x6c, 0x31, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x31, 0x5f, 0x64, 0x61, 0x74, 0x61, - 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x31, - 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, - 0x31, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, - 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x31, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, - 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x31, 0x5f, 0x6c, 0x73, 0x70, - 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x32, - 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x75, 0x70, 0x42, 0x12, 0x0a, 0x10, - 0x5f, 0x6c, 0x32, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x70, - 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, - 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1f, 0x0a, - 0x1d, 0x5f, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, - 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x20, - 0x0a, 0x1e, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, - 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, - 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x32, 0x5f, 0x64, 0x61, - 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, - 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, - 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x32, 0x5f, 0x6c, - 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x32, 0x5f, 0x6c, - 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x22, 0xd4, 0x02, 0x0a, 0x11, - 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4a, - 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, + 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x6c, 0x32, 0x5f, 0x62, 0x72, 0x6f, + 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x6f, + 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, 0x65, 0x6c, + 0x6c, 0x6f, 0x73, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x6c, 0x32, 0x5f, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x74, 0x6f, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x68, + 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x13, + 0x0a, 0x11, 0x5f, 0x6c, 0x32, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x62, 0x61, 0x73, 0x65, 0x5f, 0x73, + 0x69, 0x7a, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, 0x5f, + 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x32, 0x5f, 0x70, 0x73, 0x6e, 0x70, + 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x6c, 0x32, + 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, + 0x32, 0x5f, 0x63, 0x73, 0x6e, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x64, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x73, 0x65, 0x6e, 0x74, 0x42, + 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x32, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x72, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x64, 0x22, 0xd4, 0x02, 0x0a, 0x11, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x67, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, + 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x1a, 0xd5, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x22, 0xc5, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, + 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x01, 0x12, 0x13, 0x0a, + 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x75, 0x70, + 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x04, + 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0c, + 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x07, + 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x0a, 0x22, 0xa9, 0x05, 0x0a, 0x09, 0x4c, + 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x02, 0x52, 0x0d, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x55, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, + 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x5f, 0x72, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, 0x04, 0x52, 0x08, 0x66, 0x72, 0x61, + 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x5f, 0x74, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x48, 0x05, 0x52, 0x07, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, + 0x73, 0x5f, 0x72, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x48, 0x06, 0x52, 0x07, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, + 0x48, 0x07, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, + 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, + 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x02, 0x48, 0x09, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, + 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, + 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, + 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x1a, 0x37, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x29, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, + 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x73, 0x5f, 0x75, 0x70, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, + 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, + 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, + 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, + 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, + 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x22, 0xdf, 0x03, 0x0a, 0x12, 0x4c, 0x61, 0x63, 0x70, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, + 0x09, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x08, 0x6c, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x6c, 0x61, + 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x6c, 0x61, 0x67, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, + 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xd5, 0x01, 0x0a, 0x0b, 0x43, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xc5, 0x01, 0x0a, 0x04, 0x45, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xab, 0x02, 0x0a, 0x0b, 0x43, + 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x9b, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, - 0x72, 0x78, 0x10, 0x06, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, - 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, - 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x10, 0x09, 0x12, - 0x11, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, - 0x10, 0x0a, 0x22, 0xa9, 0x05, 0x0a, 0x09, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x0b, 0x6f, 0x70, 0x65, - 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x4f, - 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, - 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x2b, 0x0a, 0x0f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, - 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x0d, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, - 0x03, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, - 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x03, 0x48, 0x04, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, - 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x03, 0x48, 0x05, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, - 0x12, 0x1e, 0x0a, 0x08, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x03, 0x48, 0x06, 0x52, 0x07, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, - 0x12, 0x29, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, - 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x48, 0x07, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x02, 0x48, 0x08, 0x52, 0x0c, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x52, - 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, - 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x48, 0x09, 0x52, - 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x54, 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x27, 0x0a, 0x0d, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x48, 0x0a, 0x52, 0x0b, 0x62, 0x79, 0x74, 0x65, 0x73, 0x52, - 0x78, 0x52, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x37, 0x0a, 0x0a, 0x4f, 0x70, 0x65, 0x72, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, - 0x02, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, - 0x70, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x5f, 0x75, 0x70, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x62, 0x79, 0x74, 0x65, - 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, - 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, - 0x79, 0x74, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x22, 0xdf, - 0x03, 0x0a, 0x12, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x67, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x12, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, + 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x61, 0x63, + 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, 0x12, 0x12, + 0x0a, 0x0e, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, + 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x10, 0x04, + 0x12, 0x0b, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x05, 0x12, 0x13, 0x0a, + 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, + 0x6c, 0x65, 0x10, 0x07, 0x12, 0x0e, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6e, 0x67, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6e, 0x67, 0x10, 0x09, 0x12, 0x0d, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x5f, 0x69, 0x64, 0x10, 0x0a, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, + 0x79, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, + 0x64, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, + 0x65, 0x79, 0x10, 0x0d, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, + 0x10, 0x0e, 0x12, 0x14, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x10, 0x0f, 0x22, 0xe4, 0x09, 0x0a, 0x0a, 0x4c, 0x61, 0x63, + 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x1e, 0x0a, 0x08, 0x6c, 0x61, 0x67, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x61, 0x67, + 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x14, 0x6c, 0x61, 0x67, 0x5f, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x11, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, + 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x0d, 0x6c, 0x61, 0x63, 0x70, 0x50, 0x61, + 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x61, + 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, 0x0d, 0x6c, 0x61, 0x63, 0x70, 0x50, 0x61, 0x63, 0x6b, 0x65, + 0x74, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x61, 0x63, 0x70, 0x5f, + 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, + 0x04, 0x52, 0x0c, 0x6c, 0x61, 0x63, 0x70, 0x52, 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x88, + 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x05, 0x52, 0x08, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x88, + 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x06, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x53, 0x0a, 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, + 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, + 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x07, + 0x52, 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x61, 0x62, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x48, 0x08, 0x52, 0x0c, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, + 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x88, + 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, + 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x48, 0x0a, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0b, + 0x52, 0x08, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, + 0x08, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x0c, 0x52, 0x07, 0x6f, 0x70, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, + 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x0d, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, + 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0e, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, + 0x72, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x6e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0f, 0x52, 0x07, 0x70, 0x6f, 0x72, + 0x74, 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, 0x2d, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x6e, + 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x10, 0x52, 0x0e, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, + 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x08, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x70, 0x61, 0x73, 0x73, 0x69, + 0x76, 0x65, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x07, 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, + 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x73, 0x68, 0x6f, 0x72, + 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x6c, 0x6f, 0x6e, 0x67, 0x10, 0x02, 0x1a, 0x45, 0x0a, + 0x0f, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x69, 0x6e, 0x5f, + 0x73, 0x79, 0x6e, 0x63, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x79, + 0x6e, 0x63, 0x10, 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, + 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x12, + 0x0a, 0x10, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, + 0x74, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, 0x5f, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x73, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, + 0x74, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x12, + 0x0a, 0x10, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, + 0x62, 0x6c, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6e, 0x67, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, + 0x69, 0x6e, 0x67, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, + 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0d, + 0x0a, 0x0b, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, + 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x22, + 0x95, 0x02, 0x0a, 0x12, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, + 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x1a, 0xab, 0x02, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x73, 0x22, 0x9b, 0x02, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, - 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, 0x10, - 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, - 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x72, - 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x10, 0x03, 0x12, 0x0c, 0x0a, 0x08, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, - 0x6f, 0x75, 0x74, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x06, 0x12, 0x10, 0x0a, 0x0c, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x07, 0x12, 0x0e, 0x0a, 0x0a, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x08, 0x12, 0x10, 0x0a, 0x0c, - 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x09, 0x12, 0x0d, - 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x10, 0x0a, 0x12, 0x0c, 0x0a, - 0x08, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x70, - 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x10, 0x0c, 0x12, 0x0f, 0x0a, 0x0b, 0x70, - 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x10, 0x0d, 0x12, 0x0c, 0x0a, 0x08, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x10, 0x0e, 0x12, 0x14, 0x0a, 0x10, 0x70, 0x61, - 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x10, 0x0f, - 0x22, 0xe4, 0x09, 0x0a, 0x0a, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, - 0x1e, 0x0a, 0x08, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x07, 0x6c, 0x61, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x34, 0x0a, 0x14, 0x6c, 0x61, 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, - 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, - 0x11, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, - 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, - 0x52, 0x0d, 0x6c, 0x61, 0x63, 0x70, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x52, 0x78, 0x88, - 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x65, - 0x74, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, 0x0d, 0x6c, - 0x61, 0x63, 0x70, 0x50, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, - 0x29, 0x0a, 0x0e, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, 0x04, 0x52, 0x0c, 0x6c, 0x61, 0x63, 0x70, 0x52, - 0x78, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x08, 0x61, 0x63, - 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x41, 0x63, - 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x05, 0x52, 0x08, 0x61, - 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x07, 0x74, 0x69, - 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x06, 0x52, 0x07, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x68, - 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x61, 0x63, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x07, 0x52, 0x0f, 0x73, 0x79, 0x6e, 0x63, 0x68, 0x72, - 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, - 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x08, 0x52, 0x0c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, - 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x23, 0x0a, 0x0a, 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, - 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x48, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6c, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0c, 0x64, 0x69, - 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x0a, 0x52, 0x0c, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, - 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0b, 0x52, 0x08, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6f, 0x70, 0x65, 0x72, 0x5f, 0x6b, 0x65, - 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0c, 0x52, 0x07, 0x6f, 0x70, 0x65, 0x72, 0x4b, - 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, - 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0d, 0x52, 0x09, 0x70, 0x61, 0x72, - 0x74, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x70, 0x61, 0x72, - 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0e, - 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x88, 0x01, 0x01, 0x12, - 0x1e, 0x0a, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x10, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x0f, 0x52, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x12, - 0x2d, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, - 0x6e, 0x75, 0x6d, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x48, 0x10, 0x52, 0x0e, 0x70, 0x61, 0x72, - 0x74, 0x6e, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, - 0x0a, 0x08, 0x41, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x22, 0x30, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x01, 0x12, - 0x0b, 0x0a, 0x07, 0x70, 0x61, 0x73, 0x73, 0x69, 0x76, 0x65, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x07, - 0x54, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x22, 0x2c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x73, 0x68, 0x6f, 0x72, 0x74, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x6c, - 0x6f, 0x6e, 0x67, 0x10, 0x02, 0x1a, 0x45, 0x0a, 0x0f, 0x53, 0x79, 0x6e, 0x63, 0x68, 0x72, 0x6f, - 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x65, 0x73, 0x1a, 0x92, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, + 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x66, 0x72, + 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x78, 0x10, 0x03, 0x12, + 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, + 0x64, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, + 0x61, 0x72, 0x64, 0x10, 0x05, 0x12, 0x10, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x6e, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x06, 0x22, 0x80, 0x03, 0x0a, 0x0a, 0x4c, 0x6c, 0x64, 0x70, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x03, 0x48, 0x01, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x08, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, 0x0d, + 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x78, 0x88, 0x01, 0x01, + 0x12, 0x2a, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, + 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x48, 0x04, 0x52, 0x0d, 0x66, 0x72, 0x61, 0x6d, + 0x65, 0x73, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, + 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x03, 0x48, 0x05, 0x52, 0x0b, 0x74, 0x6c, 0x76, 0x73, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x6e, 0x6b, + 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x48, 0x06, 0x52, 0x0b, 0x74, 0x6c, + 0x76, 0x73, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x5f, 0x72, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, + 0x78, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, + 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6c, 0x76, + 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6c, + 0x76, 0x73, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x22, 0xdc, 0x05, 0x0a, 0x12, 0x52, + 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x1a, 0xd5, 0x04, 0x0a, 0x0b, 0x43, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, + 0x73, 0x22, 0xc5, 0x04, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x69, + 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, + 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, + 0x5f, 0x75, 0x70, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, + 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x03, 0x12, 0x12, 0x0a, + 0x0e, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, + 0x0c, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x06, 0x12, 0x0c, 0x0a, + 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x72, + 0x65, 0x73, 0x76, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x70, 0x61, 0x74, + 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, + 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x0a, 0x12, + 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, + 0x10, 0x0b, 0x12, 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, + 0x5f, 0x72, 0x78, 0x10, 0x0c, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x61, 0x74, + 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x0e, 0x12, 0x12, 0x0a, + 0x0e, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, + 0x0f, 0x12, 0x12, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, + 0x5f, 0x72, 0x78, 0x10, 0x10, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, + 0x6e, 0x66, 0x5f, 0x74, 0x78, 0x10, 0x11, 0x12, 0x10, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x72, 0x78, 0x10, 0x12, 0x12, 0x0d, 0x0a, 0x09, 0x68, 0x65, 0x6c, + 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x13, 0x12, 0x0d, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, + 0x6f, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x14, 0x12, 0x0b, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, + 0x74, 0x78, 0x10, 0x15, 0x12, 0x0b, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x10, + 0x16, 0x12, 0x0c, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x17, 0x12, + 0x0c, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x18, 0x12, 0x0f, 0x0a, + 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x78, 0x10, 0x19, 0x12, 0x0f, + 0x0a, 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x78, 0x10, 0x1a, 0x12, + 0x0d, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x78, 0x10, 0x1b, 0x12, 0x0d, + 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x10, 0x1c, 0x12, 0x20, 0x0a, + 0x1c, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x78, 0x10, 0x1d, 0x12, + 0x18, 0x0a, 0x14, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, + 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x10, 0x1e, 0x22, 0xff, 0x0d, 0x0a, 0x0a, 0x52, 0x73, + 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x42, 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, + 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x18, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, + 0x73, 0x50, 0x32, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, + 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x02, 0x52, 0x10, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, 0x70, + 0x4c, 0x73, 0x70, 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a, 0x12, 0x65, 0x67, 0x72, + 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x03, 0x52, 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, + 0x32, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x55, 0x70, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, + 0x73, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x04, 0x52, 0x0c, 0x6c, 0x73, 0x70, 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, + 0x74, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x48, 0x05, 0x52, 0x07, 0x70, 0x61, 0x74, 0x68, + 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, + 0x72, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x48, 0x06, 0x52, 0x07, 0x70, 0x61, 0x74, 0x68, + 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, + 0x74, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x48, 0x07, 0x52, 0x07, 0x72, 0x65, 0x73, 0x76, + 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, + 0x72, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x48, 0x08, 0x52, 0x07, 0x72, 0x65, 0x73, 0x76, + 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, + 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x48, 0x09, 0x52, + 0x0b, 0x70, 0x61, 0x74, 0x68, 0x54, 0x65, 0x61, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, + 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0a, 0x52, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x54, 0x65, + 0x61, 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, + 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x0b, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x76, 0x54, 0x65, 0x61, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, + 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, + 0x72, 0x78, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0c, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x76, + 0x54, 0x65, 0x61, 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, + 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x0d, 0x52, 0x0c, 0x70, 0x61, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, + 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0e, 0x52, + 0x0c, 0x70, 0x61, 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, + 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, + 0x74, 0x78, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0f, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x76, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x72, + 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x11, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x10, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x78, 0x18, 0x12, 0x20, 0x01, 0x28, 0x05, 0x48, 0x11, 0x52, 0x0a, + 0x72, 0x65, 0x73, 0x76, 0x43, 0x6f, 0x6e, 0x66, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, + 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x72, 0x78, 0x18, 0x13, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x12, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x76, 0x43, 0x6f, 0x6e, 0x66, 0x52, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, + 0x78, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x48, 0x13, 0x52, 0x08, 0x68, 0x65, 0x6c, 0x6c, 0x6f, + 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, + 0x5f, 0x72, 0x78, 0x18, 0x15, 0x20, 0x01, 0x28, 0x05, 0x48, 0x14, 0x52, 0x08, 0x68, 0x65, 0x6c, + 0x6c, 0x6f, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, + 0x5f, 0x74, 0x78, 0x18, 0x16, 0x20, 0x01, 0x28, 0x05, 0x48, 0x15, 0x52, 0x06, 0x61, 0x63, 0x6b, + 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, + 0x78, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x48, 0x16, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x73, 0x52, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, + 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x48, 0x17, 0x52, 0x07, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x54, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, + 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x48, 0x18, 0x52, 0x07, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x52, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x5f, 0x74, 0x78, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x05, 0x48, 0x19, 0x52, 0x0a, 0x73, 0x72, 0x65, + 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x72, + 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x78, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x1a, 0x52, 0x0a, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x52, 0x78, 0x88, 0x01, 0x01, + 0x12, 0x20, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x78, 0x18, 0x1c, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x1b, 0x52, 0x08, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x78, 0x88, + 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x18, + 0x1d, 0x20, 0x01, 0x28, 0x05, 0x48, 0x1c, 0x52, 0x08, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, + 0x78, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1c, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, + 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x5f, 0x74, 0x78, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x48, 0x1d, 0x52, 0x19, 0x70, 0x61, + 0x74, 0x68, 0x52, 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x14, 0x70, 0x61, + 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05, 0x48, 0x1e, 0x52, 0x13, 0x70, 0x61, 0x74, 0x68, + 0x52, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, + 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, + 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, + 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, + 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, + 0x5f, 0x75, 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, + 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, + 0x73, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x76, + 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x72, + 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, + 0x5f, 0x74, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, + 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, + 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x76, + 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, + 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x11, 0x0a, 0x0f, + 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, + 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, + 0x74, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, + 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x78, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, + 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x72, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x65, 0x6c, 0x6c, + 0x6f, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, + 0x5f, 0x72, 0x78, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x42, + 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x61, 0x63, + 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x5f, 0x74, 0x78, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x5f, 0x72, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, + 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, + 0x78, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, + 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, + 0x74, 0x78, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6f, 0x70, + 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0xee, 0x05, 0x0a, 0x0d, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0e, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x48, 0x01, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, + 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x02, 0x52, 0x0d, + 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x42, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x48, 0x03, 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, + 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x48, 0x04, 0x52, 0x08, 0x69, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x88, 0x01, + 0x01, 0x12, 0x4a, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, + 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x05, 0x52, 0x0d, 0x6c, 0x6c, 0x64, + 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, + 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x06, 0x52, 0x08, 0x72, + 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x8e, 0x01, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x12, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, + 0x73, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x73, 0x69, + 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, + 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, + 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, + 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x42, 0x0f, 0x0a, 0x0d, + 0x5f, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, + 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x22, 0xc2, 0x04, 0x0a, + 0x0e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, + 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x70, + 0x76, 0x34, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0e, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, + 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, + 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x62, 0x67, 0x70, + 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, + 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, + 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x69, 0x73, 0x69, 0x73, + 0x4c, 0x73, 0x70, 0x73, 0x12, 0x3e, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, + 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, + 0x62, 0x6f, 0x72, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, + 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, + 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x72, 0x73, 0x76, + 0x70, 0x4c, 0x73, 0x70, 0x73, 0x1a, 0x8e, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x83, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x70, + 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x01, 0x12, 0x12, + 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, + 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, + 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, + 0x6c, 0x73, 0x70, 0x73, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x41, 0x0a, 0x18, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x34, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, + 0x0e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x73, 0x22, 0xa4, 0x01, 0x0a, 0x10, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, + 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, + 0x10, 0x6c, 0x69, 0x6e, 0x6b, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, + 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x41, 0x0a, 0x18, 0x4e, + 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xa4, + 0x01, 0x0a, 0x10, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x31, 0x0a, 0x12, 0x6c, + 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x69, 0x6e, 0x6b, 0x4c, + 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x15, + 0x0a, 0x13, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x87, 0x03, 0x0a, 0x15, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x24, 0x0a, 0x0e, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0e, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2d, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0d, 0x70, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x51, 0x0a, 0x14, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, + 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x12, 0x69, 0x70, 0x76, 0x34, + 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x51, + 0x0a, 0x14, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, + 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x12, 0x69, + 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, + 0x73, 0x1a, 0x4c, 0x0a, 0x0d, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, + 0x72, 0x73, 0x22, 0x3b, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x69, + 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x01, 0x12, 0x10, 0x0a, + 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x02, 0x22, + 0xba, 0x02, 0x0a, 0x1a, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, + 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, + 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, + 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x02, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x43, + 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x69, 0x6e, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x10, 0x01, 0x12, 0x0c, - 0x0a, 0x08, 0x6f, 0x75, 0x74, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x10, 0x02, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x6c, 0x61, 0x67, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x6c, 0x61, - 0x67, 0x5f, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, - 0x65, 0x74, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x6c, 0x61, 0x63, 0x70, 0x5f, - 0x70, 0x61, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, - 0x61, 0x63, 0x70, 0x5f, 0x72, 0x78, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x42, 0x0b, 0x0a, - 0x09, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x79, 0x6e, 0x63, 0x68, - 0x72, 0x6f, 0x6e, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x61, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, - 0x63, 0x6f, 0x6c, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x64, - 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x70, - 0x65, 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x6e, - 0x65, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, - 0x72, 0x5f, 0x6b, 0x65, 0x79, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, - 0x75, 0x6d, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x6e, 0x65, 0x72, 0x5f, 0x70, - 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x22, 0x95, 0x02, 0x0a, 0x12, 0x4c, 0x6c, 0x64, 0x70, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, - 0x0a, 0x0a, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, - 0x0c, 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, - 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0x92, 0x01, 0x0a, 0x0b, 0x43, - 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x82, 0x01, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, - 0x78, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, - 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x5f, 0x72, 0x78, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x10, 0x04, 0x12, 0x10, 0x0a, 0x0c, 0x74, - 0x6c, 0x76, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x10, 0x05, 0x12, 0x10, 0x0a, - 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x06, 0x22, - 0x80, 0x03, 0x0a, 0x0a, 0x4c, 0x6c, 0x64, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x17, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, 0x6d, 0x65, - 0x73, 0x5f, 0x72, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x08, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x66, 0x72, 0x61, - 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x08, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2b, 0x0a, 0x0f, 0x66, - 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x78, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x03, 0x48, 0x03, 0x52, 0x0d, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x66, 0x72, 0x61, 0x6d, - 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, - 0x48, 0x04, 0x52, 0x0d, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, - 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x64, 0x69, 0x73, - 0x63, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x48, 0x05, 0x52, 0x0b, 0x74, 0x6c, - 0x76, 0x73, 0x44, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, - 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x03, 0x48, 0x06, 0x52, 0x0b, 0x74, 0x6c, 0x76, 0x73, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, - 0x6e, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x66, 0x72, - 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, - 0x0f, 0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, 0x64, - 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x63, 0x61, 0x72, - 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x5f, 0x75, 0x6e, 0x6b, 0x6e, 0x6f, - 0x77, 0x6e, 0x22, 0xdc, 0x05, 0x0a, 0x12, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0c, - 0x63, 0x6f, 0x6c, 0x75, 0x6d, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x6f, 0x6c, 0x75, - 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0b, 0x63, 0x6f, - 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x1a, 0xd5, 0x04, 0x0a, 0x0b, 0x43, 0x6f, - 0x6c, 0x75, 0x6d, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xc5, 0x04, 0x0a, 0x04, 0x45, 0x6e, + 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, + 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, + 0x65, 0x10, 0x03, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x22, 0xba, 0x02, 0x0a, + 0x1a, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x00, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, + 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x01, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, + 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, + 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, + 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, + 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, + 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, + 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x22, 0xf5, 0x01, 0x0a, 0x10, 0x42, 0x67, + 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, + 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x62, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x15, 0x69, 0x70, 0x76, 0x34, 0x5f, + 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x13, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x15, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, + 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x13, 0x69, 0x70, 0x76, 0x36, + 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0xc4, 0x04, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, + 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x12, 0x47, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, + 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, + 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x03, 0x52, 0x06, 0x70, + 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x04, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, + 0x6f, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, + 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x6f, + 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, + 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x06, 0x52, 0x06, + 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, + 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, + 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, + 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x0a, 0x0a, 0x08, + 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, 0xc4, 0x04, 0x0a, 0x19, 0x42, 0x67, 0x70, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, + 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, + 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, + 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, + 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, + 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x03, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, + 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, + 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x05, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, + 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x07, + 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, + 0x61, 0x74, 0x68, 0x48, 0x06, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, - 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, - 0x65, 0x64, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x10, 0x02, 0x12, 0x16, 0x0a, - 0x12, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, - 0x5f, 0x75, 0x70, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x6c, 0x61, - 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x61, 0x74, - 0x68, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x05, 0x12, 0x0c, 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, - 0x5f, 0x72, 0x78, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x74, - 0x78, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x72, 0x78, 0x10, - 0x08, 0x12, 0x11, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, - 0x74, 0x78, 0x10, 0x09, 0x12, 0x11, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, - 0x72, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x0a, 0x12, 0x11, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, - 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x0b, 0x12, 0x11, 0x0a, 0x0d, 0x72, 0x65, - 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x0c, 0x12, 0x12, 0x0a, - 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, - 0x0d, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, - 0x5f, 0x72, 0x78, 0x10, 0x0e, 0x12, 0x12, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x0f, 0x12, 0x12, 0x0a, 0x0e, 0x72, 0x65, 0x73, - 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x10, 0x12, 0x10, 0x0a, - 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x78, 0x10, 0x11, 0x12, - 0x10, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x72, 0x78, 0x10, - 0x12, 0x12, 0x0d, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x13, - 0x12, 0x0d, 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x14, 0x12, - 0x0b, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x15, 0x12, 0x0b, 0x0a, 0x07, - 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x10, 0x16, 0x12, 0x0c, 0x0a, 0x08, 0x6e, 0x61, 0x63, - 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x10, 0x17, 0x12, 0x0c, 0x0a, 0x08, 0x6e, 0x61, 0x63, 0x6b, 0x73, - 0x5f, 0x72, 0x78, 0x10, 0x18, 0x12, 0x0f, 0x0a, 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, - 0x68, 0x5f, 0x74, 0x78, 0x10, 0x19, 0x12, 0x0f, 0x0a, 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x5f, 0x72, 0x78, 0x10, 0x1a, 0x12, 0x0d, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, - 0x65, 0x5f, 0x74, 0x78, 0x10, 0x1b, 0x12, 0x0d, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, - 0x5f, 0x72, 0x78, 0x10, 0x1c, 0x12, 0x20, 0x0a, 0x1c, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, - 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x5f, 0x74, 0x78, 0x10, 0x1d, 0x12, 0x18, 0x0a, 0x14, 0x70, 0x61, 0x74, 0x68, 0x5f, - 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x10, - 0x1e, 0x22, 0xff, 0x0d, 0x0a, 0x0a, 0x52, 0x73, 0x76, 0x70, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x12, 0x17, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x1b, 0x69, 0x6e, 0x67, - 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, - 0x52, 0x18, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, 0x70, 0x4c, 0x73, 0x70, 0x73, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, - 0x13, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, - 0x73, 0x5f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x10, 0x69, 0x6e, - 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x55, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x30, 0x0a, 0x12, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, - 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x03, 0x52, - 0x0f, 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x50, 0x32, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x55, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x48, 0x04, 0x52, 0x0c, 0x6c, - 0x73, 0x70, 0x46, 0x6c, 0x61, 0x70, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1e, - 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x05, 0x52, 0x07, 0x70, 0x61, 0x74, 0x68, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, - 0x0a, 0x08, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x06, 0x52, 0x07, 0x70, 0x61, 0x74, 0x68, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, - 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x07, 0x52, 0x07, 0x72, 0x65, 0x73, 0x76, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, - 0x0a, 0x08, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x08, 0x52, 0x07, 0x72, 0x65, 0x73, 0x76, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, - 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x05, 0x48, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x54, 0x65, 0x61, - 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x68, 0x5f, - 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0a, - 0x52, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x54, 0x65, 0x61, 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, - 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, - 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0b, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x76, 0x54, - 0x65, 0x61, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x72, 0x65, 0x73, - 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x0c, 0x52, 0x0b, 0x72, 0x65, 0x73, 0x76, 0x54, 0x65, 0x61, 0x72, 0x73, 0x52, 0x78, 0x88, - 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x73, 0x5f, 0x74, 0x78, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0d, 0x52, 0x0c, 0x70, 0x61, - 0x74, 0x68, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, - 0x0e, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x05, 0x48, 0x0e, 0x52, 0x0c, 0x70, 0x61, 0x74, 0x68, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x76, - 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x0f, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x54, 0x78, - 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x48, 0x10, 0x52, 0x0c, 0x72, - 0x65, 0x73, 0x76, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x25, - 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x78, 0x18, 0x12, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x11, 0x52, 0x0a, 0x72, 0x65, 0x73, 0x76, 0x43, 0x6f, 0x6e, 0x66, - 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, - 0x6e, 0x66, 0x5f, 0x72, 0x78, 0x18, 0x13, 0x20, 0x01, 0x28, 0x05, 0x48, 0x12, 0x52, 0x0a, 0x72, - 0x65, 0x73, 0x76, 0x43, 0x6f, 0x6e, 0x66, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, - 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x14, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x13, 0x52, 0x08, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, - 0x0a, 0x09, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x15, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x14, 0x52, 0x08, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, - 0x12, 0x1c, 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x16, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x15, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1c, - 0x0a, 0x07, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x17, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x16, 0x52, 0x06, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, - 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x18, 0x18, 0x20, 0x01, 0x28, 0x05, 0x48, 0x17, - 0x52, 0x07, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, - 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x18, 0x19, 0x20, 0x01, 0x28, 0x05, 0x48, 0x18, - 0x52, 0x07, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, - 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x78, 0x18, 0x1a, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x19, 0x52, 0x0a, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x54, 0x78, 0x88, - 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, - 0x78, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x05, 0x48, 0x1a, 0x52, 0x0a, 0x73, 0x72, 0x65, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x62, 0x75, 0x6e, 0x64, - 0x6c, 0x65, 0x5f, 0x74, 0x78, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x48, 0x1b, 0x52, 0x08, 0x62, - 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x78, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x62, 0x75, - 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x48, 0x1c, 0x52, - 0x08, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x78, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x1c, - 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x78, 0x18, 0x1e, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x1d, 0x52, 0x19, 0x70, 0x61, 0x74, 0x68, 0x52, 0x65, 0x65, 0x76, 0x61, 0x6c, - 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x54, 0x78, 0x88, - 0x01, 0x01, 0x12, 0x36, 0x0a, 0x14, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6f, 0x70, 0x74, - 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x1e, 0x52, 0x13, 0x70, 0x61, 0x74, 0x68, 0x52, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, - 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x88, 0x01, 0x01, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, - 0x72, 0x65, 0x64, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x69, 0x6e, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, 0x75, 0x70, 0x42, 0x15, 0x0a, 0x13, 0x5f, - 0x65, 0x67, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x32, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x5f, - 0x75, 0x70, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, - 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x73, 0x5f, 0x72, 0x78, 0x42, - 0x0b, 0x0a, 0x09, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x72, 0x65, 0x73, 0x76, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x61, - 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x73, 0x5f, 0x72, - 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x73, 0x5f, 0x74, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x73, 0x76, - 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, - 0x65, 0x73, 0x76, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0f, 0x0a, - 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x74, 0x78, 0x42, 0x0f, - 0x0a, 0x0d, 0x5f, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x5f, 0x72, 0x78, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x68, 0x65, 0x6c, 0x6c, 0x6f, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x63, 0x6b, 0x73, - 0x5f, 0x72, 0x78, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x74, 0x78, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6e, 0x61, 0x63, 0x6b, 0x73, 0x5f, 0x72, 0x78, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x74, 0x78, 0x42, 0x0e, 0x0a, - 0x0c, 0x5f, 0x73, 0x72, 0x65, 0x66, 0x72, 0x65, 0x73, 0x68, 0x5f, 0x72, 0x78, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x74, 0x78, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x62, 0x75, 0x6e, 0x64, 0x6c, 0x65, 0x5f, 0x72, 0x78, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x70, 0x61, - 0x74, 0x68, 0x5f, 0x72, 0x65, 0x65, 0x76, 0x61, 0x6c, 0x75, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x74, 0x78, 0x42, 0x17, 0x0a, 0x15, 0x5f, 0x70, - 0x61, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x6f, 0x70, 0x74, 0x69, 0x6d, 0x69, 0x7a, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x22, 0xee, 0x05, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x01, 0x52, 0x0d, 0x69, 0x70, 0x76, - 0x34, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, - 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, - 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x48, 0x02, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x69, 0x67, - 0x68, 0x62, 0x6f, 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x03, 0x52, 0x0b, 0x62, 0x67, - 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x09, - 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x04, 0x52, 0x08, 0x69, 0x73, - 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, - 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, - 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x48, 0x05, 0x52, 0x0d, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, - 0x72, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, - 0x70, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, - 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x48, 0x06, 0x52, 0x08, 0x72, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x88, - 0x01, 0x01, 0x1a, 0x8e, 0x01, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x83, 0x01, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x69, - 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x02, 0x12, - 0x10, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x10, 0x04, - 0x12, 0x12, 0x0a, 0x0e, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, - 0x72, 0x73, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, - 0x73, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x11, - 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, - 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x73, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x65, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, - 0x73, 0x70, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, - 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x73, 0x76, 0x70, 0x5f, - 0x6c, 0x73, 0x70, 0x73, 0x22, 0xc2, 0x04, 0x0a, 0x0e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3c, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, - 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x34, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, - 0x6f, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x69, 0x67, - 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, - 0x73, 0x12, 0x38, 0x0a, 0x0c, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, - 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, - 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, - 0x62, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x12, 0x2f, 0x0a, 0x09, 0x69, - 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x08, 0x69, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x12, 0x3e, 0x0a, 0x0e, - 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, - 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x6c, - 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x12, 0x2f, 0x0a, 0x09, - 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x08, 0x72, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x1a, 0x8e, 0x01, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x83, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x73, 0x10, 0x01, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, - 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x62, 0x67, - 0x70, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x73, 0x69, 0x73, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x6c, - 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x10, 0x05, 0x12, - 0x0d, 0x0a, 0x09, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x10, 0x06, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x41, 0x0a, 0x18, 0x4e, 0x65, 0x69, - 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x65, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xa4, 0x01, 0x0a, - 0x10, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x76, 0x34, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x70, - 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x69, 0x6e, - 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x10, 0x6c, 0x69, 0x6e, 0x6b, 0x4c, 0x61, 0x79, - 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, - 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x22, 0x41, 0x0a, 0x18, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, - 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x25, 0x0a, 0x0e, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0xa4, 0x01, 0x0a, 0x10, 0x4e, 0x65, 0x69, 0x67, 0x68, - 0x62, 0x6f, 0x72, 0x73, 0x76, 0x36, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x65, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x21, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x12, 0x31, 0x0a, 0x12, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x6c, 0x61, 0x79, 0x65, - 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x10, 0x6c, 0x69, 0x6e, 0x6b, 0x4c, 0x61, 0x79, 0x65, 0x72, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, - 0x6c, 0x61, 0x79, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x22, 0x87, 0x03, - 0x0a, 0x15, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x62, 0x67, 0x70, 0x5f, 0x70, - 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0c, 0x62, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x54, 0x0a, - 0x0e, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x73, 0x12, 0x51, 0x0a, 0x14, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, - 0x65, 0x72, 0x52, 0x12, 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x12, 0x51, 0x0a, 0x14, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, - 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, - 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x12, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x1a, 0x4c, 0x0a, 0x0d, 0x50, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, 0x3b, 0x0a, 0x04, 0x45, 0x6e, + 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, + 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, + 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, + 0x68, 0x6f, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, + 0xca, 0x02, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, + 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x3a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x08, 0x61, 0x73, 0x43, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x8e, 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, + 0x85, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x6d, 0x61, 0x6e, + 0x75, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, + 0x0d, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x02, 0x12, 0x11, + 0x0a, 0x0d, 0x6e, 0x6f, 0x5f, 0x61, 0x64, 0x76, 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, + 0x03, 0x12, 0x17, 0x0a, 0x13, 0x6e, 0x6f, 0x5f, 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, + 0x75, 0x62, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x6c, 0x6c, + 0x67, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x6e, 0x6f, + 0x5f, 0x6c, 0x6c, 0x67, 0x72, 0x10, 0x06, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x4a, 0x0a, 0x0f, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, + 0x37, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, + 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x22, 0xdf, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, + 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x54, + 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, 0x09, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x1a, 0x5d, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x55, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, - 0x69, 0x63, 0x61, 0x73, 0x74, 0x10, 0x02, 0x22, 0xba, 0x02, 0x0a, 0x1a, 0x42, 0x67, 0x70, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, - 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0c, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x48, - 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, - 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, - 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x6f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x06, 0x70, 0x61, 0x74, - 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, - 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x69, - 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, 0x10, 0x0a, 0x0e, 0x5f, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, - 0x68, 0x5f, 0x69, 0x64, 0x22, 0xba, 0x02, 0x0a, 0x1a, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, - 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x65, - 0x73, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x06, 0x6f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, - 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x2e, 0x4f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, - 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, - 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, - 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, - 0x64, 0x22, 0xf5, 0x01, 0x0a, 0x10, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, - 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x27, 0x0a, 0x0d, 0x62, 0x67, 0x70, 0x5f, 0x70, 0x65, - 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x0b, 0x62, 0x67, 0x70, 0x50, 0x65, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x52, 0x0a, 0x15, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x75, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x5f, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, - 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x13, - 0x69, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x15, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x75, 0x6e, 0x69, 0x63, - 0x61, 0x73, 0x74, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x13, 0x69, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x50, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x67, 0x70, 0x5f, - 0x70, 0x65, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xc4, 0x04, 0x0a, 0x19, 0x42, 0x67, - 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, 0x63, 0x61, - 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, - 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x06, 0x6f, 0x72, 0x69, - 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, 0x76, 0x34, 0x55, 0x6e, 0x69, - 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, - 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x03, 0x52, 0x06, 0x70, 0x61, 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, - 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x4e, - 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, - 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x05, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, - 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a, - 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, - 0x50, 0x61, 0x74, 0x68, 0x48, 0x06, 0x52, 0x06, 0x61, 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, - 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, - 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, - 0x6f, 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, - 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, - 0x22, 0xc4, 0x04, 0x0a, 0x19, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x49, 0x70, - 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x26, - 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x12, 0x47, 0x0a, 0x06, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x42, 0x67, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x49, 0x70, 0x76, 0x36, 0x55, 0x6e, 0x69, 0x63, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x06, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x61, 0x74, - 0x68, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x03, 0x52, 0x06, 0x70, 0x61, - 0x74, 0x68, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x04, - 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, - 0x12, 0x27, 0x0a, 0x0d, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, - 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x4e, - 0x65, 0x78, 0x74, 0x48, 0x6f, 0x70, 0x88, 0x01, 0x01, 0x12, 0x39, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, - 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, - 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x52, 0x0b, 0x63, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, - 0x74, 0x69, 0x65, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x48, 0x06, 0x52, 0x06, 0x61, - 0x73, 0x50, 0x61, 0x74, 0x68, 0x88, 0x01, 0x01, 0x1a, 0x43, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x22, 0x39, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x69, - 0x67, 0x70, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x65, 0x67, 0x70, 0x10, 0x02, 0x12, 0x0e, 0x0a, - 0x0a, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x03, 0x42, 0x0f, 0x0a, - 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, - 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x70, 0x61, 0x74, 0x68, 0x5f, 0x69, 0x64, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x69, 0x70, - 0x76, 0x36, 0x5f, 0x6e, 0x65, 0x78, 0x74, 0x5f, 0x68, 0x6f, 0x70, 0x42, 0x0a, 0x0a, 0x08, 0x5f, - 0x61, 0x73, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x22, 0xca, 0x02, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x75, 0x6e, 0x69, 0x74, 0x79, 0x12, 0x3a, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x43, 0x6f, 0x6d, 0x6d, - 0x75, 0x6e, 0x69, 0x74, 0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x61, 0x73, - 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x08, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, - 0x61, 0x73, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x02, 0x52, 0x08, 0x61, 0x73, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x8e, - 0x01, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x14, 0x0a, 0x10, 0x6d, 0x61, 0x6e, 0x75, 0x61, 0x6c, 0x5f, 0x61, 0x73, 0x5f, 0x6e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x6e, 0x6f, 0x5f, 0x65, 0x78, - 0x70, 0x6f, 0x72, 0x74, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x6e, 0x6f, 0x5f, 0x61, 0x64, 0x76, - 0x65, 0x72, 0x74, 0x69, 0x73, 0x65, 0x64, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x6e, 0x6f, 0x5f, - 0x65, 0x78, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, - 0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x6c, 0x6c, 0x67, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, - 0x10, 0x05, 0x12, 0x0b, 0x0a, 0x07, 0x6e, 0x6f, 0x5f, 0x6c, 0x6c, 0x67, 0x72, 0x10, 0x06, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, - 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x61, 0x73, 0x5f, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x4a, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, - 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x12, 0x37, 0x0a, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, - 0x6e, 0x74, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x08, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, - 0x22, 0xdf, 0x01, 0x0a, 0x16, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, - 0x50, 0x61, 0x74, 0x68, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x42, 0x67, 0x70, 0x41, 0x73, 0x50, 0x61, 0x74, 0x68, 0x53, - 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1d, 0x0a, 0x0a, 0x61, - 0x73, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x03, 0x52, - 0x09, 0x61, 0x73, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x1a, 0x5d, 0x0a, 0x04, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x55, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, - 0x73, 0x5f, 0x73, 0x65, 0x71, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, - 0x74, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, - 0x5f, 0x73, 0x65, 0x71, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, - 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x04, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x22, 0x42, 0x0a, 0x14, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, - 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x69, 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x7a, 0x0a, 0x0d, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, - 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x10, 0x69, 0x73, 0x69, 0x73, 0x5f, - 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x04, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, - 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x04, 0x6c, 0x73, 0x70, 0x73, 0x42, 0x13, 0x0a, - 0x11, 0x5f, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x22, 0x86, 0x04, 0x0a, 0x0c, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x73, 0x70, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x08, 0x70, 0x64, - 0x75, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, - 0x50, 0x64, 0x75, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, - 0x70, 0x64, 0x75, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x72, 0x65, - 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x11, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, - 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, - 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x02, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, - 0x70, 0x64, 0x75, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x03, 0x52, 0x09, 0x70, 0x64, 0x75, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x12, 0x2c, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x46, 0x6c, 0x61, - 0x67, 0x73, 0x48, 0x04, 0x52, 0x05, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1c, - 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x05, 0x52, 0x06, 0x69, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, - 0x74, 0x6c, 0x76, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x54, 0x6c, 0x76, 0x73, 0x48, 0x06, 0x52, 0x04, - 0x74, 0x6c, 0x76, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x07, 0x50, 0x64, 0x75, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x6c, - 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x65, 0x76, 0x65, - 0x6c, 0x5f, 0x32, 0x10, 0x02, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, - 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0d, 0x0a, - 0x0b, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x69, 0x73, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x22, 0xaa, 0x05, 0x0a, 0x0b, - 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x39, 0x0a, 0x0d, 0x68, - 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, - 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x0c, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, - 0x6d, 0x65, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x4f, 0x0a, 0x14, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x61, - 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, - 0x73, 0x70, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x54, 0x6c, 0x76, 0x52, 0x12, 0x69, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x68, 0x0a, 0x1d, 0x65, 0x78, 0x74, 0x65, 0x6e, - 0x64, 0x65, 0x64, 0x5f, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x64, 0x65, 0x64, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1a, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, - 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, - 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, - 0x74, 0x6c, 0x76, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x69, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, - 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, - 0x74, 0x6c, 0x76, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x78, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x69, 0x70, 0x76, 0x34, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, - 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x70, - 0x76, 0x34, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, - 0x74, 0x6c, 0x76, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, - 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x70, 0x76, - 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, - 0x73, 0x12, 0x55, 0x0a, 0x16, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, - 0x70, 0x76, 0x36, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, - 0x6c, 0x76, 0x52, 0x14, 0x69, 0x70, 0x76, 0x36, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x22, 0x3f, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, - 0x4c, 0x73, 0x70, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x08, 0x68, - 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, - 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, - 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x89, 0x03, 0x0a, 0x0c, 0x49, 0x73, - 0x69, 0x73, 0x4c, 0x73, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x61, - 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x74, - 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x01, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x45, 0x72, - 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x02, 0x52, 0x0f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x45, 0x78, 0x70, 0x65, - 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, - 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, - 0x52, 0x0d, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, - 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, - 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0f, - 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x08, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, - 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x74, 0x74, - 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x13, 0x0a, 0x11, 0x5f, - 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, - 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, - 0x6c, 0x61, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, - 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x76, 0x65, - 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x4e, 0x0a, 0x18, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, + 0x64, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x71, 0x10, 0x01, 0x12, + 0x0a, 0x0a, 0x06, 0x61, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x61, + 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x71, 0x10, 0x03, 0x12, 0x11, + 0x0a, 0x0d, 0x61, 0x73, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x65, 0x64, 0x5f, 0x73, 0x65, 0x74, 0x10, + 0x04, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x42, 0x0a, 0x14, 0x49, 0x73, + 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x69, + 0x73, 0x69, 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x7a, + 0x0a, 0x0d, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, + 0x2d, 0x0a, 0x10, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x69, 0x73, 0x69, + 0x73, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, + 0x0a, 0x04, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x04, 0x6c, 0x73, 0x70, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x69, 0x73, 0x69, 0x73, 0x5f, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x86, 0x04, 0x0a, 0x0c, 0x49, + 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6c, + 0x73, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6c, 0x73, 0x70, + 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x08, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, + 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x64, 0x75, 0x54, 0x79, 0x70, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x07, 0x70, 0x64, 0x75, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, + 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, + 0x52, 0x11, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x4c, 0x69, 0x66, 0x65, 0x74, + 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x0f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, + 0x02, 0x52, 0x0e, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x64, 0x75, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x48, 0x03, 0x52, 0x09, 0x70, 0x64, 0x75, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x2c, 0x0a, 0x05, 0x66, 0x6c, 0x61, 0x67, + 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, + 0x69, 0x73, 0x4c, 0x73, 0x70, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x48, 0x04, 0x52, 0x05, 0x66, 0x6c, + 0x61, 0x67, 0x73, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x69, 0x73, 0x5f, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x48, 0x05, 0x52, 0x06, 0x69, 0x73, 0x54, 0x79, 0x70, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x29, 0x0a, 0x04, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, + 0x54, 0x6c, 0x76, 0x73, 0x48, 0x06, 0x52, 0x04, 0x74, 0x6c, 0x76, 0x73, 0x88, 0x01, 0x01, 0x1a, + 0x3c, 0x0a, 0x07, 0x50, 0x64, 0x75, 0x54, 0x79, 0x70, 0x65, 0x22, 0x31, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x31, 0x10, 0x01, + 0x12, 0x0b, 0x0a, 0x07, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x32, 0x10, 0x02, 0x42, 0x0b, 0x0a, + 0x09, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x72, + 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, + 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x73, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x6e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x70, 0x64, 0x75, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x69, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, + 0x6c, 0x76, 0x73, 0x22, 0xaa, 0x05, 0x0a, 0x0b, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x54, + 0x6c, 0x76, 0x73, 0x12, 0x39, 0x0a, 0x0d, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x5f, + 0x74, 0x6c, 0x76, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x48, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, + 0x52, 0x0c, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x4f, + 0x0a, 0x14, 0x69, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, + 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x12, 0x69, 0x73, 0x52, + 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, + 0x68, 0x0a, 0x1d, 0x65, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x73, 0x5f, 0x72, + 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, + 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x73, 0x52, 0x65, + 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1a, 0x65, + 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x04, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, + 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, + 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x69, 0x70, 0x76, + 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, + 0x49, 0x70, 0x76, 0x34, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, + 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x69, 0x70, 0x76, + 0x34, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x6e, 0x0a, 0x1f, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, + 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x1c, 0x65, 0x78, 0x74, + 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x55, 0x0a, 0x16, 0x69, 0x70, 0x76, + 0x36, 0x5f, 0x72, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x74, + 0x6c, 0x76, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x36, 0x52, 0x65, 0x61, 0x63, 0x68, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x52, 0x14, 0x69, 0x70, 0x76, 0x36, + 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x73, + 0x22, 0x3f, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x48, 0x6f, 0x73, 0x74, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, + 0x65, 0x88, 0x01, 0x01, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x6e, 0x61, 0x6d, + 0x65, 0x22, 0x89, 0x03, 0x0a, 0x0c, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x46, 0x6c, 0x61, + 0x67, 0x73, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, + 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x0f, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x70, 0x61, 0x69, 0x72, 0x88, + 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x0d, 0x61, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x88, 0x01, 0x01, 0x12, 0x2e, + 0x0a, 0x10, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, 0x78, 0x70, 0x65, 0x6e, + 0x73, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x0f, 0x61, 0x74, 0x74, 0x61, + 0x63, 0x68, 0x65, 0x64, 0x45, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, + 0x0a, 0x0e, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, 0x52, 0x0d, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, + 0x65, 0x64, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x61, 0x74, + 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x04, 0x52, 0x0f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, + 0x44, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x6f, 0x76, + 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x05, 0x52, 0x08, + 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x70, 0x61, 0x69, 0x72, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, + 0x5f, 0x65, 0x78, 0x70, 0x65, 0x6e, 0x73, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x61, 0x74, 0x74, + 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x42, 0x13, 0x0a, 0x11, 0x5f, + 0x61, 0x74, 0x74, 0x61, 0x63, 0x68, 0x65, 0x64, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x6c, 0x6f, 0x61, 0x64, 0x22, 0x4e, 0x0a, + 0x18, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x65, 0x69, + 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, + 0x6f, 0x72, 0x52, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x22, 0x56, 0x0a, + 0x20, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x52, 0x09, 0x6e, 0x65, 0x69, 0x67, - 0x68, 0x62, 0x6f, 0x72, 0x73, 0x22, 0x56, 0x0a, 0x20, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x73, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x32, 0x0a, 0x09, 0x6e, 0x65, 0x69, - 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, - 0x6f, 0x72, 0x52, 0x09, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x22, 0x41, 0x0a, - 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, - 0x12, 0x20, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x88, - 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, - 0x22, 0x56, 0x0a, 0x22, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, - 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, + 0x68, 0x62, 0x6f, 0x72, 0x73, 0x22, 0x41, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, + 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x12, 0x20, 0x0a, 0x09, 0x73, 0x79, 0x73, 0x74, + 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x49, 0x64, 0x88, 0x01, 0x01, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x69, 0x64, 0x22, 0x56, 0x0a, 0x22, 0x49, 0x73, 0x69, 0x73, + 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, + 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x30, + 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, + 0x22, 0x56, 0x0a, 0x22, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x30, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0x56, 0x0a, 0x22, 0x49, 0x73, 0x69, 0x73, - 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x52, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0xa1, 0x04, 0x0a, 0x0f, 0x49, 0x73, 0x69, + 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0c, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x0c, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x62, + 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x12, 0x72, 0x65, 0x64, + 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x03, 0x52, 0x0d, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4a, + 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, + 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x0a, 0x6f, 0x72, 0x69, + 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, + 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, + 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, + 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x42, 0x0f, + 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, + 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x0e, 0x0a, 0x0c, + 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x5e, 0x0a, 0x22, + 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, + 0x70, 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, + 0x6c, 0x76, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, + 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0xe1, 0x03, 0x0a, + 0x17, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, + 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, + 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, + 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x06, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x6a, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, + 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x12, 0x72, 0x65, + 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x50, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x48, 0x04, 0x52, 0x10, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, + 0x77, 0x6e, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x22, 0x4e, 0x0a, 0x1a, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x36, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x30, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, + 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, - 0x22, 0xa1, 0x04, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, + 0x22, 0xf0, 0x04, 0x0a, 0x0f, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, + 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, - 0x76, 0x34, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, + 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x62, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, - 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x02, 0x52, 0x12, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x64, 0x65, - 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x03, 0x52, 0x0d, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, - 0x78, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x04, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, - 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x88, 0x01, 0x01, 0x12, 0x62, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, + 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, + 0x52, 0x12, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, + 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x04, 0x52, 0x0a, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x11, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, + 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x50, 0x72, 0x65, 0x66, + 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x48, 0x05, 0x52, 0x10, + 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, + 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x12, 0x52, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, + 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, + 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, + 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, + 0x12, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, + 0x74, 0x65, 0x73, 0x22, 0x8e, 0x01, 0x0a, 0x17, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x50, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, + 0x1a, 0x0a, 0x06, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, + 0x00, 0x52, 0x05, 0x78, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, + 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x05, 0x72, + 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, 0x6c, 0x61, + 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, 0x02, 0x52, 0x05, 0x6e, 0x46, 0x6c, 0x61, 0x67, + 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x5f, + 0x66, 0x6c, 0x61, 0x67, 0x22, 0x6a, 0x0a, 0x19, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, + 0x12, 0x2e, 0x0a, 0x13, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x5f, + 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6e, + 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, + 0x22, 0xd9, 0x0a, 0x0a, 0x12, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x6c, + 0x64, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x79, 0x73, + 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x32, 0x0a, 0x12, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x11, 0x73, + 0x79, 0x73, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x03, 0x52, 0x09, 0x63, 0x68, 0x61, 0x73, 0x73, + 0x69, 0x73, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x57, 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x73, 0x73, + 0x69, 0x73, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, + 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, + 0x73, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x0d, + 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x24, 0x0a, 0x0b, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, 0x0a, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x03, 0x48, 0x06, 0x52, 0x03, 0x61, 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, + 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x03, 0x48, 0x07, 0x52, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, 0x74, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x08, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x6f, + 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x09, 0x52, 0x06, 0x70, + 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, + 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x0a, 0x52, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x49, + 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x0b, 0x52, 0x0f, 0x70, 0x6f, 0x72, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x0c, 0x52, 0x11, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, + 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0d, 0x52, + 0x15, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x38, 0x0a, 0x0b, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x6c, 0x76, 0x73, 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, + 0x4c, 0x56, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, + 0x6c, 0x76, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x1a, 0xae, 0x01, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x54, + 0x79, 0x70, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, + 0x0e, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, + 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, + 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, 0x03, 0x12, 0x0f, 0x0a, + 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, 0x12, + 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x06, 0x12, 0x13, 0x0a, + 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, + 0x10, 0x07, 0x1a, 0xaa, 0x01, 0x0a, 0x0a, 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x54, 0x79, 0x70, + 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x70, + 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, + 0x13, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x69, + 0x72, 0x63, 0x75, 0x69, 0x74, 0x5f, 0x69, 0x64, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x6d, 0x61, + 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x69, + 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x05, 0x12, + 0x09, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x69, 0x6e, + 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x10, 0x07, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, + 0x5f, 0x69, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, + 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x69, 0x67, + 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, 0x67, 0x65, 0x42, + 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, + 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x74, 0x6c, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, + 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x9f, 0x01, 0x0a, + 0x12, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x4c, 0x56, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6f, 0x75, 0x69, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x6f, 0x75, 0x69, 0x88, 0x01, 0x01, + 0x12, 0x24, 0x0a, 0x0b, 0x6f, 0x75, 0x69, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x6f, 0x75, 0x69, 0x53, 0x75, 0x62, 0x74, + 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6f, 0x75, 0x69, 0x42, 0x0e, + 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x69, 0x5f, 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb3, + 0x03, 0x0a, 0x13, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x5a, 0x0a, 0x0f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, + 0x6c, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x0e, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, + 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, + 0x52, 0x11, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x61, 0x62, + 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x1a, 0xe0, 0x01, 0x0a, 0x0e, 0x43, 0x61, 0x70, 0x61, 0x62, + 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6d, 0x61, 0x63, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, + 0x65, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x74, 0x77, 0x6f, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, + 0x6d, 0x61, 0x63, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x72, + 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x64, 0x6f, 0x63, + 0x73, 0x69, 0x73, 0x5f, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x05, 0x12, 0x0d, + 0x0a, 0x09, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x10, 0x06, 0x12, 0x09, 0x0a, + 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x10, 0x07, 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x09, + 0x12, 0x10, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, + 0x10, 0x0a, 0x12, 0x15, 0x0a, 0x11, 0x77, 0x6c, 0x61, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x10, 0x0b, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x61, + 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, 0x0a, + 0x13, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x64, 0x22, 0x42, 0x0a, 0x14, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, + 0x72, 0x73, 0x76, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x72, 0x73, 0x76, 0x70, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x22, 0x87, 0x01, 0x0a, 0x0d, 0x52, 0x73, 0x76, + 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x73, + 0x76, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x72, 0x73, 0x76, 0x70, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x09, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x49, 0x50, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x08, 0x69, 0x70, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x73, 0x42, 0x13, 0x0a, + 0x11, 0x5f, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x22, 0xa3, 0x02, 0x0a, 0x10, 0x52, 0x73, 0x76, 0x70, 0x49, 0x50, 0x76, 0x34, 0x4c, + 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x03, 0x6c, 0x73, 0x70, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, + 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x02, 0x52, 0x03, 0x6c, 0x73, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x04, 0x72, 0x72, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, + 0x70, 0x76, 0x34, 0x52, 0x72, 0x6f, 0x52, 0x04, 0x72, 0x72, 0x6f, 0x73, 0x12, 0x27, 0x0a, 0x04, + 0x65, 0x72, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x72, 0x6f, 0x52, + 0x04, 0x65, 0x72, 0x6f, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x64, 0x65, 0x73, + 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6c, 0x73, 0x70, 0x22, 0x8c, 0x05, 0x0a, 0x0c, 0x52, 0x73, 0x76, + 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x09, 0x74, 0x75, 0x6e, + 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x08, + 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6c, + 0x73, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x6c, + 0x73, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x26, 0x0a, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, + 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x1e, 0x0a, 0x08, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x03, 0x52, 0x07, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x49, 0x6e, 0x88, 0x01, 0x01, 0x12, + 0x20, 0x0a, 0x09, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x04, 0x52, 0x08, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x4f, 0x75, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x50, 0x0a, 0x0e, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x05, 0x52, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x10, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x61, 0x70, + 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x2e, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x06, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x70, + 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x75, 0x70, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x48, 0x07, 0x52, 0x06, 0x75, 0x70, + 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x3a, 0x0a, 0x0d, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, - 0x6e, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x0a, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, - 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, - 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, 0x65, - 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x22, 0x5e, 0x0a, 0x22, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x61, 0x63, 0x68, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x38, 0x0a, 0x08, 0x70, 0x72, - 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x65, 0x64, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x65, 0x73, 0x22, 0xe1, 0x03, 0x0a, 0x17, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, 0x65, 0x64, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x12, 0x26, 0x0a, 0x0c, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x0c, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x02, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, - 0x6a, 0x0a, 0x13, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x64, - 0x65, 0x64, 0x56, 0x34, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x52, 0x65, 0x64, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x03, 0x52, 0x12, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x11, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, - 0x73, 0x4c, 0x73, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x48, 0x04, 0x52, 0x10, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x12, 0x52, - 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, - 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x42, 0x0f, 0x0a, 0x0d, - 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x72, - 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0x4e, 0x0a, 0x1a, 0x49, 0x73, 0x69, 0x73, - 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x36, 0x52, 0x65, 0x61, 0x63, 0x68, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x54, 0x6c, 0x76, 0x12, 0x30, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, - 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x52, 0x08, - 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x65, 0x73, 0x22, 0xf0, 0x04, 0x0a, 0x0f, 0x49, 0x73, 0x69, - 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x26, 0x0a, 0x0c, - 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x69, 0x70, 0x76, 0x36, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x0c, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, - 0x52, 0x06, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x88, 0x01, 0x01, 0x12, 0x62, 0x0a, 0x13, 0x72, - 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, - 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x52, - 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x03, 0x52, 0x12, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x4a, 0x0a, 0x0b, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, 0x73, 0x4c, - 0x73, 0x70, 0x56, 0x36, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x2e, 0x4f, 0x72, 0x69, 0x67, 0x69, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x0a, 0x6f, 0x72, - 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x11, 0x70, - 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x49, 0x73, 0x69, - 0x73, 0x4c, 0x73, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x48, 0x05, 0x52, 0x10, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x88, 0x01, 0x01, 0x1a, 0x3f, 0x0a, 0x12, 0x52, - 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, - 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x41, 0x0a, 0x0a, - 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, - 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x10, 0x02, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x69, 0x70, 0x76, 0x36, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x42, 0x16, 0x0a, - 0x14, 0x5f, 0x72, 0x65, 0x64, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x5f, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x22, 0x8e, 0x01, 0x0a, 0x17, - 0x49, 0x73, 0x69, 0x73, 0x4c, 0x73, 0x70, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x41, 0x74, 0x74, - 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x06, 0x78, 0x5f, 0x66, 0x6c, 0x61, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x05, 0x78, 0x46, 0x6c, 0x61, 0x67, - 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x05, 0x72, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x12, - 0x1a, 0x0a, 0x06, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x48, - 0x02, 0x52, 0x05, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x78, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x72, 0x5f, 0x66, 0x6c, 0x61, - 0x67, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6e, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x22, 0x6a, 0x0a, 0x19, - 0x4c, 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x6c, 0x64, - 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x6c, - 0x6c, 0x64, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x6e, 0x65, 0x69, 0x67, - 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, - 0x64, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x73, 0x22, 0xd9, 0x0a, 0x0a, 0x12, 0x4c, 0x6c, 0x64, - 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x20, 0x0a, 0x09, 0x6c, 0x6c, 0x64, 0x70, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x08, 0x6c, 0x6c, 0x64, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x11, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x44, 0x65, 0x73, - 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x22, 0x0a, 0x0a, 0x63, - 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x03, 0x52, 0x09, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x57, 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, - 0x6c, 0x64, 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x2e, 0x43, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x04, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, - 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6e, 0x65, 0x69, 0x67, - 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x05, 0x52, - 0x0a, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x15, - 0x0a, 0x03, 0x61, 0x67, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x48, 0x06, 0x52, 0x03, 0x61, - 0x67, 0x65, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x48, 0x07, 0x52, 0x0a, 0x6c, 0x61, - 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x74, - 0x74, 0x6c, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x48, 0x08, 0x52, 0x03, 0x74, 0x74, 0x6c, 0x88, - 0x01, 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x09, 0x52, 0x06, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x4e, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, - 0x70, 0x4e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, - 0x50, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x0a, 0x52, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x2e, 0x0a, 0x10, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0b, 0x52, 0x0f, 0x70, 0x6f, - 0x72, 0x74, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, - 0x12, 0x32, 0x0a, 0x12, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0c, 0x52, 0x11, - 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x88, 0x01, 0x01, 0x12, 0x3b, 0x0a, 0x17, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x0d, 0x52, 0x15, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x38, 0x0a, 0x0b, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x6c, 0x76, 0x73, - 0x18, 0x0f, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, - 0x70, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x4c, 0x56, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x6c, 0x76, 0x73, 0x12, 0x3c, 0x0a, 0x0c, 0x63, - 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x61, 0x70, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x1a, 0xae, 0x01, 0x0a, 0x0d, 0x43, 0x68, - 0x61, 0x73, 0x73, 0x69, 0x73, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9c, 0x01, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, - 0x6d, 0x70, 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6e, 0x65, 0x74, - 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x15, - 0x0a, 0x11, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x63, 0x6f, 0x6d, 0x70, 0x6f, 0x6e, - 0x65, 0x6e, 0x74, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, - 0x72, 0x65, 0x73, 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, - 0x61, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, - 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x69, 0x61, 0x73, 0x10, 0x07, 0x1a, 0xaa, 0x01, 0x0a, 0x0a, 0x50, - 0x6f, 0x72, 0x74, 0x49, 0x64, 0x54, 0x79, 0x70, 0x65, 0x22, 0x9b, 0x01, 0x0a, 0x04, 0x45, 0x6e, + 0x6e, 0x10, 0x02, 0x1a, 0x59, 0x0a, 0x0e, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x70, 0x52, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x47, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, + 0x0a, 0x09, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, + 0x09, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, 0x61, 0x72, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, + 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x10, 0x03, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x61, 0x62, + 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, + 0x6f, 0x75, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, + 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, + 0x75, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, 0x7a, 0x0a, 0x0e, 0x52, 0x73, 0x76, 0x70, 0x4c, + 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x52, 0x72, 0x6f, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x01, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x4c, 0x61, 0x62, 0x65, + 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, + 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x22, 0x85, 0x02, 0x0a, 0x0e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, + 0x70, 0x76, 0x34, 0x45, 0x72, 0x6f, 0x12, 0x1b, 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x01, 0x52, 0x03, 0x61, 0x73, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, + 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x72, 0x6f, 0x2e, 0x54, 0x79, + 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, + 0x01, 0x01, 0x1a, 0x6b, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x63, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x63, 0x6f, 0x6d, 0x70, - 0x6f, 0x6e, 0x65, 0x6e, 0x74, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, - 0x72, 0x6b, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x10, 0x02, 0x12, 0x14, 0x0a, 0x10, - 0x61, 0x67, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x69, 0x72, 0x63, 0x75, 0x69, 0x74, 0x5f, 0x69, 0x64, - 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x6d, 0x61, 0x63, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x10, 0x04, 0x12, 0x12, 0x0a, 0x0e, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, - 0x61, 0x6c, 0x69, 0x61, 0x73, 0x10, 0x07, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x6c, 0x6c, 0x64, 0x70, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, - 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x0d, 0x0a, 0x0b, - 0x5f, 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x42, 0x12, 0x0a, 0x10, 0x5f, - 0x63, 0x68, 0x61, 0x73, 0x73, 0x69, 0x73, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x62, 0x6f, 0x72, 0x5f, 0x69, 0x64, 0x42, - 0x06, 0x0a, 0x04, 0x5f, 0x61, 0x67, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6c, 0x61, 0x73, 0x74, - 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x74, 0x74, 0x6c, 0x42, - 0x0a, 0x0a, 0x08, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, - 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x69, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x13, 0x0a, 0x11, - 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x1a, 0x0a, 0x18, 0x5f, 0x6d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x12, 0x4c, 0x6c, 0x64, 0x70, 0x43, 0x75, 0x73, - 0x74, 0x6f, 0x6d, 0x54, 0x4c, 0x56, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0b, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x00, 0x52, 0x0a, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x15, 0x0a, 0x03, 0x6f, 0x75, 0x69, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x03, 0x6f, 0x75, 0x69, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x6f, 0x75, 0x69, 0x5f, - 0x73, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, - 0x0a, 0x6f, 0x75, 0x69, 0x53, 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x42, 0x0e, - 0x0a, 0x0c, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x42, 0x06, - 0x0a, 0x04, 0x5f, 0x6f, 0x75, 0x69, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x6f, 0x75, 0x69, 0x5f, 0x73, - 0x75, 0x62, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb3, 0x03, 0x0a, 0x13, 0x4c, 0x6c, 0x64, 0x70, 0x43, - 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x5a, - 0x0a, 0x0f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x6c, - 0x64, 0x70, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x2e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x0e, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, - 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x32, 0x0a, 0x12, 0x63, 0x61, - 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x48, 0x01, 0x52, 0x11, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x88, 0x01, 0x01, 0x1a, 0xe0, - 0x01, 0x0a, 0x0e, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4e, 0x61, 0x6d, - 0x65, 0x22, 0xcd, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x6d, - 0x61, 0x63, 0x5f, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x74, - 0x77, 0x6f, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6d, 0x61, 0x63, 0x5f, 0x72, 0x65, 0x6c, 0x61, - 0x79, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x65, 0x61, 0x74, 0x65, 0x72, 0x10, - 0x03, 0x12, 0x17, 0x0a, 0x13, 0x64, 0x6f, 0x63, 0x73, 0x69, 0x73, 0x5f, 0x63, 0x61, 0x62, 0x6c, - 0x65, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x10, 0x04, 0x12, 0x0a, 0x0a, 0x06, 0x73, 0x5f, - 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x05, 0x12, 0x0d, 0x0a, 0x09, 0x74, 0x65, 0x6c, 0x65, 0x70, 0x68, - 0x6f, 0x6e, 0x65, 0x10, 0x06, 0x12, 0x09, 0x0a, 0x05, 0x6f, 0x74, 0x68, 0x65, 0x72, 0x10, 0x07, - 0x12, 0x0a, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x10, 0x08, 0x12, 0x0a, 0x0a, 0x06, - 0x63, 0x5f, 0x76, 0x6c, 0x61, 0x6e, 0x10, 0x09, 0x12, 0x10, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x6e, 0x6c, 0x79, 0x10, 0x0a, 0x12, 0x15, 0x0a, 0x11, 0x77, 0x6c, - 0x61, 0x6e, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x10, - 0x0b, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x22, 0x42, 0x0a, 0x14, - 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x11, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0f, 0x72, 0x73, 0x76, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x73, - 0x22, 0x87, 0x01, 0x0a, 0x0d, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x73, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x10, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, - 0x72, 0x73, 0x76, 0x70, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x32, 0x0a, 0x09, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6c, 0x73, 0x70, 0x73, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x49, - 0x50, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x69, 0x70, 0x76, - 0x34, 0x4c, 0x73, 0x70, 0x73, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x72, 0x73, 0x76, 0x70, 0x5f, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0xa3, 0x02, 0x0a, 0x10, 0x52, - 0x73, 0x76, 0x70, 0x49, 0x50, 0x76, 0x34, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, - 0x2a, 0x0a, 0x0e, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, - 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0d, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x34, 0x0a, 0x13, 0x64, - 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x12, 0x64, 0x65, 0x73, 0x74, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, - 0x01, 0x12, 0x28, 0x0a, 0x03, 0x6c, 0x73, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x48, 0x02, 0x52, 0x03, 0x6c, 0x73, 0x70, 0x88, 0x01, 0x01, 0x12, 0x27, 0x0a, 0x04, 0x72, - 0x72, 0x6f, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x52, 0x72, 0x6f, 0x52, 0x04, - 0x72, 0x72, 0x6f, 0x73, 0x12, 0x27, 0x0a, 0x04, 0x65, 0x72, 0x6f, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, - 0x49, 0x70, 0x76, 0x34, 0x45, 0x72, 0x6f, 0x52, 0x04, 0x65, 0x72, 0x6f, 0x73, 0x42, 0x11, 0x0a, - 0x0f, 0x5f, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, - 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x64, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x6c, 0x73, 0x70, - 0x22, 0x8c, 0x05, 0x0a, 0x0c, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x20, 0x0a, 0x09, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x08, 0x74, 0x75, 0x6e, 0x6e, 0x65, 0x6c, 0x49, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x06, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x6c, 0x73, 0x70, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, - 0x26, 0x0a, 0x0c, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x4e, 0x61, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x08, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x5f, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x03, 0x52, 0x07, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x49, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x20, 0x0a, 0x09, 0x6c, 0x61, 0x62, 0x65, 0x6c, - 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x48, 0x04, 0x52, 0x08, 0x6c, 0x61, - 0x62, 0x65, 0x6c, 0x4f, 0x75, 0x74, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x0e, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x05, 0x52, 0x0d, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x10, 0x6c, - 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, - 0x4c, 0x73, 0x70, 0x53, 0x74, 0x61, 0x74, 0x65, 0x2e, 0x4c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, - 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x06, 0x52, 0x0e, - 0x6c, 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x88, 0x01, - 0x01, 0x12, 0x1c, 0x0a, 0x07, 0x75, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x03, 0x48, 0x07, 0x52, 0x06, 0x75, 0x70, 0x54, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, - 0x3a, 0x0a, 0x0d, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x22, 0x29, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x75, 0x70, 0x10, - 0x01, 0x12, 0x08, 0x0a, 0x04, 0x64, 0x6f, 0x77, 0x6e, 0x10, 0x02, 0x1a, 0x59, 0x0a, 0x0e, 0x4c, - 0x61, 0x73, 0x74, 0x46, 0x6c, 0x61, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x47, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x72, 0x65, 0x73, 0x76, 0x5f, 0x74, - 0x65, 0x61, 0x72, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x65, - 0x61, 0x72, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x6f, 0x75, 0x74, 0x10, 0x03, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x74, 0x75, 0x6e, 0x6e, 0x65, - 0x6c, 0x5f, 0x69, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x73, 0x70, 0x5f, 0x69, 0x64, 0x42, - 0x0f, 0x0a, 0x0d, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x61, 0x6d, 0x65, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x69, 0x6e, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x5f, 0x6f, 0x75, 0x74, 0x42, 0x11, 0x0a, 0x0f, 0x5f, - 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x13, - 0x0a, 0x11, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x66, 0x6c, 0x61, 0x70, 0x5f, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x75, 0x70, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x22, - 0x7a, 0x0a, 0x0e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x52, 0x72, - 0x6f, 0x12, 0x1d, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x00, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x88, 0x01, 0x01, - 0x12, 0x2a, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, - 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x0d, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x65, 0x64, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, - 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x42, 0x11, 0x0a, 0x0f, 0x5f, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x22, 0x85, 0x02, 0x0a, 0x0e, - 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, 0x76, 0x34, 0x45, 0x72, 0x6f, 0x12, 0x1b, - 0x0a, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x06, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x61, - 0x73, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x03, 0x61, 0x73, 0x6e, 0x88, - 0x01, 0x01, 0x12, 0x36, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x73, 0x76, 0x70, 0x4c, 0x73, 0x70, 0x49, 0x70, - 0x76, 0x34, 0x45, 0x72, 0x6f, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x02, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x6b, 0x0a, 0x04, 0x54, 0x79, - 0x70, 0x65, 0x22, 0x63, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, - 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x12, - 0x07, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x73, 0x6e, 0x34, - 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x10, 0x05, 0x12, 0x18, 0x0a, - 0x14, 0x75, 0x6e, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, - 0x72, 0x66, 0x61, 0x63, 0x65, 0x10, 0x06, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, - 0x69, 0x78, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, 0x73, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, - 0x79, 0x70, 0x65, 0x22, 0x2d, 0x0a, 0x0e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, + 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x69, 0x70, 0x76, 0x34, 0x10, 0x01, 0x12, 0x08, 0x0a, + 0x04, 0x69, 0x70, 0x76, 0x36, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x61, 0x73, 0x6e, 0x10, 0x03, + 0x12, 0x08, 0x0a, 0x04, 0x61, 0x73, 0x6e, 0x34, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x6c, 0x61, + 0x62, 0x65, 0x6c, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x75, 0x6e, 0x6e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x10, 0x06, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x61, + 0x73, 0x6e, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x22, 0x2d, 0x0a, 0x0e, 0x43, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, + 0x09, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x70, 0x6f, 0x72, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x65, 0x74, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x9b, 0x04, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, + 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, + 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x85, + 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, + 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x12, + 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, + 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9b, 0x04, 0x0a, 0x16, 0x50, 0x61, 0x74, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xb9, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x44, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, - 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, - 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, + 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, - 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8b, - 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xef, 0x03, 0x0a, - 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4b, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, + 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, - 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x72, 0x63, 0x43, 0x6f, + 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4a, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, + 0x65, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, + 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, + 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, @@ -98890,122 +99698,110 @@ var file_otg_proto_rawDesc = []byte{ 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, - 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x91, 0x01, 0x0a, - 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0xb9, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, - 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, - 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, - 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x81, + 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, + 0x61, 0x6e, 0x43, 0x66, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x04, 0x0a, - 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x49, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, - 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x50, 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, - 0x66, 0x63, 0x51, 0x75, 0x65, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, - 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xdb, 0x03, 0x0a, + 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, + 0x43, 0x66, 0x69, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x1a, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x86, 0x01, + 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, + 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xd6, 0x03, 0x0a, 0x11, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, + 0x61, 0x6e, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x40, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x82, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, @@ -99013,75 +99809,27 @@ var file_otg_proto_rawDesc = []byte{ 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, - 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, - 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, - 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x46, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, + 0xe0, 0x03, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, + 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x42, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, - 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xdb, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x12, 0x40, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, - 0x6e, 0x43, 0x66, 0x69, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, 0x66, 0x69, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x43, - 0x66, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, + 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, @@ -99091,258 +99839,470 @@ var file_otg_proto_rawDesc = []byte{ 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x86, 0x01, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xd6, - 0x03, 0x0a, 0x11, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, - 0x61, 0x6e, 0x49, 0x64, 0x12, 0x3f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x2e, 0x43, 0x68, 0x6f, + 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, + 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, + 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, - 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x40, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x44, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, + 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8e, + 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x12, 0x47, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, - 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x40, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x01, 0x0a, - 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, - 0x54, 0x70, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe0, 0x03, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x12, - 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x82, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x8c, 0x04, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, + 0x6e, 0x69, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, + 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x04, + 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, + 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, + 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, + 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfe, 0x03, 0x0a, 0x19, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, - 0x54, 0x70, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x6c, - 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x56, 0x6c, 0x61, 0x6e, 0x54, 0x70, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, - 0x6c, 0x61, 0x67, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, + 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, + 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, + 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, + 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x45, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xea, - 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, - 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, - 0x6c, 0x61, 0x67, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, - 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, - 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x68, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xb4, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, + 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, + 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x30, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x30, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, + 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xaf, 0x04, 0x0a, 0x1a, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, + 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x49, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, + 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, + 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, + 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, + 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, + 0x73, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, + 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x01, - 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, - 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8c, 0x04, 0x0a, 0x13, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, - 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, - 0x42, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x56, 0x6e, 0x69, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x56, 0x6e, 0x69, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x60, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8c, 0x01, + 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf4, 0x03, 0x0a, + 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, @@ -99350,235 +100310,549 @@ var file_otg_proto_rawDesc = []byte{ 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x31, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, - 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, - 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x56, 0x78, 0x6c, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, + 0x75, 0x6e, 0x74, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, + 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4a, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, + 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8b, 0x01, 0x0a, - 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, - 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xb4, 0x04, 0x0a, - 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x49, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, - 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, - 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, - 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, - 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x91, 0x01, 0x0a, + 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x73, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, + 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4b, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, + 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0xaf, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, - 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x04, 0x61, - 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, + 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, + 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, + 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, + 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, + 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, + 0x69, 0x76, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, + 0x69, 0x76, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, + 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, + 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa0, + 0x04, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x54, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, + 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, + 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x81, + 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xdb, 0x03, 0x0a, + 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x53, 0x72, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, + 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x87, + 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xdb, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x12, + 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, + 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, + 0x74, 0x79, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, + 0x74, 0x68, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, + 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x52, 0x61, 0x77, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x52, 0x61, 0x77, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, + 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, + 0x63, 0x70, 0x50, 0x68, 0x62, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x12, 0x44, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, + 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, + 0x68, 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, + 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, + 0x45, 0x63, 0x6e, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, + 0x45, 0x63, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, + 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, + 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x04, 0x0a, + 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x4a, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, + 0x65, 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, + 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, @@ -99590,7 +100864,7 @@ var file_otg_proto_rawDesc = []byte{ 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, @@ -99598,8 +100872,8 @@ var file_otg_proto_rawDesc = []byte{ 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, + 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, @@ -99607,10 +100881,10 @@ var file_otg_proto_rawDesc = []byte{ 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x43, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, @@ -99618,16 +100892,16 @@ var file_otg_proto_rawDesc = []byte{ 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, + 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, @@ -99637,48 +100911,100 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, - 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, - 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x04, 0x0a, 0x1b, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, - 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x49, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, + 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, + 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x04, + 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x12, 0x4a, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, - 0x6e, 0x74, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x6f, 0x6e, 0x74, 0x46, 0x72, - 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, + 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, + 0x67, 0x68, 0x70, 0x75, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, + 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x01, 0x0a, + 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, + 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, + 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, + 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, + 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, + 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, @@ -99688,48 +101014,145 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, - 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, + 0x65, 0x74, 0x61, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, + 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, + 0x61, 0x72, 0x79, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, + 0x74, 0x61, 0x72, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, + 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, + 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, + 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, - 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, - 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, + 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, + 0x64, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, - 0x72, 0x65, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x4d, 0x6f, 0x72, 0x65, 0x46, - 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, + 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, @@ -99739,1021 +101162,346 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, - 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, - 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x04, 0x0a, - 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x4b, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4c, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x46, 0x72, 0x61, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x4f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8e, 0x01, 0x0a, - 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, + 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, + 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, + 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x01, + 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfe, 0x03, - 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, - 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, - 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf9, 0x03, + 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x47, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa0, 0x04, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, - 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, - 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x46, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x60, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, - 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xb9, 0x04, 0x0a, 0x1c, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, + 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, - 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, - 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, - 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, - 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, - 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, - 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, - 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, - 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xdb, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, 0x72, 0x63, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x53, - 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0xdb, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, - 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, + 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, + 0x6f, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x60, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, - 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, - 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x04, 0x0a, - 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x12, 0x48, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, + 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0xaa, 0x04, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, + 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, + 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x04, 0x61, + 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x52, 0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x50, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x52, - 0x61, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, - 0x63, 0x70, 0x50, 0x68, 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, + 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, - 0x50, 0x68, 0x62, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, - 0x50, 0x68, 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x50, 0x68, 0x62, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, - 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x12, 0x44, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, + 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, + 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xdb, 0x03, + 0x0a, 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, + 0x36, 0x53, 0x72, 0x63, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x41, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, + 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xdb, 0x03, 0x0a, 0x12, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, + 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, + 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, - 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x36, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x44, 0x73, 0x63, 0x70, 0x45, - 0x63, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, - 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, - 0x64, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, - 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, - 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, - 0x63, 0x65, 0x64, 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x50, 0x72, 0x65, 0x63, 0x65, 0x64, - 0x65, 0x6e, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8c, 0x01, - 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf4, 0x03, 0x0a, - 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, - 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, - 0x44, 0x65, 0x6c, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x44, 0x65, - 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, - 0x68, 0x70, 0x75, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, - 0x75, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, - 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, - 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, - 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x54, 0x68, 0x72, 0x6f, 0x75, - 0x67, 0x68, 0x70, 0x75, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, - 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, - 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x12, 0x4b, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x79, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x73, 0x52, 0x65, 0x6c, 0x69, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, - 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, - 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x04, 0x0a, - 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x12, 0x48, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, - 0x6f, 0x6e, 0x65, 0x74, 0x61, 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x4d, 0x6f, 0x6e, 0x65, 0x74, 0x61, - 0x72, 0x79, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x01, 0x0a, - 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf9, 0x03, 0x0a, - 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, - 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, - 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, - 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x47, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x34, 0x54, - 0x6f, 0x73, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xef, - 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x90, 0x01, - 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x36, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x54, - 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, - 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, - 0x65, 0x6c, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, - 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x46, 0x6c, 0x6f, 0x77, 0x4c, 0x61, 0x62, 0x65, - 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0xb9, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, - 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x36, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, - 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, - 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, - 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xaa, 0x04, 0x0a, 0x19, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, - 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, - 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x48, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, - 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x4e, 0x65, 0x78, 0x74, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x60, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, - 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, - 0x69, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x45, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, - 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x46, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x48, - 0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, + 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, @@ -100763,90 +101511,45 @@ var file_otg_proto_rawDesc = []byte{ 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x87, 0x01, 0x0a, 0x19, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, - 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xdb, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x12, 0x40, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, - 0x76, 0x36, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, + 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xef, 0x03, + 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, + 0x73, 0x65, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x41, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x53, 0x72, 0x63, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, - 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0xdb, 0x03, 0x0a, 0x12, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, - 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x12, 0x41, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x41, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x70, 0x76, 0x36, 0x44, 0x73, 0x74, 0x43, + 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, @@ -100858,7 +101561,7 @@ var file_otg_proto_rawDesc = []byte{ 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, @@ -100866,8 +101569,8 @@ var file_otg_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, - 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, + 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, @@ -100875,10 +101578,10 @@ var file_otg_proto_rawDesc = []byte{ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, @@ -100886,16 +101589,16 @@ var file_otg_proto_rawDesc = []byte{ 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, + 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, @@ -100905,204 +101608,48 @@ var file_otg_proto_rawDesc = []byte{ 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, - 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xef, 0x03, - 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x91, 0x01, - 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4b, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, - 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa1, 0x04, 0x0a, 0x20, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x93, 0x01, 0x0a, 0x2d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, - 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x99, 0x01, 0x0a, 0x2b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0xb5, 0x04, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, - 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x52, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, - 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x53, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, - 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x53, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, - 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, + 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, - 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, @@ -101112,674 +101659,622 @@ var file_otg_proto_rawDesc = []byte{ 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x30, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x95, 0x01, 0x0a, 0x27, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, + 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4f, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x93, 0x01, 0x0a, 0x2d, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, + 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x99, 0x01, + 0x0a, 0x2b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, + 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, + 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xb5, 0x04, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x31, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, + 0x6f, 0x72, 0x12, 0x52, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x53, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x32, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, + 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x53, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x53, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x63, 0x74, 0x6f, + 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x30, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x32, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x73, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x31, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x33, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x73, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x32, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x32, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x32, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x34, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x73, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x33, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x33, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x33, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x35, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x73, 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x33, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x34, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x34, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x36, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x73, 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x34, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x35, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x35, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x35, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x37, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x73, 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x35, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, - 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x53, 0x72, 0x63, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4a, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x90, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0x96, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, - 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa6, 0x04, 0x0a, 0x21, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x68, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x36, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x36, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x36, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x37, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x37, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x50, 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x37, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x66, 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x66, + 0x63, 0x50, 0x61, 0x75, 0x73, 0x65, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x37, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, + 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x90, + 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, + 0x74, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x50, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, + 0x44, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, - 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, - 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, + 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x44, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, + 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x04, 0x0a, + 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x12, 0x49, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x9a, 0x01, 0x0a, 0x2c, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, - 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xba, 0x04, 0x0a, 0x25, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, - 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x53, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, - 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0b, 0x6d, 0x65, + 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, - 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x12, 0x54, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, + 0x63, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, - 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, - 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, - 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, + 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, - 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, - 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, - 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, - 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, - 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, + 0x61, 0x75, 0x73, 0x65, 0x53, 0x72, 0x63, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, @@ -101789,188 +102284,105 @@ var file_otg_proto_rawDesc = []byte{ 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, - 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8a, - 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xea, 0x03, 0x0a, 0x15, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, - 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, - 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, + 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x96, 0x01, 0x0a, 0x28, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, + 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0xa6, 0x04, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4f, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, + 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, + 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, - 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, - 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xea, 0x03, 0x0a, - 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, - 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, - 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, - 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, - 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe5, 0x03, 0x0a, 0x14, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, - 0x71, 0x4e, 0x75, 0x6d, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x03, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, - 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, - 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x03, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x42, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x03, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, - 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, + 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, + 0x50, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, + 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x50, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x45, 0x74, 0x68, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x94, 0x01, 0x0a, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0x9a, 0x01, 0x0a, 0x2c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0xba, 0x04, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x53, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x36, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, + 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, + 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x54, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, + 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, + 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x54, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x54, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4f, 0x70, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, @@ -101980,66 +102392,68 @@ var file_otg_proto_rawDesc = []byte{ 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, 0x01, - 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, + 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, + 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x91, 0x01, 0x0a, 0x23, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, + 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, + 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x88, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, + 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, + 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4b, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x45, 0x74, + 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x50, 0x61, 0x75, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, @@ -102047,74 +102461,27 @@ var file_otg_proto_rawDesc = []byte{ 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0xe0, 0x03, 0x0a, 0x13, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x42, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, - 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x89, 0x01, 0x0a, - 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, - 0x63, 0x6e, 0x43, 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, - 0x72, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x75, 0x6e, 0x74, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x43, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, + 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, + 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, @@ -102126,7 +102493,7 @@ var file_otg_proto_rawDesc = []byte{ 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, @@ -102134,8 +102501,8 @@ var file_otg_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, - 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, @@ -102143,10 +102510,10 @@ var file_otg_proto_rawDesc = []byte{ 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x43, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, @@ -102154,16 +102521,16 @@ var file_otg_proto_rawDesc = []byte{ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, - 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, @@ -102174,7 +102541,7 @@ var file_otg_proto_rawDesc = []byte{ 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, @@ -102182,35 +102549,35 @@ var file_otg_proto_rawDesc = []byte{ 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x12, 0x42, 0x0a, 0x06, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, - 0x55, 0x72, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, + 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x53, 0x65, 0x71, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, @@ -102221,8 +102588,8 @@ var file_otg_proto_rawDesc = []byte{ 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, - 0x6c, 0x41, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, + 0x6b, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, @@ -102230,35 +102597,35 @@ var file_otg_proto_rawDesc = []byte{ 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, - 0x6b, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, + 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, + 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x4d, 0x65, 0x74, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, - 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x41, + 0x63, 0x6b, 0x4e, 0x75, 0x6d, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, @@ -102268,92 +102635,189 @@ var file_otg_proto_rawDesc = []byte{ 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x89, 0x01, 0x0a, 0x1b, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, - 0x6c, 0x50, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, - 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x46, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, - 0x74, 0x6c, 0x52, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, - 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, - 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x44, 0x61, 0x74, 0x61, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x1c, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, + 0x6e, 0x4e, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0x88, 0x01, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe0, 0x03, 0x0a, 0x13, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, + 0x6e, 0x4e, 0x73, 0x12, 0x41, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x42, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x42, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x42, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x4e, 0x73, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x83, + 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, + 0x6e, 0x43, 0x77, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, + 0x43, 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x45, 0x63, 0x6e, 0x43, 0x77, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, + 0x68, 0x6f, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xea, 0x03, 0x0a, + 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, + 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, + 0x68, 0x6f, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, + 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, + 0x63, 0x70, 0x45, 0x63, 0x6e, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, @@ -102364,8 +102828,8 @@ var file_otg_proto_rawDesc = []byte{ 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, - 0x79, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, + 0x72, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, @@ -102373,7 +102837,7 @@ var file_otg_proto_rawDesc = []byte{ 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, @@ -102382,9 +102846,9 @@ var file_otg_proto_rawDesc = []byte{ 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, - 0x6c, 0x53, 0x79, 0x6e, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x6c, 0x55, 0x72, 0x67, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x2e, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, @@ -102392,16 +102856,16 @@ var file_otg_proto_rawDesc = []byte{ 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x43, 0x6f, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x55, 0x72, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, - 0x53, 0x79, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, + 0x55, 0x72, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, @@ -102412,7 +102876,7 @@ var file_otg_proto_rawDesc = []byte{ 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x72, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, @@ -102420,8 +102884,8 @@ var file_otg_proto_rawDesc = []byte{ 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, - 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, + 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, @@ -102429,10 +102893,10 @@ var file_otg_proto_rawDesc = []byte{ 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x12, 0x42, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, @@ -102440,15 +102904,15 @@ var file_otg_proto_rawDesc = []byte{ 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, - 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x43, 0x6f, 0x75, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, @@ -102460,7 +102924,7 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, - 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, @@ -102468,7 +102932,7 @@ var file_otg_proto_rawDesc = []byte{ 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, @@ -102477,26 +102941,26 @@ var file_otg_proto_rawDesc = []byte{ 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, - 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, + 0x50, 0x73, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4d, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, - 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x50, + 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, - 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, + 0x70, 0x43, 0x74, 0x6c, 0x50, 0x73, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, @@ -102506,629 +102970,331 @@ var file_otg_proto_rawDesc = []byte{ 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, - 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8a, - 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, - 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xea, 0x03, 0x0a, 0x15, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, - 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, - 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, - 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, - 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, - 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, - 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xea, 0x03, 0x0a, - 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, - 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, - 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, - 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, - 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, - 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe5, 0x03, 0x0a, 0x14, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0xe5, 0x02, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x44, - 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, - 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, - 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, - 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x8c, 0x01, 0x0a, 0x26, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, - 0x74, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, - 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, - 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, - 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, - 0x73, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8c, 0x01, - 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf4, 0x03, 0x0a, - 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, + 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x89, 0x01, + 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, + 0x73, 0x74, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, + 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, - 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8b, 0x01, 0x0a, - 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xe5, 0x02, 0x0a, - 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, - 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x06, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, - 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8c, 0x01, - 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, - 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf4, 0x03, 0x0a, - 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, - 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8c, 0x01, 0x0a, - 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf4, 0x03, 0x0a, 0x17, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x43, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, 0x74, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x52, 0x73, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x12, 0x42, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, + 0x53, 0x79, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x53, 0x79, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, + 0x6c, 0x46, 0x69, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe5, 0x03, + 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, + 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, + 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, 0x74, 0x6c, 0x46, 0x69, 0x6e, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x43, + 0x74, 0x6c, 0x46, 0x69, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x89, 0x01, 0x0a, 0x1b, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, + 0x6e, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, + 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, + 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x54, 0x63, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, + 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, + 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, + 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x53, 0x72, 0x63, 0x50, 0x6f, 0x72, 0x74, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, - 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf9, - 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x12, 0x46, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x12, 0x43, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, - 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, - 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xea, - 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, - 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, - 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x45, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, + 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x44, 0x73, 0x74, 0x50, 0x6f, 0x72, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x42, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, + 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x55, 0x64, 0x70, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, @@ -103138,45 +103304,71 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x53, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xe5, 0x02, 0x0a, 0x16, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, + 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x55, 0x64, 0x70, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x06, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, + 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, + 0x65, 0x73, 0x65, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x53, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, - 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x68, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, + 0x73, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, + 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, @@ -103186,247 +103378,214 @@ var file_otg_proto_rawDesc = []byte{ 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, - 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, - 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x44, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x45, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, - 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, + 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4a, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, - 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, + 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, - 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, - 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x89, - 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, - 0x65, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x2e, 0x43, + 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x30, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, + 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x12, 0x44, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x45, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xe5, 0x02, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, + 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, + 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, + 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, + 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x86, 0x01, 0x0a, + 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, + 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, + 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, + 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x03, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, + 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, - 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, - 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, - 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, - 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, + 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x72, 0x65, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, @@ -103436,419 +103595,242 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, - 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, - 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, - 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, - 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, - 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, - 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, - 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x96, 0x01, 0x0a, 0x30, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, - 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, + 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x9c, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, - 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, - 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc4, 0x04, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x55, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x56, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x56, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, - 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, - 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, - 0x01, 0x0a, 0x2f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x04, 0x0a, + 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4a, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, + 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x9b, 0x01, 0x0a, 0x2d, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xbf, 0x04, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, - 0x54, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, - 0x55, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x55, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x94, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9c, - 0x04, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x12, 0x4e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x99, 0x01, - 0x0a, 0x33, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, - 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x64, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x9f, 0x01, 0x0a, 0x31, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, - 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xd3, 0x04, 0x0a, 0x2a, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, - 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x12, 0x58, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, - 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, - 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x59, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, - 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x73, 0x12, 0x59, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, - 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, - 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, - 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, - 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, - 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, - 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, + 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, + 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x44, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x45, 0x46, + 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, - 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, - 0x67, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, - 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, - 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, - 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, - 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12, - 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, - 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, - 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, - 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, - 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, - 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, - 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, - 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, - 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, - 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, + 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, + 0x67, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, + 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, @@ -103860,7 +103842,7 @@ var file_otg_proto_rawDesc = []byte{ 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x4d, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, @@ -103869,7 +103851,7 @@ var file_otg_proto_rawDesc = []byte{ 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, @@ -103877,27 +103859,27 @@ var file_otg_proto_rawDesc = []byte{ 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, - 0x70, 0x61, 0x72, 0x65, 0x31, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, + 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, - 0x65, 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, + 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, - 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, + 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, 0x6e, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x50, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, @@ -103909,7 +103891,7 @@ var file_otg_proto_rawDesc = []byte{ 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, + 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, @@ -103917,7 +103899,7 @@ var file_otg_proto_rawDesc = []byte{ 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, @@ -103927,10 +103909,10 @@ var file_otg_proto_rawDesc = []byte{ 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x06, + 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, + 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, @@ -103938,16 +103920,16 @@ var file_otg_proto_rawDesc = []byte{ 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, @@ -103959,7 +103941,7 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, @@ -103968,7 +103950,7 @@ var file_otg_proto_rawDesc = []byte{ 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, @@ -103977,11 +103959,11 @@ var file_otg_proto_rawDesc = []byte{ 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x04, 0x0a, 0x1d, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, - 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, @@ -103989,17 +103971,17 @@ var file_otg_proto_rawDesc = []byte{ 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, + 0x47, 0x74, 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, - 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x70, 0x76, 0x31, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, @@ -104011,7 +103993,7 @@ var file_otg_proto_rawDesc = []byte{ 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, @@ -104019,7 +104001,7 @@ var file_otg_proto_rawDesc = []byte{ 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x43, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, @@ -104028,26 +104010,26 @@ var file_otg_proto_rawDesc = []byte{ 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x06, 0x63, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, - 0x32, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, + 0x31, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, @@ -104057,18 +104039,442 @@ var file_otg_proto_rawDesc = []byte{ 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, + 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, + 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4c, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x53, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x4e, 0x50, 0x64, 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x50, 0x64, + 0x75, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, + 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, + 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, + 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, + 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x30, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, + 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0x9c, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0xc4, 0x04, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x55, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x56, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, + 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x31, 0x4e, + 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x2f, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x9b, + 0x01, 0x0a, 0x2d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xbf, 0x04, 0x0a, + 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x54, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x37, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, + 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, + 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x12, 0x55, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x55, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x55, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, + 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0x94, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9c, 0x04, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x03, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4e, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x99, 0x01, 0x0a, 0x33, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, + 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, + 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0x9f, 0x01, 0x0a, 0x31, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, + 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0xd3, 0x04, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, + 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x12, 0x58, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x3b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, + 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, + 0x64, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x59, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, + 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, + 0x65, 0x61, 0x64, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x59, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, + 0x78, 0x74, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x59, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x45, 0x78, 0x74, + 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x4e, 0x65, 0x78, 0x74, 0x45, 0x78, 0x74, 0x65, 0x6e, 0x73, + 0x69, 0x6f, 0x6e, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, + 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x32, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, + 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, + 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, + 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, + 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, + 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, 0x6e, + 0x67, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x50, 0x69, 0x67, 0x67, 0x79, 0x62, 0x61, 0x63, 0x6b, 0x69, + 0x6e, 0x67, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, + 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, @@ -104076,79 +104482,279 @@ var file_otg_proto_rawDesc = []byte{ 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, - 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, + 0x22, 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x46, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, + 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, + 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x12, 0x44, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, + 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x45, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, + 0x61, 0x72, 0x65, 0x31, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4a, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, + 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, + 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, - 0x70, 0x61, 0x72, 0x65, 0x32, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x61, 0x67, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, + 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, + 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, + 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, + 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, + 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x89, + 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, + 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, + 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xe5, 0x03, 0x0a, 0x14, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, + 0x65, 0x69, 0x64, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x03, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, + 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, 0x69, 0x64, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x54, 0x65, + 0x69, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x22, 0x8d, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x12, 0x44, 0x0a, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, + 0x74, 0x68, 0x22, 0x93, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x97, 0x04, 0x0a, 0x1e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, + 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, - 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, - 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, - 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, - 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4d, 0x0a, 0x0b, + 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, + 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4d, 0x0a, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, - 0x65, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4d, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, @@ -104158,97 +104764,45 @@ var file_otg_proto_rawDesc = []byte{ 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, - 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, - 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, - 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8f, - 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, - 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x6e, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8b, 0x01, 0x0a, 0x1d, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, + 0x70, 0x61, 0x72, 0x65, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xef, 0x03, 0x0a, 0x16, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, + 0x72, 0x65, 0x32, 0x12, 0x44, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x0b, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, - 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, - 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, + 0x72, 0x65, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x45, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x47, + 0x74, 0x70, 0x76, 0x32, 0x53, 0x70, 0x61, 0x72, 0x65, 0x32, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, @@ -104258,48 +104812,509 @@ var file_otg_proto_rawDesc = []byte{ 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, + 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, - 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, - 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, + 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, + 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, + 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, + 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, + 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, + 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, + 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x04, 0x0a, - 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, + 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x83, 0x04, 0x0a, + 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, + 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, + 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, + 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, + 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, + 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, + 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, + 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, + 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, + 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, + 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf4, + 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, + 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, + 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x46, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, + 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, + 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, + 0x41, 0x64, 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, + 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, - 0x70, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x48, 0x61, - 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, + 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, + 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, + 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, + 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, + 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, + 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, + 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa1, 0x04, + 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, + 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, + 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, + 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, + 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, + 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, + 0x67, 0x74, 0x68, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, + 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa1, 0x04, 0x0a, 0x20, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, + 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, + 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, + 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, + 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x4d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, + 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, + 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, + 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, + 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x12, 0x4e, + 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, + 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, + 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, + 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, 0x01, + 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, + 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, + 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, + 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, @@ -104309,150 +105324,121 @@ var file_otg_proto_rawDesc = []byte{ 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, - 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x8d, - 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, - 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, - 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, - 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4b, - 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x41, 0x72, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x4c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, - 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, - 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, + 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, + 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, + 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, + 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xf4, 0x02, 0x0a, 0x1b, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, + 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x49, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, + 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, + 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, + 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, + 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, + 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x72, 0x70, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, - 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, - 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, - 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, - 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, - 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, - 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, 0x61, - 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x48, - 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, + 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, + 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, + 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, + 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, @@ -104462,329 +105448,391 @@ var file_otg_proto_rawDesc = []byte{ 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x95, 0x01, - 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, - 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, - 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, - 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4f, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x4f, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x95, 0x01, 0x0a, 0x27, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, - 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, - 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x2e, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4f, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, 0x61, - 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x48, 0x61, 0x72, 0x64, 0x77, - 0x61, 0x72, 0x65, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8f, 0x01, 0x0a, 0x29, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x95, 0x01, 0x0a, 0x27, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x22, 0xa1, 0x04, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x12, 0x4e, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x41, 0x64, 0x64, 0x72, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x41, 0x64, 0x64, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4f, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x41, - 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, - 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4f, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x41, 0x72, 0x70, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x41, 0x64, 0x64, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, - 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, - 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, - 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, - 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x2a, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, + 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8c, - 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, - 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x96, + 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, + 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xa6, 0x04, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4f, 0x0a, + 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x50, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, + 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x12, 0x50, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, + 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, + 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, + 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x54, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, + 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, + 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, + 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x92, 0x01, + 0x0a, 0x2c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, + 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0x98, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, - 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf4, 0x03, - 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, - 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, - 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xb0, 0x04, + 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, + 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, + 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x0b, 0x6d, + 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, + 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, + 0x52, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, + 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, - 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8c, 0x01, - 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf4, 0x03, 0x0a, - 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, - 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, - 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, - 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, - 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0xf4, 0x02, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x73, 0x75, 0x6d, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x52, - 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, - 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, - 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, - 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, - 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, - 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, - 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, + 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x96, 0x01, 0x0a, 0x30, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, + 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, - 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, - 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, - 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, - 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, - 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, - 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4c, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, + 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x9c, 0x01, 0x0a, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, + 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xc4, 0x04, 0x0a, 0x27, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, + 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, + 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x56, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, + 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x56, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, + 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x56, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, + 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, + 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, + 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, + 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfe, 0x03, 0x0a, 0x19, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, + 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, + 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, + 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, + 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, + 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, + 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, + 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, + 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, + 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, + 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, + 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, + 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, + 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x48, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, + 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, + 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, + 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, + 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, + 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, + 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x28, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, + 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, + 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x94, 0x01, 0x0a, 0x26, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, + 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, + 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, + 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, + 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x9c, 0x04, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, + 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, + 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4e, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, + 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, + 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, + 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, + 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, + 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, + 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x22, 0x92, 0x01, 0x0a, 0x2c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x98, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0xb0, 0x04, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, + 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x51, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, + 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, + 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x52, + 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, + 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x12, 0x52, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, + 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, + 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, @@ -104794,204 +105842,161 @@ var file_otg_proto_rawDesc = []byte{ 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x90, 0x01, 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x96, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0xa6, 0x04, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x4f, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x50, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, - 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, - 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, - 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, - 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, - 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, - 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x92, 0x01, 0x0a, 0x2c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, + 0x65, 0x6e, 0x74, 0x22, 0xfa, 0x02, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, + 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x54, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, + 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, + 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, + 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, + 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, + 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, + 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, + 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, + 0x22, 0x80, 0x03, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x4d, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x06, 0x63, + 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, + 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, + 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, + 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, + 0x74, 0x6f, 0x6d, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x98, 0x01, 0x0a, 0x2a, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, - 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xb0, 0x04, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, - 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x51, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, - 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, - 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x52, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, - 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x52, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, + 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, + 0x73, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x96, 0x01, 0x0a, 0x30, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, - 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, + 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, + 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, + 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, + 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8a, 0x01, 0x0a, 0x1c, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, + 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x22, 0x9c, 0x01, 0x0a, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, - 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0xc4, 0x04, 0x0a, 0x27, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, - 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x55, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, - 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x56, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, - 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, - 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x56, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, - 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x4e, - 0x65, 0x78, 0x74, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, - 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, - 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, - 0x6f, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, + 0x68, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, @@ -104999,49 +106004,428 @@ var file_otg_proto_rawDesc = []byte{ 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, - 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, - 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, + 0x75, 0x6e, 0x74, 0x22, 0xaf, 0x04, 0x0a, 0x1a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, + 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, + 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, + 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, + 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, + 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, + 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, + 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, + 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, 0x01, 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, + 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, + 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, + 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x06, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, + 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, + 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, + 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, + 0x31, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, + 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, + 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, + 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, + 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, + 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, + 0x31, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, + 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, + 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x73, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, - 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, + 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, + 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, + 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, + 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, + 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, + 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, + 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, + 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, + 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, + 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8c, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, + 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf4, 0x03, 0x0a, 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, + 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x2e, 0x43, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, + 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, + 0x67, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, + 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, + 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, + 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, + 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xee, 0x02, 0x0a, 0x19, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, + 0x31, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, + 0x31, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, + 0x01, 0x01, 0x12, 0x50, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, + 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, + 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, + 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, + 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, + 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, + 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, + 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x8c, 0x01, 0x0a, + 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, + 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x92, 0x01, 0x0a, 0x24, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, + 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, + 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, + 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, + 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, + 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, + 0x73, 0x73, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, + 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, + 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, + 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, + 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, + 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, + 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, + 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, + 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, + 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, + 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x83, 0x01, 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, + 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, + 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, + 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, + 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x89, 0x01, 0x0a, 0x1b, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, + 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, + 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, + 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x91, 0x04, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, + 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, + 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, + 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, + 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x43, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, + 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, + 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, + 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, + 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, + 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, + 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, + 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, + 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, + 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, + 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, + 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, + 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, + 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, + 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, + 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, + 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, + 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, + 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, + 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, + 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x88, 0x04, 0x0a, 0x1b, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, + 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x06, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, + 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, 0x43, 0x68, + 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, + 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4a, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, + 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, + 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, - 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, + 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, + 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, + 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, + 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, + 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, + 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, + 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, + 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, + 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, + 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, + 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, + 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, + 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, + 0x6e, 0x67, 0x74, 0x68, 0x22, 0x91, 0x01, 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, + 0x53, 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, + 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, + 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, + 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xb9, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, + 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, + 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x68, 0x6f, + 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, + 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, + 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, + 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, + 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4b, + 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, + 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, + 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, + 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, + 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, + 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, + 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, + 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, + 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, + 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, + 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, + 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, + 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, + 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, - 0x64, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, + 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, - 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, + 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, + 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, @@ -105050,10 +106434,10 @@ var file_otg_proto_rawDesc = []byte{ 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x47, + 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x2e, 0x43, + 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, @@ -105061,16 +106445,16 @@ var file_otg_proto_rawDesc = []byte{ 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x4d, + 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x48, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, - 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, + 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, + 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x6f, 0x64, + 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, @@ -105081,977 +106465,247 @@ var file_otg_proto_rawDesc = []byte{ 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x22, 0x8e, 0x01, 0x0a, 0x28, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, - 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0x94, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, - 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, - 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, - 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, - 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x9c, 0x04, 0x0a, 0x1f, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, - 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x4d, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x4e, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, - 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, - 0x4e, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x4e, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x49, 0x64, - 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, - 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, - 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, - 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, - 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x92, 0x01, 0x0a, 0x2c, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, - 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x98, 0x01, - 0x0a, 0x2a, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xb0, 0x04, 0x0a, 0x23, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, - 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x51, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x34, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, - 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x52, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, - 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x52, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x52, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x53, 0x65, 0x71, - 0x75, 0x65, 0x6e, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, - 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, - 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, - 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xfa, 0x02, 0x0a, 0x1d, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, - 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x4b, 0x0a, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, - 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x54, 0x0a, 0x09, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x63, 0x6d, 0x70, 0x76, 0x36, 0x45, 0x63, 0x68, 0x6f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, - 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, - 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, - 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, - 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, - 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, - 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, - 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, - 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x80, 0x03, 0x0a, 0x1f, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x12, 0x4d, 0x0a, 0x06, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x63, - 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, - 0x75, 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, - 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x09, 0x67, - 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x63, 0x6d, 0x70, 0x76, 0x36, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, - 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, - 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, - 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, - 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x84, 0x01, 0x0a, 0x1e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, - 0x74, 0x68, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, - 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, - 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x50, 0x70, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, - 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, - 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, - 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, - 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, - 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, - 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x89, 0x01, - 0x0a, 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, - 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8f, 0x01, 0x0a, 0x21, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, - 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, - 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, - 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, - 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, - 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xaf, 0x04, 0x0a, 0x1a, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x12, 0x48, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2b, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, - 0x12, 0x49, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, - 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, - 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x49, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x50, 0x70, 0x70, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x49, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x50, 0x70, 0x70, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, - 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, - 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, - 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, - 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, - 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x87, 0x01, - 0x0a, 0x21, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, - 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8d, 0x01, 0x0a, 0x1f, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf9, 0x03, 0x0a, 0x18, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x46, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x47, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x47, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, - 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, - 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, - 0x01, 0x12, 0x47, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x84, 0x01, 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, - 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, - 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8a, 0x01, 0x0a, 0x1c, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, - 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xea, 0x03, 0x0a, 0x15, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x43, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x26, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x44, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, - 0x44, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x44, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, - 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, - 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, - 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x86, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, - 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, - 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, - 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8c, 0x01, - 0x0a, 0x1e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, - 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, - 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, - 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, - 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, - 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xf4, 0x03, 0x0a, - 0x17, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, - 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x12, 0x45, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, - 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x46, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, - 0x6e, 0x75, 0x73, 0x65, 0x64, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, - 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x46, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x46, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x55, 0x6e, 0x75, - 0x73, 0x65, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0xee, 0x02, 0x0a, 0x19, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, - 0x6d, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, - 0x6d, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, - 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x50, 0x0a, 0x09, 0x67, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, - 0x67, 0x6d, 0x70, 0x76, 0x31, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x2e, 0x47, 0x65, - 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x01, 0x52, 0x09, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x06, - 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x88, 0x01, 0x01, 0x1a, 0x3c, 0x0a, 0x06, 0x43, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x22, 0x32, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, - 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x63, - 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x10, 0x02, 0x1a, 0x37, 0x0a, 0x09, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x64, 0x22, 0x2a, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, - 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x08, 0x0a, - 0x04, 0x67, 0x6f, 0x6f, 0x64, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x62, 0x61, 0x64, 0x10, 0x02, - 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x65, 0x64, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x75, - 0x73, 0x74, 0x6f, 0x6d, 0x22, 0x8c, 0x01, 0x0a, 0x26, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, - 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, - 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0x92, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, - 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x92, 0x04, 0x0a, 0x1d, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x4b, 0x0a, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, - 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x2e, 0x43, - 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, - 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x09, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x4c, 0x0a, 0x0b, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, - 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4c, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, - 0x70, 0x76, 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4c, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x49, 0x67, 0x6d, 0x70, 0x76, - 0x31, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, - 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, - 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, - 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, - 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, - 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x83, 0x01, - 0x0a, 0x1d, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, - 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, - 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x22, 0x89, 0x01, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, - 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, - 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, - 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, - 0x91, 0x04, 0x0a, 0x14, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, - 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x42, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, - 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, - 0x62, 0x65, 0x6c, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x48, - 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, - 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, - 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x43, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, - 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x43, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x43, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, - 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, - 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, - 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, - 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, - 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, - 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, - 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, - 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x24, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, - 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, - 0x22, 0x90, 0x01, 0x0a, 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, - 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x22, 0x88, 0x04, 0x0a, 0x1b, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x12, 0x49, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, - 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, - 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, - 0x73, 0x12, 0x4a, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, - 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, - 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, - 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4a, 0x0a, - 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, - 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, - 0x6c, 0x73, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, - 0x6e, 0x74, 0x88, 0x01, 0x01, 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, - 0x4c, 0x0a, 0x04, 0x45, 0x6e, 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, - 0x63, 0x69, 0x66, 0x69, 0x65, 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x10, 0x02, 0x12, 0x0a, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, - 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, - 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, - 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x8b, - 0x01, 0x0a, 0x25, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, - 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x4d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, - 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, - 0x67, 0x74, 0x68, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x91, 0x01, 0x0a, - 0x23, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, - 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, - 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, - 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, - 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, - 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x22, 0xb9, 0x04, 0x0a, 0x1c, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, - 0x6b, 0x12, 0x4a, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x2d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, - 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, - 0x74, 0x61, 0x63, 0x6b, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, - 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x19, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, - 0x12, 0x17, 0x0a, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, - 0x52, 0x04, 0x61, 0x75, 0x74, 0x6f, 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x0b, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, - 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, - 0x6b, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, - 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x4b, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, - 0x6f, 0x74, 0x74, 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x65, 0x72, 0x48, 0x03, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x88, 0x01, 0x01, 0x12, 0x4b, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x42, 0x6f, 0x74, 0x74, - 0x6f, 0x6d, 0x4f, 0x66, 0x53, 0x74, 0x61, 0x63, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x04, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x1a, 0x60, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x56, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x61, 0x75, - 0x74, 0x6f, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, - 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, - 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, - 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x61, 0x75, 0x74, 0x6f, - 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, - 0x0a, 0x0a, 0x5f, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x88, 0x01, 0x0a, - 0x22, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, - 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x54, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x88, 0x01, 0x01, 0x12, 0x1b, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x88, 0x01, - 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x42, 0x09, 0x0a, 0x07, - 0x5f, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x22, 0x8e, 0x01, 0x0a, 0x20, 0x50, 0x61, 0x74, 0x74, - 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, - 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x88, 0x01, 0x01, 0x12, 0x17, 0x0a, 0x04, 0x73, 0x74, 0x65, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x04, 0x73, 0x74, 0x65, 0x70, 0x88, 0x01, 0x01, - 0x12, 0x19, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x48, - 0x02, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x42, 0x08, 0x0a, 0x06, 0x5f, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x73, 0x74, 0x65, 0x70, 0x42, 0x08, - 0x0a, 0x06, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0xfe, 0x03, 0x0a, 0x19, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, - 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x12, 0x47, 0x0a, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, - 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, - 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x2e, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x6e, - 0x75, 0x6d, 0x48, 0x00, 0x52, 0x06, 0x63, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, - 0x19, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, - 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x16, 0x0a, 0x06, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x73, 0x12, 0x48, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x5f, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, - 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, - 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, - 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x54, 0x61, 0x67, 0x73, 0x12, 0x48, 0x0a, 0x09, - 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, - 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, 0x48, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, 0x12, 0x48, 0x0a, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, - 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x46, 0x6c, 0x6f, 0x77, 0x4d, 0x70, 0x6c, 0x73, 0x54, - 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x4c, 0x69, 0x76, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x65, 0x72, - 0x48, 0x03, 0x52, 0x09, 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x88, 0x01, 0x01, - 0x1a, 0x56, 0x0a, 0x06, 0x43, 0x68, 0x6f, 0x69, 0x63, 0x65, 0x22, 0x4c, 0x0a, 0x04, 0x45, 0x6e, - 0x75, 0x6d, 0x12, 0x0f, 0x0a, 0x0b, 0x75, 0x6e, 0x73, 0x70, 0x65, 0x63, 0x69, 0x66, 0x69, 0x65, - 0x64, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x10, 0x02, 0x12, 0x0a, - 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x10, 0x03, 0x12, 0x0d, 0x0a, 0x09, 0x69, 0x6e, - 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x64, 0x65, 0x63, - 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x10, 0x05, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x63, 0x68, 0x6f, - 0x69, 0x63, 0x65, 0x42, 0x08, 0x0a, 0x06, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, - 0x0a, 0x5f, 0x69, 0x6e, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, - 0x64, 0x65, 0x63, 0x72, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0xb9, 0x01, 0x0a, 0x07, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, 0x10, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x70, 0x65, - 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x0e, 0x61, 0x70, 0x69, 0x53, 0x70, 0x65, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x73, 0x64, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0a, 0x73, 0x64, 0x6b, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x70, - 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x02, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, - 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x64, 0x6b, 0x5f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x31, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, - 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x2b, 0x0a, 0x07, 0x46, 0x61, 0x69, 0x6c, - 0x75, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x37, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x06, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x4d, - 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, - 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x3b, 0x0a, - 0x11, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, - 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x38, 0x0a, 0x11, 0x47, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x23, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x22, 0x3e, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, - 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, - 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x50, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, - 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, - 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, - 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x41, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, - 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x54, 0x0a, 0x17, 0x53, 0x65, 0x74, - 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, - 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x6e, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x17, 0x63, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, - 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x15, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, - 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x54, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x42, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, - 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x44, 0x0a, 0x13, 0x53, 0x65, 0x74, - 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x2d, 0x0a, 0x0a, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x6c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, - 0x3e, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, - 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, - 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, - 0x50, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0d, 0x63, 0x61, 0x70, - 0x74, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x22, 0x41, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, - 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, - 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x49, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, - 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x0c, 0x66, 0x6c, - 0x6f, 0x77, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x52, 0x0b, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, - 0x3a, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x48, 0x0a, 0x14, 0x53, - 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, - 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x3f, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, - 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, - 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x46, 0x0a, 0x0f, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x69, - 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x0c, 0x70, 0x69, 0x6e, - 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x52, 0x0b, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4a, - 0x0a, 0x10, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x36, 0x0a, 0x0d, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0c, 0x70, 0x69, - 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0x0a, 0x17, 0x53, 0x65, - 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, - 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x22, 0x42, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, - 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, - 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x4c, 0x0a, 0x15, 0x53, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, - 0x0c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x22, 0x40, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, - 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, - 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, - 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0f, 0x6d, 0x65, 0x74, - 0x72, 0x69, 0x63, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x55, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, - 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, - 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0f, 0x6d, - 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d, - 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0d, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x51, 0x0a, - 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x52, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, 0x0f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, - 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x52, 0x0e, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x22, 0x3b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x62, 0x79, 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, - 0x22, 0x3c, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0xa2, - 0x09, 0x0a, 0x07, 0x4f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x09, 0x53, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x12, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x43, - 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, - 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, - 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, - 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x53, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x4c, - 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, - 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, - 0x0f, 0x53, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x12, 0x17, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, - 0x0d, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x19, - 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, - 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x08, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x69, 0x6e, - 0x67, 0x12, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x69, 0x6e, 0x67, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, - 0x6e, 0x64, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, - 0x0a, 0x10, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, - 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x49, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x47, 0x65, - 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, - 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x65, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, - 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, - 0x75, 0x72, 0x65, 0x12, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, - 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x6f, 0x74, - 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x6f, 0x74, 0x67, - 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x42, 0x0b, 0x5a, 0x09, 0x2e, 0x2f, 0x6f, 0x74, 0x67, 0x3b, 0x6f, 0x74, 0x67, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x22, 0xb9, 0x01, 0x0a, 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2d, 0x0a, + 0x10, 0x61, 0x70, 0x69, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0e, 0x61, 0x70, 0x69, 0x53, 0x70, + 0x65, 0x63, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, + 0x73, 0x64, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x0a, 0x73, 0x64, 0x6b, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, + 0x01, 0x01, 0x12, 0x24, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x73, 0x64, 0x6b, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x31, 0x0a, + 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, + 0x22, 0x2b, 0x0a, 0x07, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x20, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x37, 0x0a, + 0x10, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x23, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, + 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x4d, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, + 0x0d, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x3b, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x22, 0x38, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x3e, 0x0a, 0x14, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x50, 0x0a, 0x16, + 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x41, + 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, + 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x22, 0x54, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0e, + 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x6e, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x52, 0x0a, 0x17, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x5f, 0x61, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, + 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x52, 0x15, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x54, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x5f, 0x73, + 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x42, 0x0a, + 0x18, 0x53, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, + 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x22, 0x44, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2d, 0x0a, 0x0a, 0x6c, 0x69, 0x6e, 0x6b, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, + 0x74, 0x67, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x6c, 0x69, + 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x3e, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x4c, 0x69, + 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, + 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x50, 0x0a, 0x16, 0x53, 0x65, 0x74, 0x43, 0x61, + 0x70, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x36, 0x0a, 0x0d, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0c, 0x63, 0x61, 0x70, + 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x41, 0x0a, 0x17, 0x53, 0x65, 0x74, + 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x49, 0x0a, 0x12, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x33, 0x0a, 0x0c, 0x66, 0x6c, 0x6f, 0x77, 0x73, 0x5f, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x46, + 0x6c, 0x6f, 0x77, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x66, 0x6c, 0x6f, 0x77, + 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x22, 0x3a, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x23, + 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0b, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x22, 0x48, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x30, 0x0a, 0x0b, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0f, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x0a, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x3f, 0x0a, + 0x15, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, + 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x46, + 0x0a, 0x0f, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x33, 0x0a, 0x0c, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0b, 0x70, 0x69, 0x6e, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x4a, 0x0a, 0x10, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x69, + 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x0d, 0x70, 0x69, + 0x6e, 0x67, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0c, 0x70, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x54, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, + 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, + 0x0e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x42, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x4c, 0x0a, 0x15, + 0x53, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x0c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x22, 0x40, 0x0a, 0x16, 0x53, 0x65, + 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, 0x0a, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x57, 0x61, 0x72, 0x6e, + 0x69, 0x6e, 0x67, 0x52, 0x07, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x51, 0x0a, 0x11, + 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x3c, 0x0a, 0x0f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x72, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, + 0x0e, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0x55, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x10, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4d, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x0e, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x0f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3c, 0x0a, + 0x0f, 0x63, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x43, 0x61, 0x70, + 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0e, 0x63, 0x61, 0x70, + 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3b, 0x0a, 0x12, 0x47, + 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x5f, 0x62, 0x79, + 0x74, 0x65, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x42, 0x79, 0x74, 0x65, 0x73, 0x22, 0x3c, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x26, + 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x76, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x32, 0xa2, 0x09, 0x0a, 0x07, 0x4f, 0x70, 0x65, 0x6e, 0x61, + 0x70, 0x69, 0x12, 0x3a, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, + 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, + 0x0a, 0x09, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x43, 0x0a, 0x0c, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x4c, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, + 0x74, 0x72, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, + 0x0a, 0x10, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, + 0x72, 0x6f, 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x6f, + 0x6c, 0x41, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x4f, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x6d, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x43, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x18, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x19, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x53, 0x65, 0x74, 0x4c, 0x69, 0x6e, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, + 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, + 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x43, + 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x6f, + 0x77, 0x73, 0x12, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, + 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x6c, 0x6f, 0x77, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x19, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, + 0x08, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x14, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x53, 0x65, 0x6e, 0x64, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x15, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x6e, 0x64, 0x50, 0x69, 0x6e, 0x67, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x2e, 0x6f, 0x74, 0x67, + 0x2e, 0x53, 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, + 0x65, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x2e, 0x6f, 0x74, 0x67, 0x2e, + 0x53, 0x65, 0x74, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1b, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x53, 0x65, 0x74, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, + 0x12, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, + 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x15, + 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, + 0x0a, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x12, 0x16, 0x2e, 0x6f, 0x74, + 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, + 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3d, 0x0a, 0x0a, + 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x1a, 0x17, 0x2e, 0x6f, 0x74, 0x67, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x0b, 0x5a, 0x09, 0x2e, + 0x2f, 0x6f, 0x74, 0x67, 0x3b, 0x6f, 0x74, 0x67, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -107762,1047 +108416,1046 @@ var file_otg_proto_depIdxs = []int32{ 58, // 299: otg.RsvpEroSubobject.hop_type:type_name -> otg.RsvpEroSubobject.HopType.Enum 452, // 300: otg.Flow.tx_rx:type_name -> otg.FlowTxRx 455, // 301: otg.Flow.packet:type_name -> otg.FlowHeader - 455, // 302: otg.Flow.ingress_packet:type_name -> otg.FlowHeader - 455, // 303: otg.Flow.egress_packet:type_name -> otg.FlowHeader - 482, // 304: otg.Flow.size:type_name -> otg.FlowSize - 485, // 305: otg.Flow.rate:type_name -> otg.FlowRate - 486, // 306: otg.Flow.duration:type_name -> otg.FlowDuration - 493, // 307: otg.Flow.metrics:type_name -> otg.FlowMetrics - 59, // 308: otg.FlowTxRx.choice:type_name -> otg.FlowTxRx.Choice.Enum - 453, // 309: otg.FlowTxRx.port:type_name -> otg.FlowPort - 454, // 310: otg.FlowTxRx.device:type_name -> otg.FlowRouter - 60, // 311: otg.FlowRouter.mode:type_name -> otg.FlowRouter.Mode.Enum - 61, // 312: otg.FlowHeader.choice:type_name -> otg.FlowHeader.Choice.Enum - 456, // 313: otg.FlowHeader.custom:type_name -> otg.FlowCustom - 458, // 314: otg.FlowHeader.ethernet:type_name -> otg.FlowEthernet - 459, // 315: otg.FlowHeader.vlan:type_name -> otg.FlowVlan - 460, // 316: otg.FlowHeader.vxlan:type_name -> otg.FlowVxlan - 461, // 317: otg.FlowHeader.ipv4:type_name -> otg.FlowIpv4 - 465, // 318: otg.FlowHeader.ipv6:type_name -> otg.FlowIpv6 - 466, // 319: otg.FlowHeader.pfcpause:type_name -> otg.FlowPfcPause - 467, // 320: otg.FlowHeader.ethernetpause:type_name -> otg.FlowEthernetPause - 468, // 321: otg.FlowHeader.tcp:type_name -> otg.FlowTcp - 469, // 322: otg.FlowHeader.udp:type_name -> otg.FlowUdp - 470, // 323: otg.FlowHeader.gre:type_name -> otg.FlowGre - 471, // 324: otg.FlowHeader.gtpv1:type_name -> otg.FlowGtpv1 - 473, // 325: otg.FlowHeader.gtpv2:type_name -> otg.FlowGtpv2 - 474, // 326: otg.FlowHeader.arp:type_name -> otg.FlowArp - 475, // 327: otg.FlowHeader.icmp:type_name -> otg.FlowIcmp - 477, // 328: otg.FlowHeader.icmpv6:type_name -> otg.FlowIcmpv6 - 479, // 329: otg.FlowHeader.ppp:type_name -> otg.FlowPpp - 480, // 330: otg.FlowHeader.igmpv1:type_name -> otg.FlowIgmpv1 - 481, // 331: otg.FlowHeader.mpls:type_name -> otg.FlowMpls - 457, // 332: otg.FlowCustom.metric_tags:type_name -> otg.FlowCustomMetricTag - 628, // 333: otg.FlowEthernet.dst:type_name -> otg.PatternFlowEthernetDst - 631, // 334: otg.FlowEthernet.src:type_name -> otg.PatternFlowEthernetSrc - 634, // 335: otg.FlowEthernet.ether_type:type_name -> otg.PatternFlowEthernetEtherType - 637, // 336: otg.FlowEthernet.pfc_queue:type_name -> otg.PatternFlowEthernetPfcQueue - 640, // 337: otg.FlowVlan.priority:type_name -> otg.PatternFlowVlanPriority - 643, // 338: otg.FlowVlan.cfi:type_name -> otg.PatternFlowVlanCfi - 646, // 339: otg.FlowVlan.id:type_name -> otg.PatternFlowVlanId - 649, // 340: otg.FlowVlan.tpid:type_name -> otg.PatternFlowVlanTpid - 652, // 341: otg.FlowVxlan.flags:type_name -> otg.PatternFlowVxlanFlags - 655, // 342: otg.FlowVxlan.reserved0:type_name -> otg.PatternFlowVxlanReserved0 - 658, // 343: otg.FlowVxlan.vni:type_name -> otg.PatternFlowVxlanVni - 661, // 344: otg.FlowVxlan.reserved1:type_name -> otg.PatternFlowVxlanReserved1 - 664, // 345: otg.FlowIpv4.version:type_name -> otg.PatternFlowIpv4Version - 667, // 346: otg.FlowIpv4.header_length:type_name -> otg.PatternFlowIpv4HeaderLength - 462, // 347: otg.FlowIpv4.priority:type_name -> otg.FlowIpv4Priority - 670, // 348: otg.FlowIpv4.total_length:type_name -> otg.PatternFlowIpv4TotalLength - 673, // 349: otg.FlowIpv4.identification:type_name -> otg.PatternFlowIpv4Identification - 676, // 350: otg.FlowIpv4.reserved:type_name -> otg.PatternFlowIpv4Reserved - 679, // 351: otg.FlowIpv4.dont_fragment:type_name -> otg.PatternFlowIpv4DontFragment - 682, // 352: otg.FlowIpv4.more_fragments:type_name -> otg.PatternFlowIpv4MoreFragments - 685, // 353: otg.FlowIpv4.fragment_offset:type_name -> otg.PatternFlowIpv4FragmentOffset - 688, // 354: otg.FlowIpv4.time_to_live:type_name -> otg.PatternFlowIpv4TimeToLive - 691, // 355: otg.FlowIpv4.protocol:type_name -> otg.PatternFlowIpv4Protocol - 692, // 356: otg.FlowIpv4.header_checksum:type_name -> otg.PatternFlowIpv4HeaderChecksum - 695, // 357: otg.FlowIpv4.src:type_name -> otg.PatternFlowIpv4Src - 698, // 358: otg.FlowIpv4.dst:type_name -> otg.PatternFlowIpv4Dst - 62, // 359: otg.FlowIpv4Priority.choice:type_name -> otg.FlowIpv4Priority.Choice.Enum - 701, // 360: otg.FlowIpv4Priority.raw:type_name -> otg.PatternFlowIpv4PriorityRaw - 464, // 361: otg.FlowIpv4Priority.tos:type_name -> otg.FlowIpv4Tos - 463, // 362: otg.FlowIpv4Priority.dscp:type_name -> otg.FlowIpv4Dscp - 704, // 363: otg.FlowIpv4Dscp.phb:type_name -> otg.PatternFlowIpv4DscpPhb - 707, // 364: otg.FlowIpv4Dscp.ecn:type_name -> otg.PatternFlowIpv4DscpEcn - 710, // 365: otg.FlowIpv4Tos.precedence:type_name -> otg.PatternFlowIpv4TosPrecedence - 713, // 366: otg.FlowIpv4Tos.delay:type_name -> otg.PatternFlowIpv4TosDelay - 716, // 367: otg.FlowIpv4Tos.throughput:type_name -> otg.PatternFlowIpv4TosThroughput - 719, // 368: otg.FlowIpv4Tos.reliability:type_name -> otg.PatternFlowIpv4TosReliability - 722, // 369: otg.FlowIpv4Tos.monetary:type_name -> otg.PatternFlowIpv4TosMonetary - 725, // 370: otg.FlowIpv4Tos.unused:type_name -> otg.PatternFlowIpv4TosUnused - 728, // 371: otg.FlowIpv6.version:type_name -> otg.PatternFlowIpv6Version - 731, // 372: otg.FlowIpv6.traffic_class:type_name -> otg.PatternFlowIpv6TrafficClass - 734, // 373: otg.FlowIpv6.flow_label:type_name -> otg.PatternFlowIpv6FlowLabel - 737, // 374: otg.FlowIpv6.payload_length:type_name -> otg.PatternFlowIpv6PayloadLength - 740, // 375: otg.FlowIpv6.next_header:type_name -> otg.PatternFlowIpv6NextHeader - 743, // 376: otg.FlowIpv6.hop_limit:type_name -> otg.PatternFlowIpv6HopLimit - 746, // 377: otg.FlowIpv6.src:type_name -> otg.PatternFlowIpv6Src - 749, // 378: otg.FlowIpv6.dst:type_name -> otg.PatternFlowIpv6Dst - 752, // 379: otg.FlowPfcPause.dst:type_name -> otg.PatternFlowPfcPauseDst - 755, // 380: otg.FlowPfcPause.src:type_name -> otg.PatternFlowPfcPauseSrc - 758, // 381: otg.FlowPfcPause.ether_type:type_name -> otg.PatternFlowPfcPauseEtherType - 761, // 382: otg.FlowPfcPause.control_op_code:type_name -> otg.PatternFlowPfcPauseControlOpCode - 764, // 383: otg.FlowPfcPause.class_enable_vector:type_name -> otg.PatternFlowPfcPauseClassEnableVector - 767, // 384: otg.FlowPfcPause.pause_class_0:type_name -> otg.PatternFlowPfcPausePauseClass0 - 770, // 385: otg.FlowPfcPause.pause_class_1:type_name -> otg.PatternFlowPfcPausePauseClass1 - 773, // 386: otg.FlowPfcPause.pause_class_2:type_name -> otg.PatternFlowPfcPausePauseClass2 - 776, // 387: otg.FlowPfcPause.pause_class_3:type_name -> otg.PatternFlowPfcPausePauseClass3 - 779, // 388: otg.FlowPfcPause.pause_class_4:type_name -> otg.PatternFlowPfcPausePauseClass4 - 782, // 389: otg.FlowPfcPause.pause_class_5:type_name -> otg.PatternFlowPfcPausePauseClass5 - 785, // 390: otg.FlowPfcPause.pause_class_6:type_name -> otg.PatternFlowPfcPausePauseClass6 - 788, // 391: otg.FlowPfcPause.pause_class_7:type_name -> otg.PatternFlowPfcPausePauseClass7 - 791, // 392: otg.FlowEthernetPause.dst:type_name -> otg.PatternFlowEthernetPauseDst - 794, // 393: otg.FlowEthernetPause.src:type_name -> otg.PatternFlowEthernetPauseSrc - 797, // 394: otg.FlowEthernetPause.ether_type:type_name -> otg.PatternFlowEthernetPauseEtherType - 800, // 395: otg.FlowEthernetPause.control_op_code:type_name -> otg.PatternFlowEthernetPauseControlOpCode - 803, // 396: otg.FlowEthernetPause.time:type_name -> otg.PatternFlowEthernetPauseTime - 806, // 397: otg.FlowTcp.src_port:type_name -> otg.PatternFlowTcpSrcPort - 809, // 398: otg.FlowTcp.dst_port:type_name -> otg.PatternFlowTcpDstPort - 812, // 399: otg.FlowTcp.seq_num:type_name -> otg.PatternFlowTcpSeqNum - 815, // 400: otg.FlowTcp.ack_num:type_name -> otg.PatternFlowTcpAckNum - 818, // 401: otg.FlowTcp.data_offset:type_name -> otg.PatternFlowTcpDataOffset - 821, // 402: otg.FlowTcp.ecn_ns:type_name -> otg.PatternFlowTcpEcnNs - 824, // 403: otg.FlowTcp.ecn_cwr:type_name -> otg.PatternFlowTcpEcnCwr - 827, // 404: otg.FlowTcp.ecn_echo:type_name -> otg.PatternFlowTcpEcnEcho - 830, // 405: otg.FlowTcp.ctl_urg:type_name -> otg.PatternFlowTcpCtlUrg - 833, // 406: otg.FlowTcp.ctl_ack:type_name -> otg.PatternFlowTcpCtlAck - 836, // 407: otg.FlowTcp.ctl_psh:type_name -> otg.PatternFlowTcpCtlPsh - 839, // 408: otg.FlowTcp.ctl_rst:type_name -> otg.PatternFlowTcpCtlRst - 842, // 409: otg.FlowTcp.ctl_syn:type_name -> otg.PatternFlowTcpCtlSyn - 845, // 410: otg.FlowTcp.ctl_fin:type_name -> otg.PatternFlowTcpCtlFin - 848, // 411: otg.FlowTcp.window:type_name -> otg.PatternFlowTcpWindow - 851, // 412: otg.FlowUdp.src_port:type_name -> otg.PatternFlowUdpSrcPort - 854, // 413: otg.FlowUdp.dst_port:type_name -> otg.PatternFlowUdpDstPort - 857, // 414: otg.FlowUdp.length:type_name -> otg.PatternFlowUdpLength - 858, // 415: otg.FlowUdp.checksum:type_name -> otg.PatternFlowUdpChecksum - 861, // 416: otg.FlowGre.checksum_present:type_name -> otg.PatternFlowGreChecksumPresent - 864, // 417: otg.FlowGre.reserved0:type_name -> otg.PatternFlowGreReserved0 - 867, // 418: otg.FlowGre.version:type_name -> otg.PatternFlowGreVersion - 870, // 419: otg.FlowGre.protocol:type_name -> otg.PatternFlowGreProtocol - 871, // 420: otg.FlowGre.checksum:type_name -> otg.PatternFlowGreChecksum - 874, // 421: otg.FlowGre.reserved1:type_name -> otg.PatternFlowGreReserved1 - 877, // 422: otg.FlowGtpv1.version:type_name -> otg.PatternFlowGtpv1Version - 880, // 423: otg.FlowGtpv1.protocol_type:type_name -> otg.PatternFlowGtpv1ProtocolType - 883, // 424: otg.FlowGtpv1.reserved:type_name -> otg.PatternFlowGtpv1Reserved - 886, // 425: otg.FlowGtpv1.e_flag:type_name -> otg.PatternFlowGtpv1EFlag - 889, // 426: otg.FlowGtpv1.s_flag:type_name -> otg.PatternFlowGtpv1SFlag - 892, // 427: otg.FlowGtpv1.pn_flag:type_name -> otg.PatternFlowGtpv1PnFlag - 895, // 428: otg.FlowGtpv1.message_type:type_name -> otg.PatternFlowGtpv1MessageType - 898, // 429: otg.FlowGtpv1.message_length:type_name -> otg.PatternFlowGtpv1MessageLength - 901, // 430: otg.FlowGtpv1.teid:type_name -> otg.PatternFlowGtpv1Teid - 904, // 431: otg.FlowGtpv1.squence_number:type_name -> otg.PatternFlowGtpv1SquenceNumber - 907, // 432: otg.FlowGtpv1.n_pdu_number:type_name -> otg.PatternFlowGtpv1NPduNumber - 910, // 433: otg.FlowGtpv1.next_extension_header_type:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderType - 472, // 434: otg.FlowGtpv1.extension_headers:type_name -> otg.FlowGtpExtension - 913, // 435: otg.FlowGtpExtension.extension_length:type_name -> otg.PatternFlowGtpExtensionExtensionLength - 916, // 436: otg.FlowGtpExtension.contents:type_name -> otg.PatternFlowGtpExtensionContents - 919, // 437: otg.FlowGtpExtension.next_extension_header:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeader - 922, // 438: otg.FlowGtpv2.version:type_name -> otg.PatternFlowGtpv2Version - 925, // 439: otg.FlowGtpv2.piggybacking_flag:type_name -> otg.PatternFlowGtpv2PiggybackingFlag - 928, // 440: otg.FlowGtpv2.teid_flag:type_name -> otg.PatternFlowGtpv2TeidFlag - 931, // 441: otg.FlowGtpv2.spare1:type_name -> otg.PatternFlowGtpv2Spare1 - 934, // 442: otg.FlowGtpv2.message_type:type_name -> otg.PatternFlowGtpv2MessageType - 937, // 443: otg.FlowGtpv2.message_length:type_name -> otg.PatternFlowGtpv2MessageLength - 940, // 444: otg.FlowGtpv2.teid:type_name -> otg.PatternFlowGtpv2Teid - 943, // 445: otg.FlowGtpv2.sequence_number:type_name -> otg.PatternFlowGtpv2SequenceNumber - 946, // 446: otg.FlowGtpv2.spare2:type_name -> otg.PatternFlowGtpv2Spare2 - 949, // 447: otg.FlowArp.hardware_type:type_name -> otg.PatternFlowArpHardwareType - 952, // 448: otg.FlowArp.protocol_type:type_name -> otg.PatternFlowArpProtocolType - 955, // 449: otg.FlowArp.hardware_length:type_name -> otg.PatternFlowArpHardwareLength - 958, // 450: otg.FlowArp.protocol_length:type_name -> otg.PatternFlowArpProtocolLength - 961, // 451: otg.FlowArp.operation:type_name -> otg.PatternFlowArpOperation - 964, // 452: otg.FlowArp.sender_hardware_addr:type_name -> otg.PatternFlowArpSenderHardwareAddr - 967, // 453: otg.FlowArp.sender_protocol_addr:type_name -> otg.PatternFlowArpSenderProtocolAddr - 970, // 454: otg.FlowArp.target_hardware_addr:type_name -> otg.PatternFlowArpTargetHardwareAddr - 973, // 455: otg.FlowArp.target_protocol_addr:type_name -> otg.PatternFlowArpTargetProtocolAddr - 63, // 456: otg.FlowIcmp.choice:type_name -> otg.FlowIcmp.Choice.Enum - 476, // 457: otg.FlowIcmp.echo:type_name -> otg.FlowIcmpEcho - 976, // 458: otg.FlowIcmpEcho.type:type_name -> otg.PatternFlowIcmpEchoType - 979, // 459: otg.FlowIcmpEcho.code:type_name -> otg.PatternFlowIcmpEchoCode - 980, // 460: otg.FlowIcmpEcho.checksum:type_name -> otg.PatternFlowIcmpEchoChecksum - 983, // 461: otg.FlowIcmpEcho.identifier:type_name -> otg.PatternFlowIcmpEchoIdentifier - 986, // 462: otg.FlowIcmpEcho.sequence_number:type_name -> otg.PatternFlowIcmpEchoSequenceNumber - 64, // 463: otg.FlowIcmpv6.choice:type_name -> otg.FlowIcmpv6.Choice.Enum - 478, // 464: otg.FlowIcmpv6.echo:type_name -> otg.FlowIcmpv6Echo - 996, // 465: otg.FlowIcmpv6Echo.type:type_name -> otg.PatternFlowIcmpv6EchoType - 999, // 466: otg.FlowIcmpv6Echo.code:type_name -> otg.PatternFlowIcmpv6EchoCode - 1002, // 467: otg.FlowIcmpv6Echo.identifier:type_name -> otg.PatternFlowIcmpv6EchoIdentifier - 1005, // 468: otg.FlowIcmpv6Echo.sequence_number:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumber - 1006, // 469: otg.FlowIcmpv6Echo.checksum:type_name -> otg.PatternFlowIcmpv6EchoChecksum - 1010, // 470: otg.FlowPpp.address:type_name -> otg.PatternFlowPppAddress - 1013, // 471: otg.FlowPpp.control:type_name -> otg.PatternFlowPppControl - 1016, // 472: otg.FlowPpp.protocol_type:type_name -> otg.PatternFlowPppProtocolType - 1019, // 473: otg.FlowIgmpv1.version:type_name -> otg.PatternFlowIgmpv1Version - 1022, // 474: otg.FlowIgmpv1.type:type_name -> otg.PatternFlowIgmpv1Type - 1025, // 475: otg.FlowIgmpv1.unused:type_name -> otg.PatternFlowIgmpv1Unused - 1026, // 476: otg.FlowIgmpv1.checksum:type_name -> otg.PatternFlowIgmpv1Checksum - 1029, // 477: otg.FlowIgmpv1.group_address:type_name -> otg.PatternFlowIgmpv1GroupAddress - 1032, // 478: otg.FlowMpls.label:type_name -> otg.PatternFlowMplsLabel - 1035, // 479: otg.FlowMpls.traffic_class:type_name -> otg.PatternFlowMplsTrafficClass - 1038, // 480: otg.FlowMpls.bottom_of_stack:type_name -> otg.PatternFlowMplsBottomOfStack - 1041, // 481: otg.FlowMpls.time_to_live:type_name -> otg.PatternFlowMplsTimeToLive - 65, // 482: otg.FlowSize.choice:type_name -> otg.FlowSize.Choice.Enum - 483, // 483: otg.FlowSize.increment:type_name -> otg.FlowSizeIncrement - 484, // 484: otg.FlowSize.random:type_name -> otg.FlowSizeRandom - 66, // 485: otg.FlowRate.choice:type_name -> otg.FlowRate.Choice.Enum - 67, // 486: otg.FlowDuration.choice:type_name -> otg.FlowDuration.Choice.Enum - 489, // 487: otg.FlowDuration.fixed_packets:type_name -> otg.FlowFixedPackets - 490, // 488: otg.FlowDuration.fixed_seconds:type_name -> otg.FlowFixedSeconds - 491, // 489: otg.FlowDuration.burst:type_name -> otg.FlowBurst - 487, // 490: otg.FlowDuration.continuous:type_name -> otg.FlowContinuous - 488, // 491: otg.FlowContinuous.delay:type_name -> otg.FlowDelay - 68, // 492: otg.FlowDelay.choice:type_name -> otg.FlowDelay.Choice.Enum - 488, // 493: otg.FlowFixedPackets.delay:type_name -> otg.FlowDelay - 488, // 494: otg.FlowFixedSeconds.delay:type_name -> otg.FlowDelay - 492, // 495: otg.FlowBurst.inter_burst_gap:type_name -> otg.FlowDurationInterBurstGap - 69, // 496: otg.FlowDurationInterBurstGap.choice:type_name -> otg.FlowDurationInterBurstGap.Choice.Enum - 494, // 497: otg.FlowMetrics.latency:type_name -> otg.FlowLatencyMetrics - 70, // 498: otg.FlowLatencyMetrics.mode:type_name -> otg.FlowLatencyMetrics.Mode.Enum - 497, // 499: otg.Event.link:type_name -> otg.EventLink - 496, // 500: otg.Event.rx_rate_threshold:type_name -> otg.EventRxRateThreshold - 498, // 501: otg.Event.route_advertise_withdraw:type_name -> otg.EventRouteAdvertiseWithdraw - 71, // 502: otg.EventRequest.type:type_name -> otg.EventRequest.Type.Enum - 499, // 503: otg.EventSubscription.events:type_name -> otg.EventRequest - 502, // 504: otg.Lldp.connection:type_name -> otg.LldpConnection - 503, // 505: otg.Lldp.chassis_id:type_name -> otg.LldpChassisId - 504, // 506: otg.Lldp.port_id:type_name -> otg.LldpPortId - 507, // 507: otg.Lldp.system_name:type_name -> otg.LldpSystemName - 72, // 508: otg.LldpConnection.choice:type_name -> otg.LldpConnection.Choice.Enum - 73, // 509: otg.LldpChassisId.choice:type_name -> otg.LldpChassisId.Choice.Enum - 505, // 510: otg.LldpChassisId.mac_address_subtype:type_name -> otg.LldpChassisMacSubType - 74, // 511: otg.LldpPortId.choice:type_name -> otg.LldpPortId.Choice.Enum - 506, // 512: otg.LldpPortId.interface_name_subtype:type_name -> otg.LldpPortInterfaceNameSubType - 75, // 513: otg.LldpChassisMacSubType.choice:type_name -> otg.LldpChassisMacSubType.Choice.Enum - 76, // 514: otg.LldpPortInterfaceNameSubType.choice:type_name -> otg.LldpPortInterfaceNameSubType.Choice.Enum - 77, // 515: otg.LldpSystemName.choice:type_name -> otg.LldpSystemName.Choice.Enum - 78, // 516: otg.Error.kind:type_name -> otg.Error.Kind.Enum - 79, // 517: otg.ConfigUpdate.choice:type_name -> otg.ConfigUpdate.Choice.Enum - 511, // 518: otg.ConfigUpdate.flows:type_name -> otg.FlowsUpdate - 80, // 519: otg.FlowsUpdate.property_names:type_name -> otg.FlowsUpdate.PropertyNames.Enum - 451, // 520: otg.FlowsUpdate.flows:type_name -> otg.Flow - 81, // 521: otg.ControlState.choice:type_name -> otg.ControlState.Choice.Enum - 513, // 522: otg.ControlState.port:type_name -> otg.StatePort - 515, // 523: otg.ControlState.protocol:type_name -> otg.StateProtocol - 514, // 524: otg.ControlState.traffic:type_name -> otg.StateTraffic - 82, // 525: otg.StatePort.choice:type_name -> otg.StatePort.Choice.Enum - 522, // 526: otg.StatePort.link:type_name -> otg.StatePortLink - 523, // 527: otg.StatePort.capture:type_name -> otg.StatePortCapture - 83, // 528: otg.StateTraffic.choice:type_name -> otg.StateTraffic.Choice.Enum - 524, // 529: otg.StateTraffic.flow_transmit:type_name -> otg.StateTrafficFlowTransmit - 84, // 530: otg.StateProtocol.choice:type_name -> otg.StateProtocol.Choice.Enum - 525, // 531: otg.StateProtocol.all:type_name -> otg.StateProtocolAll - 526, // 532: otg.StateProtocol.route:type_name -> otg.StateProtocolRoute - 527, // 533: otg.StateProtocol.lacp:type_name -> otg.StateProtocolLacp - 85, // 534: otg.LinkState.state:type_name -> otg.LinkState.State.Enum - 86, // 535: otg.TransmitState.state:type_name -> otg.TransmitState.State.Enum - 87, // 536: otg.CaptureState.state:type_name -> otg.CaptureState.State.Enum - 88, // 537: otg.RouteState.state:type_name -> otg.RouteState.State.Enum - 89, // 538: otg.ProtocolState.state:type_name -> otg.ProtocolState.State.Enum - 90, // 539: otg.DeviceState.choice:type_name -> otg.DeviceState.Choice.Enum - 529, // 540: otg.DeviceState.lacp_member_state:type_name -> otg.LacpMemberState - 91, // 541: otg.StatePortLink.state:type_name -> otg.StatePortLink.State.Enum - 92, // 542: otg.StatePortCapture.state:type_name -> otg.StatePortCapture.State.Enum - 93, // 543: otg.StateTrafficFlowTransmit.state:type_name -> otg.StateTrafficFlowTransmit.State.Enum - 94, // 544: otg.StateProtocolAll.state:type_name -> otg.StateProtocolAll.State.Enum - 95, // 545: otg.StateProtocolRoute.state:type_name -> otg.StateProtocolRoute.State.Enum - 96, // 546: otg.StateProtocolLacp.choice:type_name -> otg.StateProtocolLacp.Choice.Enum - 528, // 547: otg.StateProtocolLacp.admin:type_name -> otg.StateProtocolLacpAdmin - 97, // 548: otg.StateProtocolLacpAdmin.state:type_name -> otg.StateProtocolLacpAdmin.State.Enum - 98, // 549: otg.LacpMemberState.state:type_name -> otg.LacpMemberState.State.Enum - 99, // 550: otg.ControlAction.choice:type_name -> otg.ControlAction.Choice.Enum - 533, // 551: otg.ControlAction.protocol:type_name -> otg.ActionProtocol - 532, // 552: otg.ControlActionResponse.response:type_name -> otg.ActionResponse - 100, // 553: otg.ActionResponse.choice:type_name -> otg.ActionResponse.Choice.Enum - 534, // 554: otg.ActionResponse.protocol:type_name -> otg.ActionResponseProtocol - 101, // 555: otg.ActionProtocol.choice:type_name -> otg.ActionProtocol.Choice.Enum - 535, // 556: otg.ActionProtocol.ipv4:type_name -> otg.ActionProtocolIpv4 - 541, // 557: otg.ActionProtocol.ipv6:type_name -> otg.ActionProtocolIpv6 - 547, // 558: otg.ActionProtocol.bgp:type_name -> otg.ActionProtocolBgp - 102, // 559: otg.ActionResponseProtocol.choice:type_name -> otg.ActionResponseProtocol.Choice.Enum - 536, // 560: otg.ActionResponseProtocol.ipv4:type_name -> otg.ActionResponseProtocolIpv4 - 542, // 561: otg.ActionResponseProtocol.ipv6:type_name -> otg.ActionResponseProtocolIpv6 - 103, // 562: otg.ActionProtocolIpv4.choice:type_name -> otg.ActionProtocolIpv4.Choice.Enum - 537, // 563: otg.ActionProtocolIpv4.ping:type_name -> otg.ActionProtocolIpv4Ping - 104, // 564: otg.ActionResponseProtocolIpv4.choice:type_name -> otg.ActionResponseProtocolIpv4.Choice.Enum - 539, // 565: otg.ActionResponseProtocolIpv4.ping:type_name -> otg.ActionResponseProtocolIpv4Ping - 538, // 566: otg.ActionProtocolIpv4Ping.requests:type_name -> otg.ActionProtocolIpv4PingRequest - 540, // 567: otg.ActionResponseProtocolIpv4Ping.responses:type_name -> otg.ActionResponseProtocolIpv4PingResponse - 105, // 568: otg.ActionResponseProtocolIpv4PingResponse.result:type_name -> otg.ActionResponseProtocolIpv4PingResponse.Result.Enum - 106, // 569: otg.ActionProtocolIpv6.choice:type_name -> otg.ActionProtocolIpv6.Choice.Enum - 543, // 570: otg.ActionProtocolIpv6.ping:type_name -> otg.ActionProtocolIpv6Ping - 107, // 571: otg.ActionResponseProtocolIpv6.choice:type_name -> otg.ActionResponseProtocolIpv6.Choice.Enum - 545, // 572: otg.ActionResponseProtocolIpv6.ping:type_name -> otg.ActionResponseProtocolIpv6Ping - 544, // 573: otg.ActionProtocolIpv6Ping.requests:type_name -> otg.ActionProtocolIpv6PingRequest - 546, // 574: otg.ActionResponseProtocolIpv6Ping.responses:type_name -> otg.ActionResponseProtocolIpv6PingResponse - 108, // 575: otg.ActionResponseProtocolIpv6PingResponse.result:type_name -> otg.ActionResponseProtocolIpv6PingResponse.Result.Enum - 109, // 576: otg.ActionProtocolBgp.choice:type_name -> otg.ActionProtocolBgp.Choice.Enum - 548, // 577: otg.ActionProtocolBgp.notification:type_name -> otg.ActionProtocolBgpNotification - 549, // 578: otg.ActionProtocolBgp.initiate_graceful_restart:type_name -> otg.ActionProtocolBgpInitiateGracefulRestart - 110, // 579: otg.ActionProtocolBgpNotification.choice:type_name -> otg.ActionProtocolBgpNotification.Choice.Enum - 371, // 580: otg.ActionProtocolBgpNotification.cease:type_name -> otg.DeviceBgpCeaseError - 366, // 581: otg.ActionProtocolBgpNotification.message_header_error:type_name -> otg.DeviceBgpMessageHeaderError - 367, // 582: otg.ActionProtocolBgpNotification.open_message_error:type_name -> otg.DeviceBgpOpenMessageError - 368, // 583: otg.ActionProtocolBgpNotification.update_message_error:type_name -> otg.DeviceBgpUpdateMessageError - 369, // 584: otg.ActionProtocolBgpNotification.hold_timer_expired:type_name -> otg.DeviceBgpHoldTimerExpired - 370, // 585: otg.ActionProtocolBgpNotification.finite_state_machine_error:type_name -> otg.DeviceBgpFiniteStateMachineError - 372, // 586: otg.ActionProtocolBgpNotification.custom:type_name -> otg.DeviceBgpCustomError - 111, // 587: otg.Ping.choice:type_name -> otg.Ping.Choice.Enum - 551, // 588: otg.Ping.ipv4:type_name -> otg.PingIpv4 - 552, // 589: otg.Ping.ipv6:type_name -> otg.PingIpv6 - 550, // 590: otg.PingRequest.endpoints:type_name -> otg.Ping - 555, // 591: otg.PingResponse.responses:type_name -> otg.Response - 112, // 592: otg.Response.result:type_name -> otg.Response.Result.Enum - 113, // 593: otg.MetricsRequest.choice:type_name -> otg.MetricsRequest.Choice.Enum - 558, // 594: otg.MetricsRequest.port:type_name -> otg.PortMetricsRequest - 560, // 595: otg.MetricsRequest.flow:type_name -> otg.FlowMetricsRequest - 569, // 596: otg.MetricsRequest.bgpv4:type_name -> otg.Bgpv4MetricsRequest - 571, // 597: otg.MetricsRequest.bgpv6:type_name -> otg.Bgpv6MetricsRequest - 573, // 598: otg.MetricsRequest.isis:type_name -> otg.IsisMetricsRequest - 575, // 599: otg.MetricsRequest.lag:type_name -> otg.LagMetricsRequest - 577, // 600: otg.MetricsRequest.lacp:type_name -> otg.LacpMetricsRequest - 579, // 601: otg.MetricsRequest.lldp:type_name -> otg.LldpMetricsRequest - 581, // 602: otg.MetricsRequest.rsvp:type_name -> otg.RsvpMetricsRequest - 114, // 603: otg.MetricsResponse.choice:type_name -> otg.MetricsResponse.Choice.Enum - 559, // 604: otg.MetricsResponse.port_metrics:type_name -> otg.PortMetric - 563, // 605: otg.MetricsResponse.flow_metrics:type_name -> otg.FlowMetric - 570, // 606: otg.MetricsResponse.bgpv4_metrics:type_name -> otg.Bgpv4Metric - 572, // 607: otg.MetricsResponse.bgpv6_metrics:type_name -> otg.Bgpv6Metric - 574, // 608: otg.MetricsResponse.isis_metrics:type_name -> otg.IsisMetric - 576, // 609: otg.MetricsResponse.lag_metrics:type_name -> otg.LagMetric - 578, // 610: otg.MetricsResponse.lacp_metrics:type_name -> otg.LacpMetric - 580, // 611: otg.MetricsResponse.lldp_metrics:type_name -> otg.LldpMetric - 582, // 612: otg.MetricsResponse.rsvp_metrics:type_name -> otg.RsvpMetric - 115, // 613: otg.PortMetricsRequest.column_names:type_name -> otg.PortMetricsRequest.ColumnNames.Enum - 116, // 614: otg.PortMetric.link:type_name -> otg.PortMetric.Link.Enum - 117, // 615: otg.PortMetric.capture:type_name -> otg.PortMetric.Capture.Enum - 118, // 616: otg.PortMetric.transmit:type_name -> otg.PortMetric.Transmit.Enum - 119, // 617: otg.FlowMetricsRequest.metric_names:type_name -> otg.FlowMetricsRequest.MetricNames.Enum - 561, // 618: otg.FlowMetricsRequest.tagged_metrics:type_name -> otg.FlowTaggedMetricsFilter - 120, // 619: otg.FlowTaggedMetricsFilter.metric_names:type_name -> otg.FlowTaggedMetricsFilter.MetricNames.Enum - 562, // 620: otg.FlowTaggedMetricsFilter.filters:type_name -> otg.FlowMetricTagFilter - 121, // 621: otg.FlowMetric.transmit:type_name -> otg.FlowMetric.Transmit.Enum - 567, // 622: otg.FlowMetric.timestamps:type_name -> otg.MetricTimestamp - 568, // 623: otg.FlowMetric.latency:type_name -> otg.MetricLatency - 564, // 624: otg.FlowMetric.tagged_metrics:type_name -> otg.FlowTaggedMetric - 565, // 625: otg.FlowTaggedMetric.tags:type_name -> otg.FlowMetricTag - 567, // 626: otg.FlowTaggedMetric.timestamps:type_name -> otg.MetricTimestamp - 568, // 627: otg.FlowTaggedMetric.latency:type_name -> otg.MetricLatency - 566, // 628: otg.FlowMetricTag.value:type_name -> otg.FlowMetricTagValue - 122, // 629: otg.FlowMetricTagValue.choice:type_name -> otg.FlowMetricTagValue.Choice.Enum - 123, // 630: otg.Bgpv4MetricsRequest.column_names:type_name -> otg.Bgpv4MetricsRequest.ColumnNames.Enum - 124, // 631: otg.Bgpv4Metric.session_state:type_name -> otg.Bgpv4Metric.SessionState.Enum - 125, // 632: otg.Bgpv4Metric.fsm_state:type_name -> otg.Bgpv4Metric.FsmState.Enum - 126, // 633: otg.Bgpv6MetricsRequest.column_names:type_name -> otg.Bgpv6MetricsRequest.ColumnNames.Enum - 127, // 634: otg.Bgpv6Metric.session_state:type_name -> otg.Bgpv6Metric.SessionState.Enum - 128, // 635: otg.Bgpv6Metric.fsm_state:type_name -> otg.Bgpv6Metric.FsmState.Enum - 129, // 636: otg.IsisMetricsRequest.column_names:type_name -> otg.IsisMetricsRequest.ColumnNames.Enum - 130, // 637: otg.LagMetricsRequest.column_names:type_name -> otg.LagMetricsRequest.ColumnNames.Enum - 131, // 638: otg.LagMetric.oper_status:type_name -> otg.LagMetric.OperStatus.Enum - 132, // 639: otg.LacpMetricsRequest.column_names:type_name -> otg.LacpMetricsRequest.ColumnNames.Enum - 133, // 640: otg.LacpMetric.activity:type_name -> otg.LacpMetric.Activity.Enum - 134, // 641: otg.LacpMetric.timeout:type_name -> otg.LacpMetric.Timeout.Enum - 135, // 642: otg.LacpMetric.synchronization:type_name -> otg.LacpMetric.Synchronization.Enum - 136, // 643: otg.LldpMetricsRequest.column_names:type_name -> otg.LldpMetricsRequest.ColumnNames.Enum - 137, // 644: otg.RsvpMetricsRequest.column_names:type_name -> otg.RsvpMetricsRequest.ColumnNames.Enum - 138, // 645: otg.StatesRequest.choice:type_name -> otg.StatesRequest.Choice.Enum - 585, // 646: otg.StatesRequest.ipv4_neighbors:type_name -> otg.Neighborsv4StatesRequest - 587, // 647: otg.StatesRequest.ipv6_neighbors:type_name -> otg.Neighborsv6StatesRequest - 589, // 648: otg.StatesRequest.bgp_prefixes:type_name -> otg.BgpPrefixStateRequest - 598, // 649: otg.StatesRequest.isis_lsps:type_name -> otg.IsisLspsStateRequest - 615, // 650: otg.StatesRequest.lldp_neighbors:type_name -> otg.LldpNeighborsStateRequest - 619, // 651: otg.StatesRequest.rsvp_lsps:type_name -> otg.RsvpLspsStateRequest - 139, // 652: otg.StatesResponse.choice:type_name -> otg.StatesResponse.Choice.Enum - 586, // 653: otg.StatesResponse.ipv4_neighbors:type_name -> otg.Neighborsv4State - 588, // 654: otg.StatesResponse.ipv6_neighbors:type_name -> otg.Neighborsv6State - 592, // 655: otg.StatesResponse.bgp_prefixes:type_name -> otg.BgpPrefixesState - 599, // 656: otg.StatesResponse.isis_lsps:type_name -> otg.IsisLspsState - 616, // 657: otg.StatesResponse.lldp_neighbors:type_name -> otg.LldpNeighborsState - 620, // 658: otg.StatesResponse.rsvp_lsps:type_name -> otg.RsvpLspsState - 140, // 659: otg.BgpPrefixStateRequest.prefix_filters:type_name -> otg.BgpPrefixStateRequest.PrefixFilters.Enum - 590, // 660: otg.BgpPrefixStateRequest.ipv4_unicast_filters:type_name -> otg.BgpPrefixIpv4UnicastFilter - 591, // 661: otg.BgpPrefixStateRequest.ipv6_unicast_filters:type_name -> otg.BgpPrefixIpv6UnicastFilter - 141, // 662: otg.BgpPrefixIpv4UnicastFilter.origin:type_name -> otg.BgpPrefixIpv4UnicastFilter.Origin.Enum - 142, // 663: otg.BgpPrefixIpv6UnicastFilter.origin:type_name -> otg.BgpPrefixIpv6UnicastFilter.Origin.Enum - 593, // 664: otg.BgpPrefixesState.ipv4_unicast_prefixes:type_name -> otg.BgpPrefixIpv4UnicastState - 594, // 665: otg.BgpPrefixesState.ipv6_unicast_prefixes:type_name -> otg.BgpPrefixIpv6UnicastState - 143, // 666: otg.BgpPrefixIpv4UnicastState.origin:type_name -> otg.BgpPrefixIpv4UnicastState.Origin.Enum - 595, // 667: otg.BgpPrefixIpv4UnicastState.communities:type_name -> otg.ResultBgpCommunity - 596, // 668: otg.BgpPrefixIpv4UnicastState.as_path:type_name -> otg.ResultBgpAsPath - 144, // 669: otg.BgpPrefixIpv6UnicastState.origin:type_name -> otg.BgpPrefixIpv6UnicastState.Origin.Enum - 595, // 670: otg.BgpPrefixIpv6UnicastState.communities:type_name -> otg.ResultBgpCommunity - 596, // 671: otg.BgpPrefixIpv6UnicastState.as_path:type_name -> otg.ResultBgpAsPath - 145, // 672: otg.ResultBgpCommunity.type:type_name -> otg.ResultBgpCommunity.Type.Enum - 597, // 673: otg.ResultBgpAsPath.segments:type_name -> otg.ResultBgpAsPathSegment - 146, // 674: otg.ResultBgpAsPathSegment.type:type_name -> otg.ResultBgpAsPathSegment.Type.Enum - 600, // 675: otg.IsisLspsState.lsps:type_name -> otg.IsisLspState - 147, // 676: otg.IsisLspState.pdu_type:type_name -> otg.IsisLspState.PduType.Enum - 603, // 677: otg.IsisLspState.flags:type_name -> otg.IsisLspFlags - 601, // 678: otg.IsisLspState.tlvs:type_name -> otg.IsisLspTlvs - 602, // 679: otg.IsisLspTlvs.hostname_tlvs:type_name -> otg.IsisLspHostname - 604, // 680: otg.IsisLspTlvs.is_reachability_tlvs:type_name -> otg.IsisLspIsReachabilityTlv - 605, // 681: otg.IsisLspTlvs.extended_is_reachability_tlvs:type_name -> otg.IsisLspExtendedIsReachabilityTlv - 607, // 682: otg.IsisLspTlvs.ipv4_internal_reachability_tlvs:type_name -> otg.IsisLspIpv4InternalReachabilityTlv - 608, // 683: otg.IsisLspTlvs.ipv4_external_reachability_tlvs:type_name -> otg.IsisLspIpv4ExternalReachabilityTlv - 610, // 684: otg.IsisLspTlvs.extended_ipv4_reachability_tlvs:type_name -> otg.IsisLspExtendedIpv4ReachabilityTlv - 612, // 685: otg.IsisLspTlvs.ipv6_reachability_tlvs:type_name -> otg.IsisLspIpv6ReachabilityTlv - 606, // 686: otg.IsisLspIsReachabilityTlv.neighbors:type_name -> otg.IsisLspneighbor - 606, // 687: otg.IsisLspExtendedIsReachabilityTlv.neighbors:type_name -> otg.IsisLspneighbor - 609, // 688: otg.IsisLspIpv4InternalReachabilityTlv.prefixes:type_name -> otg.IsisLspV4Prefix - 609, // 689: otg.IsisLspIpv4ExternalReachabilityTlv.prefixes:type_name -> otg.IsisLspV4Prefix - 148, // 690: otg.IsisLspV4Prefix.redistribution_type:type_name -> otg.IsisLspV4Prefix.RedistributionType.Enum - 149, // 691: otg.IsisLspV4Prefix.origin_type:type_name -> otg.IsisLspV4Prefix.OriginType.Enum - 611, // 692: otg.IsisLspExtendedIpv4ReachabilityTlv.prefixes:type_name -> otg.IsisLspExtendedV4Prefix - 150, // 693: otg.IsisLspExtendedV4Prefix.redistribution_type:type_name -> otg.IsisLspExtendedV4Prefix.RedistributionType.Enum - 614, // 694: otg.IsisLspExtendedV4Prefix.prefix_attributes:type_name -> otg.IsisLspPrefixAttributes - 613, // 695: otg.IsisLspIpv6ReachabilityTlv.prefixes:type_name -> otg.IsisLspV6Prefix - 151, // 696: otg.IsisLspV6Prefix.redistribution_type:type_name -> otg.IsisLspV6Prefix.RedistributionType.Enum - 152, // 697: otg.IsisLspV6Prefix.origin_type:type_name -> otg.IsisLspV6Prefix.OriginType.Enum - 614, // 698: otg.IsisLspV6Prefix.prefix_attributes:type_name -> otg.IsisLspPrefixAttributes - 153, // 699: otg.LldpNeighborsState.chassis_id_type:type_name -> otg.LldpNeighborsState.ChassisIdType.Enum - 154, // 700: otg.LldpNeighborsState.port_id_type:type_name -> otg.LldpNeighborsState.PortIdType.Enum - 617, // 701: otg.LldpNeighborsState.custom_tlvs:type_name -> otg.LldpCustomTLVState - 618, // 702: otg.LldpNeighborsState.capabilities:type_name -> otg.LldpCapabilityState - 155, // 703: otg.LldpCapabilityState.capability_name:type_name -> otg.LldpCapabilityState.CapabilityName.Enum - 621, // 704: otg.RsvpLspsState.ipv4_lsps:type_name -> otg.RsvpIPv4LspState - 622, // 705: otg.RsvpIPv4LspState.lsp:type_name -> otg.RsvpLspState - 623, // 706: otg.RsvpIPv4LspState.rros:type_name -> otg.RsvpLspIpv4Rro - 624, // 707: otg.RsvpIPv4LspState.eros:type_name -> otg.RsvpLspIpv4Ero - 156, // 708: otg.RsvpLspState.session_status:type_name -> otg.RsvpLspState.SessionStatus.Enum - 157, // 709: otg.RsvpLspState.last_flap_reason:type_name -> otg.RsvpLspState.LastFlapReason.Enum - 158, // 710: otg.RsvpLspIpv4Ero.type:type_name -> otg.RsvpLspIpv4Ero.Type.Enum - 159, // 711: otg.PatternFlowEthernetDst.choice:type_name -> otg.PatternFlowEthernetDst.Choice.Enum - 626, // 712: otg.PatternFlowEthernetDst.metric_tags:type_name -> otg.PatternFlowEthernetDstMetricTag - 627, // 713: otg.PatternFlowEthernetDst.increment:type_name -> otg.PatternFlowEthernetDstCounter - 627, // 714: otg.PatternFlowEthernetDst.decrement:type_name -> otg.PatternFlowEthernetDstCounter - 160, // 715: otg.PatternFlowEthernetSrc.choice:type_name -> otg.PatternFlowEthernetSrc.Choice.Enum - 629, // 716: otg.PatternFlowEthernetSrc.metric_tags:type_name -> otg.PatternFlowEthernetSrcMetricTag - 630, // 717: otg.PatternFlowEthernetSrc.increment:type_name -> otg.PatternFlowEthernetSrcCounter - 630, // 718: otg.PatternFlowEthernetSrc.decrement:type_name -> otg.PatternFlowEthernetSrcCounter - 161, // 719: otg.PatternFlowEthernetEtherType.choice:type_name -> otg.PatternFlowEthernetEtherType.Choice.Enum - 632, // 720: otg.PatternFlowEthernetEtherType.metric_tags:type_name -> otg.PatternFlowEthernetEtherTypeMetricTag - 633, // 721: otg.PatternFlowEthernetEtherType.increment:type_name -> otg.PatternFlowEthernetEtherTypeCounter - 633, // 722: otg.PatternFlowEthernetEtherType.decrement:type_name -> otg.PatternFlowEthernetEtherTypeCounter - 162, // 723: otg.PatternFlowEthernetPfcQueue.choice:type_name -> otg.PatternFlowEthernetPfcQueue.Choice.Enum - 635, // 724: otg.PatternFlowEthernetPfcQueue.metric_tags:type_name -> otg.PatternFlowEthernetPfcQueueMetricTag - 636, // 725: otg.PatternFlowEthernetPfcQueue.increment:type_name -> otg.PatternFlowEthernetPfcQueueCounter - 636, // 726: otg.PatternFlowEthernetPfcQueue.decrement:type_name -> otg.PatternFlowEthernetPfcQueueCounter - 163, // 727: otg.PatternFlowVlanPriority.choice:type_name -> otg.PatternFlowVlanPriority.Choice.Enum - 638, // 728: otg.PatternFlowVlanPriority.metric_tags:type_name -> otg.PatternFlowVlanPriorityMetricTag - 639, // 729: otg.PatternFlowVlanPriority.increment:type_name -> otg.PatternFlowVlanPriorityCounter - 639, // 730: otg.PatternFlowVlanPriority.decrement:type_name -> otg.PatternFlowVlanPriorityCounter - 164, // 731: otg.PatternFlowVlanCfi.choice:type_name -> otg.PatternFlowVlanCfi.Choice.Enum - 641, // 732: otg.PatternFlowVlanCfi.metric_tags:type_name -> otg.PatternFlowVlanCfiMetricTag - 642, // 733: otg.PatternFlowVlanCfi.increment:type_name -> otg.PatternFlowVlanCfiCounter - 642, // 734: otg.PatternFlowVlanCfi.decrement:type_name -> otg.PatternFlowVlanCfiCounter - 165, // 735: otg.PatternFlowVlanId.choice:type_name -> otg.PatternFlowVlanId.Choice.Enum - 644, // 736: otg.PatternFlowVlanId.metric_tags:type_name -> otg.PatternFlowVlanIdMetricTag - 645, // 737: otg.PatternFlowVlanId.increment:type_name -> otg.PatternFlowVlanIdCounter - 645, // 738: otg.PatternFlowVlanId.decrement:type_name -> otg.PatternFlowVlanIdCounter - 166, // 739: otg.PatternFlowVlanTpid.choice:type_name -> otg.PatternFlowVlanTpid.Choice.Enum - 647, // 740: otg.PatternFlowVlanTpid.metric_tags:type_name -> otg.PatternFlowVlanTpidMetricTag - 648, // 741: otg.PatternFlowVlanTpid.increment:type_name -> otg.PatternFlowVlanTpidCounter - 648, // 742: otg.PatternFlowVlanTpid.decrement:type_name -> otg.PatternFlowVlanTpidCounter - 167, // 743: otg.PatternFlowVxlanFlags.choice:type_name -> otg.PatternFlowVxlanFlags.Choice.Enum - 650, // 744: otg.PatternFlowVxlanFlags.metric_tags:type_name -> otg.PatternFlowVxlanFlagsMetricTag - 651, // 745: otg.PatternFlowVxlanFlags.increment:type_name -> otg.PatternFlowVxlanFlagsCounter - 651, // 746: otg.PatternFlowVxlanFlags.decrement:type_name -> otg.PatternFlowVxlanFlagsCounter - 168, // 747: otg.PatternFlowVxlanReserved0.choice:type_name -> otg.PatternFlowVxlanReserved0.Choice.Enum - 653, // 748: otg.PatternFlowVxlanReserved0.metric_tags:type_name -> otg.PatternFlowVxlanReserved0MetricTag - 654, // 749: otg.PatternFlowVxlanReserved0.increment:type_name -> otg.PatternFlowVxlanReserved0Counter - 654, // 750: otg.PatternFlowVxlanReserved0.decrement:type_name -> otg.PatternFlowVxlanReserved0Counter - 169, // 751: otg.PatternFlowVxlanVni.choice:type_name -> otg.PatternFlowVxlanVni.Choice.Enum - 656, // 752: otg.PatternFlowVxlanVni.metric_tags:type_name -> otg.PatternFlowVxlanVniMetricTag - 657, // 753: otg.PatternFlowVxlanVni.increment:type_name -> otg.PatternFlowVxlanVniCounter - 657, // 754: otg.PatternFlowVxlanVni.decrement:type_name -> otg.PatternFlowVxlanVniCounter - 170, // 755: otg.PatternFlowVxlanReserved1.choice:type_name -> otg.PatternFlowVxlanReserved1.Choice.Enum - 659, // 756: otg.PatternFlowVxlanReserved1.metric_tags:type_name -> otg.PatternFlowVxlanReserved1MetricTag - 660, // 757: otg.PatternFlowVxlanReserved1.increment:type_name -> otg.PatternFlowVxlanReserved1Counter - 660, // 758: otg.PatternFlowVxlanReserved1.decrement:type_name -> otg.PatternFlowVxlanReserved1Counter - 171, // 759: otg.PatternFlowIpv4Version.choice:type_name -> otg.PatternFlowIpv4Version.Choice.Enum - 662, // 760: otg.PatternFlowIpv4Version.metric_tags:type_name -> otg.PatternFlowIpv4VersionMetricTag - 663, // 761: otg.PatternFlowIpv4Version.increment:type_name -> otg.PatternFlowIpv4VersionCounter - 663, // 762: otg.PatternFlowIpv4Version.decrement:type_name -> otg.PatternFlowIpv4VersionCounter - 172, // 763: otg.PatternFlowIpv4HeaderLength.choice:type_name -> otg.PatternFlowIpv4HeaderLength.Choice.Enum - 665, // 764: otg.PatternFlowIpv4HeaderLength.metric_tags:type_name -> otg.PatternFlowIpv4HeaderLengthMetricTag - 666, // 765: otg.PatternFlowIpv4HeaderLength.increment:type_name -> otg.PatternFlowIpv4HeaderLengthCounter - 666, // 766: otg.PatternFlowIpv4HeaderLength.decrement:type_name -> otg.PatternFlowIpv4HeaderLengthCounter - 173, // 767: otg.PatternFlowIpv4TotalLength.choice:type_name -> otg.PatternFlowIpv4TotalLength.Choice.Enum - 668, // 768: otg.PatternFlowIpv4TotalLength.metric_tags:type_name -> otg.PatternFlowIpv4TotalLengthMetricTag - 669, // 769: otg.PatternFlowIpv4TotalLength.increment:type_name -> otg.PatternFlowIpv4TotalLengthCounter - 669, // 770: otg.PatternFlowIpv4TotalLength.decrement:type_name -> otg.PatternFlowIpv4TotalLengthCounter - 174, // 771: otg.PatternFlowIpv4Identification.choice:type_name -> otg.PatternFlowIpv4Identification.Choice.Enum - 671, // 772: otg.PatternFlowIpv4Identification.metric_tags:type_name -> otg.PatternFlowIpv4IdentificationMetricTag - 672, // 773: otg.PatternFlowIpv4Identification.increment:type_name -> otg.PatternFlowIpv4IdentificationCounter - 672, // 774: otg.PatternFlowIpv4Identification.decrement:type_name -> otg.PatternFlowIpv4IdentificationCounter - 175, // 775: otg.PatternFlowIpv4Reserved.choice:type_name -> otg.PatternFlowIpv4Reserved.Choice.Enum - 674, // 776: otg.PatternFlowIpv4Reserved.metric_tags:type_name -> otg.PatternFlowIpv4ReservedMetricTag - 675, // 777: otg.PatternFlowIpv4Reserved.increment:type_name -> otg.PatternFlowIpv4ReservedCounter - 675, // 778: otg.PatternFlowIpv4Reserved.decrement:type_name -> otg.PatternFlowIpv4ReservedCounter - 176, // 779: otg.PatternFlowIpv4DontFragment.choice:type_name -> otg.PatternFlowIpv4DontFragment.Choice.Enum - 677, // 780: otg.PatternFlowIpv4DontFragment.metric_tags:type_name -> otg.PatternFlowIpv4DontFragmentMetricTag - 678, // 781: otg.PatternFlowIpv4DontFragment.increment:type_name -> otg.PatternFlowIpv4DontFragmentCounter - 678, // 782: otg.PatternFlowIpv4DontFragment.decrement:type_name -> otg.PatternFlowIpv4DontFragmentCounter - 177, // 783: otg.PatternFlowIpv4MoreFragments.choice:type_name -> otg.PatternFlowIpv4MoreFragments.Choice.Enum - 680, // 784: otg.PatternFlowIpv4MoreFragments.metric_tags:type_name -> otg.PatternFlowIpv4MoreFragmentsMetricTag - 681, // 785: otg.PatternFlowIpv4MoreFragments.increment:type_name -> otg.PatternFlowIpv4MoreFragmentsCounter - 681, // 786: otg.PatternFlowIpv4MoreFragments.decrement:type_name -> otg.PatternFlowIpv4MoreFragmentsCounter - 178, // 787: otg.PatternFlowIpv4FragmentOffset.choice:type_name -> otg.PatternFlowIpv4FragmentOffset.Choice.Enum - 683, // 788: otg.PatternFlowIpv4FragmentOffset.metric_tags:type_name -> otg.PatternFlowIpv4FragmentOffsetMetricTag - 684, // 789: otg.PatternFlowIpv4FragmentOffset.increment:type_name -> otg.PatternFlowIpv4FragmentOffsetCounter - 684, // 790: otg.PatternFlowIpv4FragmentOffset.decrement:type_name -> otg.PatternFlowIpv4FragmentOffsetCounter - 179, // 791: otg.PatternFlowIpv4TimeToLive.choice:type_name -> otg.PatternFlowIpv4TimeToLive.Choice.Enum - 686, // 792: otg.PatternFlowIpv4TimeToLive.metric_tags:type_name -> otg.PatternFlowIpv4TimeToLiveMetricTag - 687, // 793: otg.PatternFlowIpv4TimeToLive.increment:type_name -> otg.PatternFlowIpv4TimeToLiveCounter - 687, // 794: otg.PatternFlowIpv4TimeToLive.decrement:type_name -> otg.PatternFlowIpv4TimeToLiveCounter - 180, // 795: otg.PatternFlowIpv4Protocol.choice:type_name -> otg.PatternFlowIpv4Protocol.Choice.Enum - 689, // 796: otg.PatternFlowIpv4Protocol.metric_tags:type_name -> otg.PatternFlowIpv4ProtocolMetricTag - 690, // 797: otg.PatternFlowIpv4Protocol.increment:type_name -> otg.PatternFlowIpv4ProtocolCounter - 690, // 798: otg.PatternFlowIpv4Protocol.decrement:type_name -> otg.PatternFlowIpv4ProtocolCounter - 181, // 799: otg.PatternFlowIpv4HeaderChecksum.choice:type_name -> otg.PatternFlowIpv4HeaderChecksum.Choice.Enum - 182, // 800: otg.PatternFlowIpv4HeaderChecksum.generated:type_name -> otg.PatternFlowIpv4HeaderChecksum.Generated.Enum - 183, // 801: otg.PatternFlowIpv4Src.choice:type_name -> otg.PatternFlowIpv4Src.Choice.Enum - 693, // 802: otg.PatternFlowIpv4Src.metric_tags:type_name -> otg.PatternFlowIpv4SrcMetricTag - 694, // 803: otg.PatternFlowIpv4Src.increment:type_name -> otg.PatternFlowIpv4SrcCounter - 694, // 804: otg.PatternFlowIpv4Src.decrement:type_name -> otg.PatternFlowIpv4SrcCounter - 184, // 805: otg.PatternFlowIpv4Dst.choice:type_name -> otg.PatternFlowIpv4Dst.Choice.Enum - 696, // 806: otg.PatternFlowIpv4Dst.metric_tags:type_name -> otg.PatternFlowIpv4DstMetricTag - 697, // 807: otg.PatternFlowIpv4Dst.increment:type_name -> otg.PatternFlowIpv4DstCounter - 697, // 808: otg.PatternFlowIpv4Dst.decrement:type_name -> otg.PatternFlowIpv4DstCounter - 185, // 809: otg.PatternFlowIpv4PriorityRaw.choice:type_name -> otg.PatternFlowIpv4PriorityRaw.Choice.Enum - 699, // 810: otg.PatternFlowIpv4PriorityRaw.metric_tags:type_name -> otg.PatternFlowIpv4PriorityRawMetricTag - 700, // 811: otg.PatternFlowIpv4PriorityRaw.increment:type_name -> otg.PatternFlowIpv4PriorityRawCounter - 700, // 812: otg.PatternFlowIpv4PriorityRaw.decrement:type_name -> otg.PatternFlowIpv4PriorityRawCounter - 186, // 813: otg.PatternFlowIpv4DscpPhb.choice:type_name -> otg.PatternFlowIpv4DscpPhb.Choice.Enum - 702, // 814: otg.PatternFlowIpv4DscpPhb.metric_tags:type_name -> otg.PatternFlowIpv4DscpPhbMetricTag - 703, // 815: otg.PatternFlowIpv4DscpPhb.increment:type_name -> otg.PatternFlowIpv4DscpPhbCounter - 703, // 816: otg.PatternFlowIpv4DscpPhb.decrement:type_name -> otg.PatternFlowIpv4DscpPhbCounter - 187, // 817: otg.PatternFlowIpv4DscpEcn.choice:type_name -> otg.PatternFlowIpv4DscpEcn.Choice.Enum - 705, // 818: otg.PatternFlowIpv4DscpEcn.metric_tags:type_name -> otg.PatternFlowIpv4DscpEcnMetricTag - 706, // 819: otg.PatternFlowIpv4DscpEcn.increment:type_name -> otg.PatternFlowIpv4DscpEcnCounter - 706, // 820: otg.PatternFlowIpv4DscpEcn.decrement:type_name -> otg.PatternFlowIpv4DscpEcnCounter - 188, // 821: otg.PatternFlowIpv4TosPrecedence.choice:type_name -> otg.PatternFlowIpv4TosPrecedence.Choice.Enum - 708, // 822: otg.PatternFlowIpv4TosPrecedence.metric_tags:type_name -> otg.PatternFlowIpv4TosPrecedenceMetricTag - 709, // 823: otg.PatternFlowIpv4TosPrecedence.increment:type_name -> otg.PatternFlowIpv4TosPrecedenceCounter - 709, // 824: otg.PatternFlowIpv4TosPrecedence.decrement:type_name -> otg.PatternFlowIpv4TosPrecedenceCounter - 189, // 825: otg.PatternFlowIpv4TosDelay.choice:type_name -> otg.PatternFlowIpv4TosDelay.Choice.Enum - 711, // 826: otg.PatternFlowIpv4TosDelay.metric_tags:type_name -> otg.PatternFlowIpv4TosDelayMetricTag - 712, // 827: otg.PatternFlowIpv4TosDelay.increment:type_name -> otg.PatternFlowIpv4TosDelayCounter - 712, // 828: otg.PatternFlowIpv4TosDelay.decrement:type_name -> otg.PatternFlowIpv4TosDelayCounter - 190, // 829: otg.PatternFlowIpv4TosThroughput.choice:type_name -> otg.PatternFlowIpv4TosThroughput.Choice.Enum - 714, // 830: otg.PatternFlowIpv4TosThroughput.metric_tags:type_name -> otg.PatternFlowIpv4TosThroughputMetricTag - 715, // 831: otg.PatternFlowIpv4TosThroughput.increment:type_name -> otg.PatternFlowIpv4TosThroughputCounter - 715, // 832: otg.PatternFlowIpv4TosThroughput.decrement:type_name -> otg.PatternFlowIpv4TosThroughputCounter - 191, // 833: otg.PatternFlowIpv4TosReliability.choice:type_name -> otg.PatternFlowIpv4TosReliability.Choice.Enum - 717, // 834: otg.PatternFlowIpv4TosReliability.metric_tags:type_name -> otg.PatternFlowIpv4TosReliabilityMetricTag - 718, // 835: otg.PatternFlowIpv4TosReliability.increment:type_name -> otg.PatternFlowIpv4TosReliabilityCounter - 718, // 836: otg.PatternFlowIpv4TosReliability.decrement:type_name -> otg.PatternFlowIpv4TosReliabilityCounter - 192, // 837: otg.PatternFlowIpv4TosMonetary.choice:type_name -> otg.PatternFlowIpv4TosMonetary.Choice.Enum - 720, // 838: otg.PatternFlowIpv4TosMonetary.metric_tags:type_name -> otg.PatternFlowIpv4TosMonetaryMetricTag - 721, // 839: otg.PatternFlowIpv4TosMonetary.increment:type_name -> otg.PatternFlowIpv4TosMonetaryCounter - 721, // 840: otg.PatternFlowIpv4TosMonetary.decrement:type_name -> otg.PatternFlowIpv4TosMonetaryCounter - 193, // 841: otg.PatternFlowIpv4TosUnused.choice:type_name -> otg.PatternFlowIpv4TosUnused.Choice.Enum - 723, // 842: otg.PatternFlowIpv4TosUnused.metric_tags:type_name -> otg.PatternFlowIpv4TosUnusedMetricTag - 724, // 843: otg.PatternFlowIpv4TosUnused.increment:type_name -> otg.PatternFlowIpv4TosUnusedCounter - 724, // 844: otg.PatternFlowIpv4TosUnused.decrement:type_name -> otg.PatternFlowIpv4TosUnusedCounter - 194, // 845: otg.PatternFlowIpv6Version.choice:type_name -> otg.PatternFlowIpv6Version.Choice.Enum - 726, // 846: otg.PatternFlowIpv6Version.metric_tags:type_name -> otg.PatternFlowIpv6VersionMetricTag - 727, // 847: otg.PatternFlowIpv6Version.increment:type_name -> otg.PatternFlowIpv6VersionCounter - 727, // 848: otg.PatternFlowIpv6Version.decrement:type_name -> otg.PatternFlowIpv6VersionCounter - 195, // 849: otg.PatternFlowIpv6TrafficClass.choice:type_name -> otg.PatternFlowIpv6TrafficClass.Choice.Enum - 729, // 850: otg.PatternFlowIpv6TrafficClass.metric_tags:type_name -> otg.PatternFlowIpv6TrafficClassMetricTag - 730, // 851: otg.PatternFlowIpv6TrafficClass.increment:type_name -> otg.PatternFlowIpv6TrafficClassCounter - 730, // 852: otg.PatternFlowIpv6TrafficClass.decrement:type_name -> otg.PatternFlowIpv6TrafficClassCounter - 196, // 853: otg.PatternFlowIpv6FlowLabel.choice:type_name -> otg.PatternFlowIpv6FlowLabel.Choice.Enum - 732, // 854: otg.PatternFlowIpv6FlowLabel.metric_tags:type_name -> otg.PatternFlowIpv6FlowLabelMetricTag - 733, // 855: otg.PatternFlowIpv6FlowLabel.increment:type_name -> otg.PatternFlowIpv6FlowLabelCounter - 733, // 856: otg.PatternFlowIpv6FlowLabel.decrement:type_name -> otg.PatternFlowIpv6FlowLabelCounter - 197, // 857: otg.PatternFlowIpv6PayloadLength.choice:type_name -> otg.PatternFlowIpv6PayloadLength.Choice.Enum - 735, // 858: otg.PatternFlowIpv6PayloadLength.metric_tags:type_name -> otg.PatternFlowIpv6PayloadLengthMetricTag - 736, // 859: otg.PatternFlowIpv6PayloadLength.increment:type_name -> otg.PatternFlowIpv6PayloadLengthCounter - 736, // 860: otg.PatternFlowIpv6PayloadLength.decrement:type_name -> otg.PatternFlowIpv6PayloadLengthCounter - 198, // 861: otg.PatternFlowIpv6NextHeader.choice:type_name -> otg.PatternFlowIpv6NextHeader.Choice.Enum - 738, // 862: otg.PatternFlowIpv6NextHeader.metric_tags:type_name -> otg.PatternFlowIpv6NextHeaderMetricTag - 739, // 863: otg.PatternFlowIpv6NextHeader.increment:type_name -> otg.PatternFlowIpv6NextHeaderCounter - 739, // 864: otg.PatternFlowIpv6NextHeader.decrement:type_name -> otg.PatternFlowIpv6NextHeaderCounter - 199, // 865: otg.PatternFlowIpv6HopLimit.choice:type_name -> otg.PatternFlowIpv6HopLimit.Choice.Enum - 741, // 866: otg.PatternFlowIpv6HopLimit.metric_tags:type_name -> otg.PatternFlowIpv6HopLimitMetricTag - 742, // 867: otg.PatternFlowIpv6HopLimit.increment:type_name -> otg.PatternFlowIpv6HopLimitCounter - 742, // 868: otg.PatternFlowIpv6HopLimit.decrement:type_name -> otg.PatternFlowIpv6HopLimitCounter - 200, // 869: otg.PatternFlowIpv6Src.choice:type_name -> otg.PatternFlowIpv6Src.Choice.Enum - 744, // 870: otg.PatternFlowIpv6Src.metric_tags:type_name -> otg.PatternFlowIpv6SrcMetricTag - 745, // 871: otg.PatternFlowIpv6Src.increment:type_name -> otg.PatternFlowIpv6SrcCounter - 745, // 872: otg.PatternFlowIpv6Src.decrement:type_name -> otg.PatternFlowIpv6SrcCounter - 201, // 873: otg.PatternFlowIpv6Dst.choice:type_name -> otg.PatternFlowIpv6Dst.Choice.Enum - 747, // 874: otg.PatternFlowIpv6Dst.metric_tags:type_name -> otg.PatternFlowIpv6DstMetricTag - 748, // 875: otg.PatternFlowIpv6Dst.increment:type_name -> otg.PatternFlowIpv6DstCounter - 748, // 876: otg.PatternFlowIpv6Dst.decrement:type_name -> otg.PatternFlowIpv6DstCounter - 202, // 877: otg.PatternFlowPfcPauseDst.choice:type_name -> otg.PatternFlowPfcPauseDst.Choice.Enum - 750, // 878: otg.PatternFlowPfcPauseDst.metric_tags:type_name -> otg.PatternFlowPfcPauseDstMetricTag - 751, // 879: otg.PatternFlowPfcPauseDst.increment:type_name -> otg.PatternFlowPfcPauseDstCounter - 751, // 880: otg.PatternFlowPfcPauseDst.decrement:type_name -> otg.PatternFlowPfcPauseDstCounter - 203, // 881: otg.PatternFlowPfcPauseSrc.choice:type_name -> otg.PatternFlowPfcPauseSrc.Choice.Enum - 753, // 882: otg.PatternFlowPfcPauseSrc.metric_tags:type_name -> otg.PatternFlowPfcPauseSrcMetricTag - 754, // 883: otg.PatternFlowPfcPauseSrc.increment:type_name -> otg.PatternFlowPfcPauseSrcCounter - 754, // 884: otg.PatternFlowPfcPauseSrc.decrement:type_name -> otg.PatternFlowPfcPauseSrcCounter - 204, // 885: otg.PatternFlowPfcPauseEtherType.choice:type_name -> otg.PatternFlowPfcPauseEtherType.Choice.Enum - 756, // 886: otg.PatternFlowPfcPauseEtherType.metric_tags:type_name -> otg.PatternFlowPfcPauseEtherTypeMetricTag - 757, // 887: otg.PatternFlowPfcPauseEtherType.increment:type_name -> otg.PatternFlowPfcPauseEtherTypeCounter - 757, // 888: otg.PatternFlowPfcPauseEtherType.decrement:type_name -> otg.PatternFlowPfcPauseEtherTypeCounter - 205, // 889: otg.PatternFlowPfcPauseControlOpCode.choice:type_name -> otg.PatternFlowPfcPauseControlOpCode.Choice.Enum - 759, // 890: otg.PatternFlowPfcPauseControlOpCode.metric_tags:type_name -> otg.PatternFlowPfcPauseControlOpCodeMetricTag - 760, // 891: otg.PatternFlowPfcPauseControlOpCode.increment:type_name -> otg.PatternFlowPfcPauseControlOpCodeCounter - 760, // 892: otg.PatternFlowPfcPauseControlOpCode.decrement:type_name -> otg.PatternFlowPfcPauseControlOpCodeCounter - 206, // 893: otg.PatternFlowPfcPauseClassEnableVector.choice:type_name -> otg.PatternFlowPfcPauseClassEnableVector.Choice.Enum - 762, // 894: otg.PatternFlowPfcPauseClassEnableVector.metric_tags:type_name -> otg.PatternFlowPfcPauseClassEnableVectorMetricTag - 763, // 895: otg.PatternFlowPfcPauseClassEnableVector.increment:type_name -> otg.PatternFlowPfcPauseClassEnableVectorCounter - 763, // 896: otg.PatternFlowPfcPauseClassEnableVector.decrement:type_name -> otg.PatternFlowPfcPauseClassEnableVectorCounter - 207, // 897: otg.PatternFlowPfcPausePauseClass0.choice:type_name -> otg.PatternFlowPfcPausePauseClass0.Choice.Enum - 765, // 898: otg.PatternFlowPfcPausePauseClass0.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass0MetricTag - 766, // 899: otg.PatternFlowPfcPausePauseClass0.increment:type_name -> otg.PatternFlowPfcPausePauseClass0Counter - 766, // 900: otg.PatternFlowPfcPausePauseClass0.decrement:type_name -> otg.PatternFlowPfcPausePauseClass0Counter - 208, // 901: otg.PatternFlowPfcPausePauseClass1.choice:type_name -> otg.PatternFlowPfcPausePauseClass1.Choice.Enum - 768, // 902: otg.PatternFlowPfcPausePauseClass1.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass1MetricTag - 769, // 903: otg.PatternFlowPfcPausePauseClass1.increment:type_name -> otg.PatternFlowPfcPausePauseClass1Counter - 769, // 904: otg.PatternFlowPfcPausePauseClass1.decrement:type_name -> otg.PatternFlowPfcPausePauseClass1Counter - 209, // 905: otg.PatternFlowPfcPausePauseClass2.choice:type_name -> otg.PatternFlowPfcPausePauseClass2.Choice.Enum - 771, // 906: otg.PatternFlowPfcPausePauseClass2.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass2MetricTag - 772, // 907: otg.PatternFlowPfcPausePauseClass2.increment:type_name -> otg.PatternFlowPfcPausePauseClass2Counter - 772, // 908: otg.PatternFlowPfcPausePauseClass2.decrement:type_name -> otg.PatternFlowPfcPausePauseClass2Counter - 210, // 909: otg.PatternFlowPfcPausePauseClass3.choice:type_name -> otg.PatternFlowPfcPausePauseClass3.Choice.Enum - 774, // 910: otg.PatternFlowPfcPausePauseClass3.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass3MetricTag - 775, // 911: otg.PatternFlowPfcPausePauseClass3.increment:type_name -> otg.PatternFlowPfcPausePauseClass3Counter - 775, // 912: otg.PatternFlowPfcPausePauseClass3.decrement:type_name -> otg.PatternFlowPfcPausePauseClass3Counter - 211, // 913: otg.PatternFlowPfcPausePauseClass4.choice:type_name -> otg.PatternFlowPfcPausePauseClass4.Choice.Enum - 777, // 914: otg.PatternFlowPfcPausePauseClass4.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass4MetricTag - 778, // 915: otg.PatternFlowPfcPausePauseClass4.increment:type_name -> otg.PatternFlowPfcPausePauseClass4Counter - 778, // 916: otg.PatternFlowPfcPausePauseClass4.decrement:type_name -> otg.PatternFlowPfcPausePauseClass4Counter - 212, // 917: otg.PatternFlowPfcPausePauseClass5.choice:type_name -> otg.PatternFlowPfcPausePauseClass5.Choice.Enum - 780, // 918: otg.PatternFlowPfcPausePauseClass5.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass5MetricTag - 781, // 919: otg.PatternFlowPfcPausePauseClass5.increment:type_name -> otg.PatternFlowPfcPausePauseClass5Counter - 781, // 920: otg.PatternFlowPfcPausePauseClass5.decrement:type_name -> otg.PatternFlowPfcPausePauseClass5Counter - 213, // 921: otg.PatternFlowPfcPausePauseClass6.choice:type_name -> otg.PatternFlowPfcPausePauseClass6.Choice.Enum - 783, // 922: otg.PatternFlowPfcPausePauseClass6.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass6MetricTag - 784, // 923: otg.PatternFlowPfcPausePauseClass6.increment:type_name -> otg.PatternFlowPfcPausePauseClass6Counter - 784, // 924: otg.PatternFlowPfcPausePauseClass6.decrement:type_name -> otg.PatternFlowPfcPausePauseClass6Counter - 214, // 925: otg.PatternFlowPfcPausePauseClass7.choice:type_name -> otg.PatternFlowPfcPausePauseClass7.Choice.Enum - 786, // 926: otg.PatternFlowPfcPausePauseClass7.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass7MetricTag - 787, // 927: otg.PatternFlowPfcPausePauseClass7.increment:type_name -> otg.PatternFlowPfcPausePauseClass7Counter - 787, // 928: otg.PatternFlowPfcPausePauseClass7.decrement:type_name -> otg.PatternFlowPfcPausePauseClass7Counter - 215, // 929: otg.PatternFlowEthernetPauseDst.choice:type_name -> otg.PatternFlowEthernetPauseDst.Choice.Enum - 789, // 930: otg.PatternFlowEthernetPauseDst.metric_tags:type_name -> otg.PatternFlowEthernetPauseDstMetricTag - 790, // 931: otg.PatternFlowEthernetPauseDst.increment:type_name -> otg.PatternFlowEthernetPauseDstCounter - 790, // 932: otg.PatternFlowEthernetPauseDst.decrement:type_name -> otg.PatternFlowEthernetPauseDstCounter - 216, // 933: otg.PatternFlowEthernetPauseSrc.choice:type_name -> otg.PatternFlowEthernetPauseSrc.Choice.Enum - 792, // 934: otg.PatternFlowEthernetPauseSrc.metric_tags:type_name -> otg.PatternFlowEthernetPauseSrcMetricTag - 793, // 935: otg.PatternFlowEthernetPauseSrc.increment:type_name -> otg.PatternFlowEthernetPauseSrcCounter - 793, // 936: otg.PatternFlowEthernetPauseSrc.decrement:type_name -> otg.PatternFlowEthernetPauseSrcCounter - 217, // 937: otg.PatternFlowEthernetPauseEtherType.choice:type_name -> otg.PatternFlowEthernetPauseEtherType.Choice.Enum - 795, // 938: otg.PatternFlowEthernetPauseEtherType.metric_tags:type_name -> otg.PatternFlowEthernetPauseEtherTypeMetricTag - 796, // 939: otg.PatternFlowEthernetPauseEtherType.increment:type_name -> otg.PatternFlowEthernetPauseEtherTypeCounter - 796, // 940: otg.PatternFlowEthernetPauseEtherType.decrement:type_name -> otg.PatternFlowEthernetPauseEtherTypeCounter - 218, // 941: otg.PatternFlowEthernetPauseControlOpCode.choice:type_name -> otg.PatternFlowEthernetPauseControlOpCode.Choice.Enum - 798, // 942: otg.PatternFlowEthernetPauseControlOpCode.metric_tags:type_name -> otg.PatternFlowEthernetPauseControlOpCodeMetricTag - 799, // 943: otg.PatternFlowEthernetPauseControlOpCode.increment:type_name -> otg.PatternFlowEthernetPauseControlOpCodeCounter - 799, // 944: otg.PatternFlowEthernetPauseControlOpCode.decrement:type_name -> otg.PatternFlowEthernetPauseControlOpCodeCounter - 219, // 945: otg.PatternFlowEthernetPauseTime.choice:type_name -> otg.PatternFlowEthernetPauseTime.Choice.Enum - 801, // 946: otg.PatternFlowEthernetPauseTime.metric_tags:type_name -> otg.PatternFlowEthernetPauseTimeMetricTag - 802, // 947: otg.PatternFlowEthernetPauseTime.increment:type_name -> otg.PatternFlowEthernetPauseTimeCounter - 802, // 948: otg.PatternFlowEthernetPauseTime.decrement:type_name -> otg.PatternFlowEthernetPauseTimeCounter - 220, // 949: otg.PatternFlowTcpSrcPort.choice:type_name -> otg.PatternFlowTcpSrcPort.Choice.Enum - 804, // 950: otg.PatternFlowTcpSrcPort.metric_tags:type_name -> otg.PatternFlowTcpSrcPortMetricTag - 805, // 951: otg.PatternFlowTcpSrcPort.increment:type_name -> otg.PatternFlowTcpSrcPortCounter - 805, // 952: otg.PatternFlowTcpSrcPort.decrement:type_name -> otg.PatternFlowTcpSrcPortCounter - 221, // 953: otg.PatternFlowTcpDstPort.choice:type_name -> otg.PatternFlowTcpDstPort.Choice.Enum - 807, // 954: otg.PatternFlowTcpDstPort.metric_tags:type_name -> otg.PatternFlowTcpDstPortMetricTag - 808, // 955: otg.PatternFlowTcpDstPort.increment:type_name -> otg.PatternFlowTcpDstPortCounter - 808, // 956: otg.PatternFlowTcpDstPort.decrement:type_name -> otg.PatternFlowTcpDstPortCounter - 222, // 957: otg.PatternFlowTcpSeqNum.choice:type_name -> otg.PatternFlowTcpSeqNum.Choice.Enum - 810, // 958: otg.PatternFlowTcpSeqNum.metric_tags:type_name -> otg.PatternFlowTcpSeqNumMetricTag - 811, // 959: otg.PatternFlowTcpSeqNum.increment:type_name -> otg.PatternFlowTcpSeqNumCounter - 811, // 960: otg.PatternFlowTcpSeqNum.decrement:type_name -> otg.PatternFlowTcpSeqNumCounter - 223, // 961: otg.PatternFlowTcpAckNum.choice:type_name -> otg.PatternFlowTcpAckNum.Choice.Enum - 813, // 962: otg.PatternFlowTcpAckNum.metric_tags:type_name -> otg.PatternFlowTcpAckNumMetricTag - 814, // 963: otg.PatternFlowTcpAckNum.increment:type_name -> otg.PatternFlowTcpAckNumCounter - 814, // 964: otg.PatternFlowTcpAckNum.decrement:type_name -> otg.PatternFlowTcpAckNumCounter - 224, // 965: otg.PatternFlowTcpDataOffset.choice:type_name -> otg.PatternFlowTcpDataOffset.Choice.Enum - 816, // 966: otg.PatternFlowTcpDataOffset.metric_tags:type_name -> otg.PatternFlowTcpDataOffsetMetricTag - 817, // 967: otg.PatternFlowTcpDataOffset.increment:type_name -> otg.PatternFlowTcpDataOffsetCounter - 817, // 968: otg.PatternFlowTcpDataOffset.decrement:type_name -> otg.PatternFlowTcpDataOffsetCounter - 225, // 969: otg.PatternFlowTcpEcnNs.choice:type_name -> otg.PatternFlowTcpEcnNs.Choice.Enum - 819, // 970: otg.PatternFlowTcpEcnNs.metric_tags:type_name -> otg.PatternFlowTcpEcnNsMetricTag - 820, // 971: otg.PatternFlowTcpEcnNs.increment:type_name -> otg.PatternFlowTcpEcnNsCounter - 820, // 972: otg.PatternFlowTcpEcnNs.decrement:type_name -> otg.PatternFlowTcpEcnNsCounter - 226, // 973: otg.PatternFlowTcpEcnCwr.choice:type_name -> otg.PatternFlowTcpEcnCwr.Choice.Enum - 822, // 974: otg.PatternFlowTcpEcnCwr.metric_tags:type_name -> otg.PatternFlowTcpEcnCwrMetricTag - 823, // 975: otg.PatternFlowTcpEcnCwr.increment:type_name -> otg.PatternFlowTcpEcnCwrCounter - 823, // 976: otg.PatternFlowTcpEcnCwr.decrement:type_name -> otg.PatternFlowTcpEcnCwrCounter - 227, // 977: otg.PatternFlowTcpEcnEcho.choice:type_name -> otg.PatternFlowTcpEcnEcho.Choice.Enum - 825, // 978: otg.PatternFlowTcpEcnEcho.metric_tags:type_name -> otg.PatternFlowTcpEcnEchoMetricTag - 826, // 979: otg.PatternFlowTcpEcnEcho.increment:type_name -> otg.PatternFlowTcpEcnEchoCounter - 826, // 980: otg.PatternFlowTcpEcnEcho.decrement:type_name -> otg.PatternFlowTcpEcnEchoCounter - 228, // 981: otg.PatternFlowTcpCtlUrg.choice:type_name -> otg.PatternFlowTcpCtlUrg.Choice.Enum - 828, // 982: otg.PatternFlowTcpCtlUrg.metric_tags:type_name -> otg.PatternFlowTcpCtlUrgMetricTag - 829, // 983: otg.PatternFlowTcpCtlUrg.increment:type_name -> otg.PatternFlowTcpCtlUrgCounter - 829, // 984: otg.PatternFlowTcpCtlUrg.decrement:type_name -> otg.PatternFlowTcpCtlUrgCounter - 229, // 985: otg.PatternFlowTcpCtlAck.choice:type_name -> otg.PatternFlowTcpCtlAck.Choice.Enum - 831, // 986: otg.PatternFlowTcpCtlAck.metric_tags:type_name -> otg.PatternFlowTcpCtlAckMetricTag - 832, // 987: otg.PatternFlowTcpCtlAck.increment:type_name -> otg.PatternFlowTcpCtlAckCounter - 832, // 988: otg.PatternFlowTcpCtlAck.decrement:type_name -> otg.PatternFlowTcpCtlAckCounter - 230, // 989: otg.PatternFlowTcpCtlPsh.choice:type_name -> otg.PatternFlowTcpCtlPsh.Choice.Enum - 834, // 990: otg.PatternFlowTcpCtlPsh.metric_tags:type_name -> otg.PatternFlowTcpCtlPshMetricTag - 835, // 991: otg.PatternFlowTcpCtlPsh.increment:type_name -> otg.PatternFlowTcpCtlPshCounter - 835, // 992: otg.PatternFlowTcpCtlPsh.decrement:type_name -> otg.PatternFlowTcpCtlPshCounter - 231, // 993: otg.PatternFlowTcpCtlRst.choice:type_name -> otg.PatternFlowTcpCtlRst.Choice.Enum - 837, // 994: otg.PatternFlowTcpCtlRst.metric_tags:type_name -> otg.PatternFlowTcpCtlRstMetricTag - 838, // 995: otg.PatternFlowTcpCtlRst.increment:type_name -> otg.PatternFlowTcpCtlRstCounter - 838, // 996: otg.PatternFlowTcpCtlRst.decrement:type_name -> otg.PatternFlowTcpCtlRstCounter - 232, // 997: otg.PatternFlowTcpCtlSyn.choice:type_name -> otg.PatternFlowTcpCtlSyn.Choice.Enum - 840, // 998: otg.PatternFlowTcpCtlSyn.metric_tags:type_name -> otg.PatternFlowTcpCtlSynMetricTag - 841, // 999: otg.PatternFlowTcpCtlSyn.increment:type_name -> otg.PatternFlowTcpCtlSynCounter - 841, // 1000: otg.PatternFlowTcpCtlSyn.decrement:type_name -> otg.PatternFlowTcpCtlSynCounter - 233, // 1001: otg.PatternFlowTcpCtlFin.choice:type_name -> otg.PatternFlowTcpCtlFin.Choice.Enum - 843, // 1002: otg.PatternFlowTcpCtlFin.metric_tags:type_name -> otg.PatternFlowTcpCtlFinMetricTag - 844, // 1003: otg.PatternFlowTcpCtlFin.increment:type_name -> otg.PatternFlowTcpCtlFinCounter - 844, // 1004: otg.PatternFlowTcpCtlFin.decrement:type_name -> otg.PatternFlowTcpCtlFinCounter - 234, // 1005: otg.PatternFlowTcpWindow.choice:type_name -> otg.PatternFlowTcpWindow.Choice.Enum - 846, // 1006: otg.PatternFlowTcpWindow.metric_tags:type_name -> otg.PatternFlowTcpWindowMetricTag - 847, // 1007: otg.PatternFlowTcpWindow.increment:type_name -> otg.PatternFlowTcpWindowCounter - 847, // 1008: otg.PatternFlowTcpWindow.decrement:type_name -> otg.PatternFlowTcpWindowCounter - 235, // 1009: otg.PatternFlowUdpSrcPort.choice:type_name -> otg.PatternFlowUdpSrcPort.Choice.Enum - 849, // 1010: otg.PatternFlowUdpSrcPort.metric_tags:type_name -> otg.PatternFlowUdpSrcPortMetricTag - 850, // 1011: otg.PatternFlowUdpSrcPort.increment:type_name -> otg.PatternFlowUdpSrcPortCounter - 850, // 1012: otg.PatternFlowUdpSrcPort.decrement:type_name -> otg.PatternFlowUdpSrcPortCounter - 236, // 1013: otg.PatternFlowUdpDstPort.choice:type_name -> otg.PatternFlowUdpDstPort.Choice.Enum - 852, // 1014: otg.PatternFlowUdpDstPort.metric_tags:type_name -> otg.PatternFlowUdpDstPortMetricTag - 853, // 1015: otg.PatternFlowUdpDstPort.increment:type_name -> otg.PatternFlowUdpDstPortCounter - 853, // 1016: otg.PatternFlowUdpDstPort.decrement:type_name -> otg.PatternFlowUdpDstPortCounter - 237, // 1017: otg.PatternFlowUdpLength.choice:type_name -> otg.PatternFlowUdpLength.Choice.Enum - 855, // 1018: otg.PatternFlowUdpLength.metric_tags:type_name -> otg.PatternFlowUdpLengthMetricTag - 856, // 1019: otg.PatternFlowUdpLength.increment:type_name -> otg.PatternFlowUdpLengthCounter - 856, // 1020: otg.PatternFlowUdpLength.decrement:type_name -> otg.PatternFlowUdpLengthCounter - 238, // 1021: otg.PatternFlowUdpChecksum.choice:type_name -> otg.PatternFlowUdpChecksum.Choice.Enum - 239, // 1022: otg.PatternFlowUdpChecksum.generated:type_name -> otg.PatternFlowUdpChecksum.Generated.Enum - 240, // 1023: otg.PatternFlowGreChecksumPresent.choice:type_name -> otg.PatternFlowGreChecksumPresent.Choice.Enum - 859, // 1024: otg.PatternFlowGreChecksumPresent.metric_tags:type_name -> otg.PatternFlowGreChecksumPresentMetricTag - 860, // 1025: otg.PatternFlowGreChecksumPresent.increment:type_name -> otg.PatternFlowGreChecksumPresentCounter - 860, // 1026: otg.PatternFlowGreChecksumPresent.decrement:type_name -> otg.PatternFlowGreChecksumPresentCounter - 241, // 1027: otg.PatternFlowGreReserved0.choice:type_name -> otg.PatternFlowGreReserved0.Choice.Enum - 862, // 1028: otg.PatternFlowGreReserved0.metric_tags:type_name -> otg.PatternFlowGreReserved0MetricTag - 863, // 1029: otg.PatternFlowGreReserved0.increment:type_name -> otg.PatternFlowGreReserved0Counter - 863, // 1030: otg.PatternFlowGreReserved0.decrement:type_name -> otg.PatternFlowGreReserved0Counter - 242, // 1031: otg.PatternFlowGreVersion.choice:type_name -> otg.PatternFlowGreVersion.Choice.Enum - 865, // 1032: otg.PatternFlowGreVersion.metric_tags:type_name -> otg.PatternFlowGreVersionMetricTag - 866, // 1033: otg.PatternFlowGreVersion.increment:type_name -> otg.PatternFlowGreVersionCounter - 866, // 1034: otg.PatternFlowGreVersion.decrement:type_name -> otg.PatternFlowGreVersionCounter - 243, // 1035: otg.PatternFlowGreProtocol.choice:type_name -> otg.PatternFlowGreProtocol.Choice.Enum - 868, // 1036: otg.PatternFlowGreProtocol.metric_tags:type_name -> otg.PatternFlowGreProtocolMetricTag - 869, // 1037: otg.PatternFlowGreProtocol.increment:type_name -> otg.PatternFlowGreProtocolCounter - 869, // 1038: otg.PatternFlowGreProtocol.decrement:type_name -> otg.PatternFlowGreProtocolCounter - 244, // 1039: otg.PatternFlowGreChecksum.choice:type_name -> otg.PatternFlowGreChecksum.Choice.Enum - 245, // 1040: otg.PatternFlowGreChecksum.generated:type_name -> otg.PatternFlowGreChecksum.Generated.Enum - 246, // 1041: otg.PatternFlowGreReserved1.choice:type_name -> otg.PatternFlowGreReserved1.Choice.Enum - 872, // 1042: otg.PatternFlowGreReserved1.metric_tags:type_name -> otg.PatternFlowGreReserved1MetricTag - 873, // 1043: otg.PatternFlowGreReserved1.increment:type_name -> otg.PatternFlowGreReserved1Counter - 873, // 1044: otg.PatternFlowGreReserved1.decrement:type_name -> otg.PatternFlowGreReserved1Counter - 247, // 1045: otg.PatternFlowGtpv1Version.choice:type_name -> otg.PatternFlowGtpv1Version.Choice.Enum - 875, // 1046: otg.PatternFlowGtpv1Version.metric_tags:type_name -> otg.PatternFlowGtpv1VersionMetricTag - 876, // 1047: otg.PatternFlowGtpv1Version.increment:type_name -> otg.PatternFlowGtpv1VersionCounter - 876, // 1048: otg.PatternFlowGtpv1Version.decrement:type_name -> otg.PatternFlowGtpv1VersionCounter - 248, // 1049: otg.PatternFlowGtpv1ProtocolType.choice:type_name -> otg.PatternFlowGtpv1ProtocolType.Choice.Enum - 878, // 1050: otg.PatternFlowGtpv1ProtocolType.metric_tags:type_name -> otg.PatternFlowGtpv1ProtocolTypeMetricTag - 879, // 1051: otg.PatternFlowGtpv1ProtocolType.increment:type_name -> otg.PatternFlowGtpv1ProtocolTypeCounter - 879, // 1052: otg.PatternFlowGtpv1ProtocolType.decrement:type_name -> otg.PatternFlowGtpv1ProtocolTypeCounter - 249, // 1053: otg.PatternFlowGtpv1Reserved.choice:type_name -> otg.PatternFlowGtpv1Reserved.Choice.Enum - 881, // 1054: otg.PatternFlowGtpv1Reserved.metric_tags:type_name -> otg.PatternFlowGtpv1ReservedMetricTag - 882, // 1055: otg.PatternFlowGtpv1Reserved.increment:type_name -> otg.PatternFlowGtpv1ReservedCounter - 882, // 1056: otg.PatternFlowGtpv1Reserved.decrement:type_name -> otg.PatternFlowGtpv1ReservedCounter - 250, // 1057: otg.PatternFlowGtpv1EFlag.choice:type_name -> otg.PatternFlowGtpv1EFlag.Choice.Enum - 884, // 1058: otg.PatternFlowGtpv1EFlag.metric_tags:type_name -> otg.PatternFlowGtpv1EFlagMetricTag - 885, // 1059: otg.PatternFlowGtpv1EFlag.increment:type_name -> otg.PatternFlowGtpv1EFlagCounter - 885, // 1060: otg.PatternFlowGtpv1EFlag.decrement:type_name -> otg.PatternFlowGtpv1EFlagCounter - 251, // 1061: otg.PatternFlowGtpv1SFlag.choice:type_name -> otg.PatternFlowGtpv1SFlag.Choice.Enum - 887, // 1062: otg.PatternFlowGtpv1SFlag.metric_tags:type_name -> otg.PatternFlowGtpv1SFlagMetricTag - 888, // 1063: otg.PatternFlowGtpv1SFlag.increment:type_name -> otg.PatternFlowGtpv1SFlagCounter - 888, // 1064: otg.PatternFlowGtpv1SFlag.decrement:type_name -> otg.PatternFlowGtpv1SFlagCounter - 252, // 1065: otg.PatternFlowGtpv1PnFlag.choice:type_name -> otg.PatternFlowGtpv1PnFlag.Choice.Enum - 890, // 1066: otg.PatternFlowGtpv1PnFlag.metric_tags:type_name -> otg.PatternFlowGtpv1PnFlagMetricTag - 891, // 1067: otg.PatternFlowGtpv1PnFlag.increment:type_name -> otg.PatternFlowGtpv1PnFlagCounter - 891, // 1068: otg.PatternFlowGtpv1PnFlag.decrement:type_name -> otg.PatternFlowGtpv1PnFlagCounter - 253, // 1069: otg.PatternFlowGtpv1MessageType.choice:type_name -> otg.PatternFlowGtpv1MessageType.Choice.Enum - 893, // 1070: otg.PatternFlowGtpv1MessageType.metric_tags:type_name -> otg.PatternFlowGtpv1MessageTypeMetricTag - 894, // 1071: otg.PatternFlowGtpv1MessageType.increment:type_name -> otg.PatternFlowGtpv1MessageTypeCounter - 894, // 1072: otg.PatternFlowGtpv1MessageType.decrement:type_name -> otg.PatternFlowGtpv1MessageTypeCounter - 254, // 1073: otg.PatternFlowGtpv1MessageLength.choice:type_name -> otg.PatternFlowGtpv1MessageLength.Choice.Enum - 896, // 1074: otg.PatternFlowGtpv1MessageLength.metric_tags:type_name -> otg.PatternFlowGtpv1MessageLengthMetricTag - 897, // 1075: otg.PatternFlowGtpv1MessageLength.increment:type_name -> otg.PatternFlowGtpv1MessageLengthCounter - 897, // 1076: otg.PatternFlowGtpv1MessageLength.decrement:type_name -> otg.PatternFlowGtpv1MessageLengthCounter - 255, // 1077: otg.PatternFlowGtpv1Teid.choice:type_name -> otg.PatternFlowGtpv1Teid.Choice.Enum - 899, // 1078: otg.PatternFlowGtpv1Teid.metric_tags:type_name -> otg.PatternFlowGtpv1TeidMetricTag - 900, // 1079: otg.PatternFlowGtpv1Teid.increment:type_name -> otg.PatternFlowGtpv1TeidCounter - 900, // 1080: otg.PatternFlowGtpv1Teid.decrement:type_name -> otg.PatternFlowGtpv1TeidCounter - 256, // 1081: otg.PatternFlowGtpv1SquenceNumber.choice:type_name -> otg.PatternFlowGtpv1SquenceNumber.Choice.Enum - 902, // 1082: otg.PatternFlowGtpv1SquenceNumber.metric_tags:type_name -> otg.PatternFlowGtpv1SquenceNumberMetricTag - 903, // 1083: otg.PatternFlowGtpv1SquenceNumber.increment:type_name -> otg.PatternFlowGtpv1SquenceNumberCounter - 903, // 1084: otg.PatternFlowGtpv1SquenceNumber.decrement:type_name -> otg.PatternFlowGtpv1SquenceNumberCounter - 257, // 1085: otg.PatternFlowGtpv1NPduNumber.choice:type_name -> otg.PatternFlowGtpv1NPduNumber.Choice.Enum - 905, // 1086: otg.PatternFlowGtpv1NPduNumber.metric_tags:type_name -> otg.PatternFlowGtpv1NPduNumberMetricTag - 906, // 1087: otg.PatternFlowGtpv1NPduNumber.increment:type_name -> otg.PatternFlowGtpv1NPduNumberCounter - 906, // 1088: otg.PatternFlowGtpv1NPduNumber.decrement:type_name -> otg.PatternFlowGtpv1NPduNumberCounter - 258, // 1089: otg.PatternFlowGtpv1NextExtensionHeaderType.choice:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.Enum - 908, // 1090: otg.PatternFlowGtpv1NextExtensionHeaderType.metric_tags:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag - 909, // 1091: otg.PatternFlowGtpv1NextExtensionHeaderType.increment:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter - 909, // 1092: otg.PatternFlowGtpv1NextExtensionHeaderType.decrement:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter - 259, // 1093: otg.PatternFlowGtpExtensionExtensionLength.choice:type_name -> otg.PatternFlowGtpExtensionExtensionLength.Choice.Enum - 911, // 1094: otg.PatternFlowGtpExtensionExtensionLength.metric_tags:type_name -> otg.PatternFlowGtpExtensionExtensionLengthMetricTag - 912, // 1095: otg.PatternFlowGtpExtensionExtensionLength.increment:type_name -> otg.PatternFlowGtpExtensionExtensionLengthCounter - 912, // 1096: otg.PatternFlowGtpExtensionExtensionLength.decrement:type_name -> otg.PatternFlowGtpExtensionExtensionLengthCounter - 260, // 1097: otg.PatternFlowGtpExtensionContents.choice:type_name -> otg.PatternFlowGtpExtensionContents.Choice.Enum - 914, // 1098: otg.PatternFlowGtpExtensionContents.metric_tags:type_name -> otg.PatternFlowGtpExtensionContentsMetricTag - 915, // 1099: otg.PatternFlowGtpExtensionContents.increment:type_name -> otg.PatternFlowGtpExtensionContentsCounter - 915, // 1100: otg.PatternFlowGtpExtensionContents.decrement:type_name -> otg.PatternFlowGtpExtensionContentsCounter - 261, // 1101: otg.PatternFlowGtpExtensionNextExtensionHeader.choice:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.Enum - 917, // 1102: otg.PatternFlowGtpExtensionNextExtensionHeader.metric_tags:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag - 918, // 1103: otg.PatternFlowGtpExtensionNextExtensionHeader.increment:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderCounter - 918, // 1104: otg.PatternFlowGtpExtensionNextExtensionHeader.decrement:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderCounter - 262, // 1105: otg.PatternFlowGtpv2Version.choice:type_name -> otg.PatternFlowGtpv2Version.Choice.Enum - 920, // 1106: otg.PatternFlowGtpv2Version.metric_tags:type_name -> otg.PatternFlowGtpv2VersionMetricTag - 921, // 1107: otg.PatternFlowGtpv2Version.increment:type_name -> otg.PatternFlowGtpv2VersionCounter - 921, // 1108: otg.PatternFlowGtpv2Version.decrement:type_name -> otg.PatternFlowGtpv2VersionCounter - 263, // 1109: otg.PatternFlowGtpv2PiggybackingFlag.choice:type_name -> otg.PatternFlowGtpv2PiggybackingFlag.Choice.Enum - 923, // 1110: otg.PatternFlowGtpv2PiggybackingFlag.metric_tags:type_name -> otg.PatternFlowGtpv2PiggybackingFlagMetricTag - 924, // 1111: otg.PatternFlowGtpv2PiggybackingFlag.increment:type_name -> otg.PatternFlowGtpv2PiggybackingFlagCounter - 924, // 1112: otg.PatternFlowGtpv2PiggybackingFlag.decrement:type_name -> otg.PatternFlowGtpv2PiggybackingFlagCounter - 264, // 1113: otg.PatternFlowGtpv2TeidFlag.choice:type_name -> otg.PatternFlowGtpv2TeidFlag.Choice.Enum - 926, // 1114: otg.PatternFlowGtpv2TeidFlag.metric_tags:type_name -> otg.PatternFlowGtpv2TeidFlagMetricTag - 927, // 1115: otg.PatternFlowGtpv2TeidFlag.increment:type_name -> otg.PatternFlowGtpv2TeidFlagCounter - 927, // 1116: otg.PatternFlowGtpv2TeidFlag.decrement:type_name -> otg.PatternFlowGtpv2TeidFlagCounter - 265, // 1117: otg.PatternFlowGtpv2Spare1.choice:type_name -> otg.PatternFlowGtpv2Spare1.Choice.Enum - 929, // 1118: otg.PatternFlowGtpv2Spare1.metric_tags:type_name -> otg.PatternFlowGtpv2Spare1MetricTag - 930, // 1119: otg.PatternFlowGtpv2Spare1.increment:type_name -> otg.PatternFlowGtpv2Spare1Counter - 930, // 1120: otg.PatternFlowGtpv2Spare1.decrement:type_name -> otg.PatternFlowGtpv2Spare1Counter - 266, // 1121: otg.PatternFlowGtpv2MessageType.choice:type_name -> otg.PatternFlowGtpv2MessageType.Choice.Enum - 932, // 1122: otg.PatternFlowGtpv2MessageType.metric_tags:type_name -> otg.PatternFlowGtpv2MessageTypeMetricTag - 933, // 1123: otg.PatternFlowGtpv2MessageType.increment:type_name -> otg.PatternFlowGtpv2MessageTypeCounter - 933, // 1124: otg.PatternFlowGtpv2MessageType.decrement:type_name -> otg.PatternFlowGtpv2MessageTypeCounter - 267, // 1125: otg.PatternFlowGtpv2MessageLength.choice:type_name -> otg.PatternFlowGtpv2MessageLength.Choice.Enum - 935, // 1126: otg.PatternFlowGtpv2MessageLength.metric_tags:type_name -> otg.PatternFlowGtpv2MessageLengthMetricTag - 936, // 1127: otg.PatternFlowGtpv2MessageLength.increment:type_name -> otg.PatternFlowGtpv2MessageLengthCounter - 936, // 1128: otg.PatternFlowGtpv2MessageLength.decrement:type_name -> otg.PatternFlowGtpv2MessageLengthCounter - 268, // 1129: otg.PatternFlowGtpv2Teid.choice:type_name -> otg.PatternFlowGtpv2Teid.Choice.Enum - 938, // 1130: otg.PatternFlowGtpv2Teid.metric_tags:type_name -> otg.PatternFlowGtpv2TeidMetricTag - 939, // 1131: otg.PatternFlowGtpv2Teid.increment:type_name -> otg.PatternFlowGtpv2TeidCounter - 939, // 1132: otg.PatternFlowGtpv2Teid.decrement:type_name -> otg.PatternFlowGtpv2TeidCounter - 269, // 1133: otg.PatternFlowGtpv2SequenceNumber.choice:type_name -> otg.PatternFlowGtpv2SequenceNumber.Choice.Enum - 941, // 1134: otg.PatternFlowGtpv2SequenceNumber.metric_tags:type_name -> otg.PatternFlowGtpv2SequenceNumberMetricTag - 942, // 1135: otg.PatternFlowGtpv2SequenceNumber.increment:type_name -> otg.PatternFlowGtpv2SequenceNumberCounter - 942, // 1136: otg.PatternFlowGtpv2SequenceNumber.decrement:type_name -> otg.PatternFlowGtpv2SequenceNumberCounter - 270, // 1137: otg.PatternFlowGtpv2Spare2.choice:type_name -> otg.PatternFlowGtpv2Spare2.Choice.Enum - 944, // 1138: otg.PatternFlowGtpv2Spare2.metric_tags:type_name -> otg.PatternFlowGtpv2Spare2MetricTag - 945, // 1139: otg.PatternFlowGtpv2Spare2.increment:type_name -> otg.PatternFlowGtpv2Spare2Counter - 945, // 1140: otg.PatternFlowGtpv2Spare2.decrement:type_name -> otg.PatternFlowGtpv2Spare2Counter - 271, // 1141: otg.PatternFlowArpHardwareType.choice:type_name -> otg.PatternFlowArpHardwareType.Choice.Enum - 947, // 1142: otg.PatternFlowArpHardwareType.metric_tags:type_name -> otg.PatternFlowArpHardwareTypeMetricTag - 948, // 1143: otg.PatternFlowArpHardwareType.increment:type_name -> otg.PatternFlowArpHardwareTypeCounter - 948, // 1144: otg.PatternFlowArpHardwareType.decrement:type_name -> otg.PatternFlowArpHardwareTypeCounter - 272, // 1145: otg.PatternFlowArpProtocolType.choice:type_name -> otg.PatternFlowArpProtocolType.Choice.Enum - 950, // 1146: otg.PatternFlowArpProtocolType.metric_tags:type_name -> otg.PatternFlowArpProtocolTypeMetricTag - 951, // 1147: otg.PatternFlowArpProtocolType.increment:type_name -> otg.PatternFlowArpProtocolTypeCounter - 951, // 1148: otg.PatternFlowArpProtocolType.decrement:type_name -> otg.PatternFlowArpProtocolTypeCounter - 273, // 1149: otg.PatternFlowArpHardwareLength.choice:type_name -> otg.PatternFlowArpHardwareLength.Choice.Enum - 953, // 1150: otg.PatternFlowArpHardwareLength.metric_tags:type_name -> otg.PatternFlowArpHardwareLengthMetricTag - 954, // 1151: otg.PatternFlowArpHardwareLength.increment:type_name -> otg.PatternFlowArpHardwareLengthCounter - 954, // 1152: otg.PatternFlowArpHardwareLength.decrement:type_name -> otg.PatternFlowArpHardwareLengthCounter - 274, // 1153: otg.PatternFlowArpProtocolLength.choice:type_name -> otg.PatternFlowArpProtocolLength.Choice.Enum - 956, // 1154: otg.PatternFlowArpProtocolLength.metric_tags:type_name -> otg.PatternFlowArpProtocolLengthMetricTag - 957, // 1155: otg.PatternFlowArpProtocolLength.increment:type_name -> otg.PatternFlowArpProtocolLengthCounter - 957, // 1156: otg.PatternFlowArpProtocolLength.decrement:type_name -> otg.PatternFlowArpProtocolLengthCounter - 275, // 1157: otg.PatternFlowArpOperation.choice:type_name -> otg.PatternFlowArpOperation.Choice.Enum - 959, // 1158: otg.PatternFlowArpOperation.metric_tags:type_name -> otg.PatternFlowArpOperationMetricTag - 960, // 1159: otg.PatternFlowArpOperation.increment:type_name -> otg.PatternFlowArpOperationCounter - 960, // 1160: otg.PatternFlowArpOperation.decrement:type_name -> otg.PatternFlowArpOperationCounter - 276, // 1161: otg.PatternFlowArpSenderHardwareAddr.choice:type_name -> otg.PatternFlowArpSenderHardwareAddr.Choice.Enum - 962, // 1162: otg.PatternFlowArpSenderHardwareAddr.metric_tags:type_name -> otg.PatternFlowArpSenderHardwareAddrMetricTag - 963, // 1163: otg.PatternFlowArpSenderHardwareAddr.increment:type_name -> otg.PatternFlowArpSenderHardwareAddrCounter - 963, // 1164: otg.PatternFlowArpSenderHardwareAddr.decrement:type_name -> otg.PatternFlowArpSenderHardwareAddrCounter - 277, // 1165: otg.PatternFlowArpSenderProtocolAddr.choice:type_name -> otg.PatternFlowArpSenderProtocolAddr.Choice.Enum - 965, // 1166: otg.PatternFlowArpSenderProtocolAddr.metric_tags:type_name -> otg.PatternFlowArpSenderProtocolAddrMetricTag - 966, // 1167: otg.PatternFlowArpSenderProtocolAddr.increment:type_name -> otg.PatternFlowArpSenderProtocolAddrCounter - 966, // 1168: otg.PatternFlowArpSenderProtocolAddr.decrement:type_name -> otg.PatternFlowArpSenderProtocolAddrCounter - 278, // 1169: otg.PatternFlowArpTargetHardwareAddr.choice:type_name -> otg.PatternFlowArpTargetHardwareAddr.Choice.Enum - 968, // 1170: otg.PatternFlowArpTargetHardwareAddr.metric_tags:type_name -> otg.PatternFlowArpTargetHardwareAddrMetricTag - 969, // 1171: otg.PatternFlowArpTargetHardwareAddr.increment:type_name -> otg.PatternFlowArpTargetHardwareAddrCounter - 969, // 1172: otg.PatternFlowArpTargetHardwareAddr.decrement:type_name -> otg.PatternFlowArpTargetHardwareAddrCounter - 279, // 1173: otg.PatternFlowArpTargetProtocolAddr.choice:type_name -> otg.PatternFlowArpTargetProtocolAddr.Choice.Enum - 971, // 1174: otg.PatternFlowArpTargetProtocolAddr.metric_tags:type_name -> otg.PatternFlowArpTargetProtocolAddrMetricTag - 972, // 1175: otg.PatternFlowArpTargetProtocolAddr.increment:type_name -> otg.PatternFlowArpTargetProtocolAddrCounter - 972, // 1176: otg.PatternFlowArpTargetProtocolAddr.decrement:type_name -> otg.PatternFlowArpTargetProtocolAddrCounter - 280, // 1177: otg.PatternFlowIcmpEchoType.choice:type_name -> otg.PatternFlowIcmpEchoType.Choice.Enum - 974, // 1178: otg.PatternFlowIcmpEchoType.metric_tags:type_name -> otg.PatternFlowIcmpEchoTypeMetricTag - 975, // 1179: otg.PatternFlowIcmpEchoType.increment:type_name -> otg.PatternFlowIcmpEchoTypeCounter - 975, // 1180: otg.PatternFlowIcmpEchoType.decrement:type_name -> otg.PatternFlowIcmpEchoTypeCounter - 281, // 1181: otg.PatternFlowIcmpEchoCode.choice:type_name -> otg.PatternFlowIcmpEchoCode.Choice.Enum - 977, // 1182: otg.PatternFlowIcmpEchoCode.metric_tags:type_name -> otg.PatternFlowIcmpEchoCodeMetricTag - 978, // 1183: otg.PatternFlowIcmpEchoCode.increment:type_name -> otg.PatternFlowIcmpEchoCodeCounter - 978, // 1184: otg.PatternFlowIcmpEchoCode.decrement:type_name -> otg.PatternFlowIcmpEchoCodeCounter - 282, // 1185: otg.PatternFlowIcmpEchoChecksum.choice:type_name -> otg.PatternFlowIcmpEchoChecksum.Choice.Enum - 283, // 1186: otg.PatternFlowIcmpEchoChecksum.generated:type_name -> otg.PatternFlowIcmpEchoChecksum.Generated.Enum - 284, // 1187: otg.PatternFlowIcmpEchoIdentifier.choice:type_name -> otg.PatternFlowIcmpEchoIdentifier.Choice.Enum - 981, // 1188: otg.PatternFlowIcmpEchoIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpEchoIdentifierMetricTag - 982, // 1189: otg.PatternFlowIcmpEchoIdentifier.increment:type_name -> otg.PatternFlowIcmpEchoIdentifierCounter - 982, // 1190: otg.PatternFlowIcmpEchoIdentifier.decrement:type_name -> otg.PatternFlowIcmpEchoIdentifierCounter - 285, // 1191: otg.PatternFlowIcmpEchoSequenceNumber.choice:type_name -> otg.PatternFlowIcmpEchoSequenceNumber.Choice.Enum - 984, // 1192: otg.PatternFlowIcmpEchoSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpEchoSequenceNumberMetricTag - 985, // 1193: otg.PatternFlowIcmpEchoSequenceNumber.increment:type_name -> otg.PatternFlowIcmpEchoSequenceNumberCounter - 985, // 1194: otg.PatternFlowIcmpEchoSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpEchoSequenceNumberCounter - 286, // 1195: otg.PatternFlowIcmpCommonChecksum.choice:type_name -> otg.PatternFlowIcmpCommonChecksum.Choice.Enum - 287, // 1196: otg.PatternFlowIcmpCommonChecksum.generated:type_name -> otg.PatternFlowIcmpCommonChecksum.Generated.Enum - 288, // 1197: otg.PatternFlowIcmpNextFieldsIdentifier.choice:type_name -> otg.PatternFlowIcmpNextFieldsIdentifier.Choice.Enum - 988, // 1198: otg.PatternFlowIcmpNextFieldsIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierMetricTag - 989, // 1199: otg.PatternFlowIcmpNextFieldsIdentifier.increment:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierCounter - 989, // 1200: otg.PatternFlowIcmpNextFieldsIdentifier.decrement:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierCounter - 289, // 1201: otg.PatternFlowIcmpNextFieldsSequenceNumber.choice:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.Enum - 991, // 1202: otg.PatternFlowIcmpNextFieldsSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag - 992, // 1203: otg.PatternFlowIcmpNextFieldsSequenceNumber.increment:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberCounter - 992, // 1204: otg.PatternFlowIcmpNextFieldsSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberCounter - 290, // 1205: otg.PatternFlowIcmpv6EchoType.choice:type_name -> otg.PatternFlowIcmpv6EchoType.Choice.Enum - 994, // 1206: otg.PatternFlowIcmpv6EchoType.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoTypeMetricTag - 995, // 1207: otg.PatternFlowIcmpv6EchoType.increment:type_name -> otg.PatternFlowIcmpv6EchoTypeCounter - 995, // 1208: otg.PatternFlowIcmpv6EchoType.decrement:type_name -> otg.PatternFlowIcmpv6EchoTypeCounter - 291, // 1209: otg.PatternFlowIcmpv6EchoCode.choice:type_name -> otg.PatternFlowIcmpv6EchoCode.Choice.Enum - 997, // 1210: otg.PatternFlowIcmpv6EchoCode.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoCodeMetricTag - 998, // 1211: otg.PatternFlowIcmpv6EchoCode.increment:type_name -> otg.PatternFlowIcmpv6EchoCodeCounter - 998, // 1212: otg.PatternFlowIcmpv6EchoCode.decrement:type_name -> otg.PatternFlowIcmpv6EchoCodeCounter - 292, // 1213: otg.PatternFlowIcmpv6EchoIdentifier.choice:type_name -> otg.PatternFlowIcmpv6EchoIdentifier.Choice.Enum - 1000, // 1214: otg.PatternFlowIcmpv6EchoIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoIdentifierMetricTag - 1001, // 1215: otg.PatternFlowIcmpv6EchoIdentifier.increment:type_name -> otg.PatternFlowIcmpv6EchoIdentifierCounter - 1001, // 1216: otg.PatternFlowIcmpv6EchoIdentifier.decrement:type_name -> otg.PatternFlowIcmpv6EchoIdentifierCounter - 293, // 1217: otg.PatternFlowIcmpv6EchoSequenceNumber.choice:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.Enum - 1003, // 1218: otg.PatternFlowIcmpv6EchoSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag - 1004, // 1219: otg.PatternFlowIcmpv6EchoSequenceNumber.increment:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberCounter - 1004, // 1220: otg.PatternFlowIcmpv6EchoSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberCounter - 294, // 1221: otg.PatternFlowIcmpv6EchoChecksum.choice:type_name -> otg.PatternFlowIcmpv6EchoChecksum.Choice.Enum - 295, // 1222: otg.PatternFlowIcmpv6EchoChecksum.generated:type_name -> otg.PatternFlowIcmpv6EchoChecksum.Generated.Enum - 296, // 1223: otg.PatternFlowIcmpv6CommonChecksum.choice:type_name -> otg.PatternFlowIcmpv6CommonChecksum.Choice.Enum - 297, // 1224: otg.PatternFlowIcmpv6CommonChecksum.generated:type_name -> otg.PatternFlowIcmpv6CommonChecksum.Generated.Enum - 298, // 1225: otg.PatternFlowPppAddress.choice:type_name -> otg.PatternFlowPppAddress.Choice.Enum - 1008, // 1226: otg.PatternFlowPppAddress.metric_tags:type_name -> otg.PatternFlowPppAddressMetricTag - 1009, // 1227: otg.PatternFlowPppAddress.increment:type_name -> otg.PatternFlowPppAddressCounter - 1009, // 1228: otg.PatternFlowPppAddress.decrement:type_name -> otg.PatternFlowPppAddressCounter - 299, // 1229: otg.PatternFlowPppControl.choice:type_name -> otg.PatternFlowPppControl.Choice.Enum - 1011, // 1230: otg.PatternFlowPppControl.metric_tags:type_name -> otg.PatternFlowPppControlMetricTag - 1012, // 1231: otg.PatternFlowPppControl.increment:type_name -> otg.PatternFlowPppControlCounter - 1012, // 1232: otg.PatternFlowPppControl.decrement:type_name -> otg.PatternFlowPppControlCounter - 300, // 1233: otg.PatternFlowPppProtocolType.choice:type_name -> otg.PatternFlowPppProtocolType.Choice.Enum - 1014, // 1234: otg.PatternFlowPppProtocolType.metric_tags:type_name -> otg.PatternFlowPppProtocolTypeMetricTag - 1015, // 1235: otg.PatternFlowPppProtocolType.increment:type_name -> otg.PatternFlowPppProtocolTypeCounter - 1015, // 1236: otg.PatternFlowPppProtocolType.decrement:type_name -> otg.PatternFlowPppProtocolTypeCounter - 301, // 1237: otg.PatternFlowIgmpv1Version.choice:type_name -> otg.PatternFlowIgmpv1Version.Choice.Enum - 1017, // 1238: otg.PatternFlowIgmpv1Version.metric_tags:type_name -> otg.PatternFlowIgmpv1VersionMetricTag - 1018, // 1239: otg.PatternFlowIgmpv1Version.increment:type_name -> otg.PatternFlowIgmpv1VersionCounter - 1018, // 1240: otg.PatternFlowIgmpv1Version.decrement:type_name -> otg.PatternFlowIgmpv1VersionCounter - 302, // 1241: otg.PatternFlowIgmpv1Type.choice:type_name -> otg.PatternFlowIgmpv1Type.Choice.Enum - 1020, // 1242: otg.PatternFlowIgmpv1Type.metric_tags:type_name -> otg.PatternFlowIgmpv1TypeMetricTag - 1021, // 1243: otg.PatternFlowIgmpv1Type.increment:type_name -> otg.PatternFlowIgmpv1TypeCounter - 1021, // 1244: otg.PatternFlowIgmpv1Type.decrement:type_name -> otg.PatternFlowIgmpv1TypeCounter - 303, // 1245: otg.PatternFlowIgmpv1Unused.choice:type_name -> otg.PatternFlowIgmpv1Unused.Choice.Enum - 1023, // 1246: otg.PatternFlowIgmpv1Unused.metric_tags:type_name -> otg.PatternFlowIgmpv1UnusedMetricTag - 1024, // 1247: otg.PatternFlowIgmpv1Unused.increment:type_name -> otg.PatternFlowIgmpv1UnusedCounter - 1024, // 1248: otg.PatternFlowIgmpv1Unused.decrement:type_name -> otg.PatternFlowIgmpv1UnusedCounter - 304, // 1249: otg.PatternFlowIgmpv1Checksum.choice:type_name -> otg.PatternFlowIgmpv1Checksum.Choice.Enum - 305, // 1250: otg.PatternFlowIgmpv1Checksum.generated:type_name -> otg.PatternFlowIgmpv1Checksum.Generated.Enum - 306, // 1251: otg.PatternFlowIgmpv1GroupAddress.choice:type_name -> otg.PatternFlowIgmpv1GroupAddress.Choice.Enum - 1027, // 1252: otg.PatternFlowIgmpv1GroupAddress.metric_tags:type_name -> otg.PatternFlowIgmpv1GroupAddressMetricTag - 1028, // 1253: otg.PatternFlowIgmpv1GroupAddress.increment:type_name -> otg.PatternFlowIgmpv1GroupAddressCounter - 1028, // 1254: otg.PatternFlowIgmpv1GroupAddress.decrement:type_name -> otg.PatternFlowIgmpv1GroupAddressCounter - 307, // 1255: otg.PatternFlowMplsLabel.choice:type_name -> otg.PatternFlowMplsLabel.Choice.Enum - 1030, // 1256: otg.PatternFlowMplsLabel.metric_tags:type_name -> otg.PatternFlowMplsLabelMetricTag - 1031, // 1257: otg.PatternFlowMplsLabel.increment:type_name -> otg.PatternFlowMplsLabelCounter - 1031, // 1258: otg.PatternFlowMplsLabel.decrement:type_name -> otg.PatternFlowMplsLabelCounter - 308, // 1259: otg.PatternFlowMplsTrafficClass.choice:type_name -> otg.PatternFlowMplsTrafficClass.Choice.Enum - 1033, // 1260: otg.PatternFlowMplsTrafficClass.metric_tags:type_name -> otg.PatternFlowMplsTrafficClassMetricTag - 1034, // 1261: otg.PatternFlowMplsTrafficClass.increment:type_name -> otg.PatternFlowMplsTrafficClassCounter - 1034, // 1262: otg.PatternFlowMplsTrafficClass.decrement:type_name -> otg.PatternFlowMplsTrafficClassCounter - 309, // 1263: otg.PatternFlowMplsBottomOfStack.choice:type_name -> otg.PatternFlowMplsBottomOfStack.Choice.Enum - 1036, // 1264: otg.PatternFlowMplsBottomOfStack.metric_tags:type_name -> otg.PatternFlowMplsBottomOfStackMetricTag - 1037, // 1265: otg.PatternFlowMplsBottomOfStack.increment:type_name -> otg.PatternFlowMplsBottomOfStackCounter - 1037, // 1266: otg.PatternFlowMplsBottomOfStack.decrement:type_name -> otg.PatternFlowMplsBottomOfStackCounter - 310, // 1267: otg.PatternFlowMplsTimeToLive.choice:type_name -> otg.PatternFlowMplsTimeToLive.Choice.Enum - 1039, // 1268: otg.PatternFlowMplsTimeToLive.metric_tags:type_name -> otg.PatternFlowMplsTimeToLiveMetricTag - 1040, // 1269: otg.PatternFlowMplsTimeToLive.increment:type_name -> otg.PatternFlowMplsTimeToLiveCounter - 1040, // 1270: otg.PatternFlowMplsTimeToLive.decrement:type_name -> otg.PatternFlowMplsTimeToLiveCounter - 509, // 1271: otg.Success.warning:type_name -> otg.Warning - 508, // 1272: otg.Failure.error:type_name -> otg.Error - 311, // 1273: otg.SetConfigRequest.config:type_name -> otg.Config - 510, // 1274: otg.UpdateConfigRequest.config_update:type_name -> otg.ConfigUpdate - 509, // 1275: otg.SetConfigResponse.warning:type_name -> otg.Warning - 311, // 1276: otg.GetConfigResponse.config:type_name -> otg.Config - 509, // 1277: otg.UpdateConfigResponse.warning:type_name -> otg.Warning - 512, // 1278: otg.SetControlStateRequest.control_state:type_name -> otg.ControlState - 509, // 1279: otg.SetControlStateResponse.warning:type_name -> otg.Warning - 530, // 1280: otg.SetControlActionRequest.control_action:type_name -> otg.ControlAction - 531, // 1281: otg.SetControlActionResponse.control_action_response:type_name -> otg.ControlActionResponse - 517, // 1282: otg.SetTransmitStateRequest.transmit_state:type_name -> otg.TransmitState - 509, // 1283: otg.SetTransmitStateResponse.warning:type_name -> otg.Warning - 516, // 1284: otg.SetLinkStateRequest.link_state:type_name -> otg.LinkState - 509, // 1285: otg.SetLinkStateResponse.warning:type_name -> otg.Warning - 518, // 1286: otg.SetCaptureStateRequest.capture_state:type_name -> otg.CaptureState - 509, // 1287: otg.SetCaptureStateResponse.warning:type_name -> otg.Warning - 511, // 1288: otg.UpdateFlowsRequest.flows_update:type_name -> otg.FlowsUpdate - 311, // 1289: otg.UpdateFlowsResponse.config:type_name -> otg.Config - 519, // 1290: otg.SetRouteStateRequest.route_state:type_name -> otg.RouteState - 509, // 1291: otg.SetRouteStateResponse.warning:type_name -> otg.Warning - 553, // 1292: otg.SendPingRequest.ping_request:type_name -> otg.PingRequest - 554, // 1293: otg.SendPingResponse.ping_response:type_name -> otg.PingResponse - 520, // 1294: otg.SetProtocolStateRequest.protocol_state:type_name -> otg.ProtocolState - 509, // 1295: otg.SetProtocolStateResponse.warning:type_name -> otg.Warning - 521, // 1296: otg.SetDeviceStateRequest.device_state:type_name -> otg.DeviceState - 509, // 1297: otg.SetDeviceStateResponse.warning:type_name -> otg.Warning - 556, // 1298: otg.GetMetricsRequest.metrics_request:type_name -> otg.MetricsRequest - 557, // 1299: otg.GetMetricsResponse.metrics_response:type_name -> otg.MetricsResponse - 583, // 1300: otg.GetStatesRequest.states_request:type_name -> otg.StatesRequest - 584, // 1301: otg.GetStatesResponse.states_response:type_name -> otg.StatesResponse - 625, // 1302: otg.GetCaptureRequest.capture_request:type_name -> otg.CaptureRequest - 1042, // 1303: otg.GetVersionResponse.version:type_name -> otg.Version - 1045, // 1304: otg.Openapi.SetConfig:input_type -> otg.SetConfigRequest - 1388, // 1305: otg.Openapi.GetConfig:input_type -> google.protobuf.Empty - 1046, // 1306: otg.Openapi.UpdateConfig:input_type -> otg.UpdateConfigRequest - 1050, // 1307: otg.Openapi.SetControlState:input_type -> otg.SetControlStateRequest - 1052, // 1308: otg.Openapi.SetControlAction:input_type -> otg.SetControlActionRequest - 1054, // 1309: otg.Openapi.SetTransmitState:input_type -> otg.SetTransmitStateRequest - 1056, // 1310: otg.Openapi.SetLinkState:input_type -> otg.SetLinkStateRequest - 1058, // 1311: otg.Openapi.SetCaptureState:input_type -> otg.SetCaptureStateRequest - 1060, // 1312: otg.Openapi.UpdateFlows:input_type -> otg.UpdateFlowsRequest - 1062, // 1313: otg.Openapi.SetRouteState:input_type -> otg.SetRouteStateRequest - 1064, // 1314: otg.Openapi.SendPing:input_type -> otg.SendPingRequest - 1066, // 1315: otg.Openapi.SetProtocolState:input_type -> otg.SetProtocolStateRequest - 1068, // 1316: otg.Openapi.SetDeviceState:input_type -> otg.SetDeviceStateRequest - 1070, // 1317: otg.Openapi.GetMetrics:input_type -> otg.GetMetricsRequest - 1072, // 1318: otg.Openapi.GetStates:input_type -> otg.GetStatesRequest - 1074, // 1319: otg.Openapi.GetCapture:input_type -> otg.GetCaptureRequest - 1388, // 1320: otg.Openapi.GetVersion:input_type -> google.protobuf.Empty - 1047, // 1321: otg.Openapi.SetConfig:output_type -> otg.SetConfigResponse - 1048, // 1322: otg.Openapi.GetConfig:output_type -> otg.GetConfigResponse - 1049, // 1323: otg.Openapi.UpdateConfig:output_type -> otg.UpdateConfigResponse - 1051, // 1324: otg.Openapi.SetControlState:output_type -> otg.SetControlStateResponse - 1053, // 1325: otg.Openapi.SetControlAction:output_type -> otg.SetControlActionResponse - 1055, // 1326: otg.Openapi.SetTransmitState:output_type -> otg.SetTransmitStateResponse - 1057, // 1327: otg.Openapi.SetLinkState:output_type -> otg.SetLinkStateResponse - 1059, // 1328: otg.Openapi.SetCaptureState:output_type -> otg.SetCaptureStateResponse - 1061, // 1329: otg.Openapi.UpdateFlows:output_type -> otg.UpdateFlowsResponse - 1063, // 1330: otg.Openapi.SetRouteState:output_type -> otg.SetRouteStateResponse - 1065, // 1331: otg.Openapi.SendPing:output_type -> otg.SendPingResponse - 1067, // 1332: otg.Openapi.SetProtocolState:output_type -> otg.SetProtocolStateResponse - 1069, // 1333: otg.Openapi.SetDeviceState:output_type -> otg.SetDeviceStateResponse - 1071, // 1334: otg.Openapi.GetMetrics:output_type -> otg.GetMetricsResponse - 1073, // 1335: otg.Openapi.GetStates:output_type -> otg.GetStatesResponse - 1075, // 1336: otg.Openapi.GetCapture:output_type -> otg.GetCaptureResponse - 1076, // 1337: otg.Openapi.GetVersion:output_type -> otg.GetVersionResponse - 1321, // [1321:1338] is the sub-list for method output_type - 1304, // [1304:1321] is the sub-list for method input_type - 1304, // [1304:1304] is the sub-list for extension type_name - 1304, // [1304:1304] is the sub-list for extension extendee - 0, // [0:1304] is the sub-list for field type_name + 455, // 302: otg.Flow.egress_packet:type_name -> otg.FlowHeader + 482, // 303: otg.Flow.size:type_name -> otg.FlowSize + 485, // 304: otg.Flow.rate:type_name -> otg.FlowRate + 486, // 305: otg.Flow.duration:type_name -> otg.FlowDuration + 493, // 306: otg.Flow.metrics:type_name -> otg.FlowMetrics + 59, // 307: otg.FlowTxRx.choice:type_name -> otg.FlowTxRx.Choice.Enum + 453, // 308: otg.FlowTxRx.port:type_name -> otg.FlowPort + 454, // 309: otg.FlowTxRx.device:type_name -> otg.FlowRouter + 60, // 310: otg.FlowRouter.mode:type_name -> otg.FlowRouter.Mode.Enum + 61, // 311: otg.FlowHeader.choice:type_name -> otg.FlowHeader.Choice.Enum + 456, // 312: otg.FlowHeader.custom:type_name -> otg.FlowCustom + 458, // 313: otg.FlowHeader.ethernet:type_name -> otg.FlowEthernet + 459, // 314: otg.FlowHeader.vlan:type_name -> otg.FlowVlan + 460, // 315: otg.FlowHeader.vxlan:type_name -> otg.FlowVxlan + 461, // 316: otg.FlowHeader.ipv4:type_name -> otg.FlowIpv4 + 465, // 317: otg.FlowHeader.ipv6:type_name -> otg.FlowIpv6 + 466, // 318: otg.FlowHeader.pfcpause:type_name -> otg.FlowPfcPause + 467, // 319: otg.FlowHeader.ethernetpause:type_name -> otg.FlowEthernetPause + 468, // 320: otg.FlowHeader.tcp:type_name -> otg.FlowTcp + 469, // 321: otg.FlowHeader.udp:type_name -> otg.FlowUdp + 470, // 322: otg.FlowHeader.gre:type_name -> otg.FlowGre + 471, // 323: otg.FlowHeader.gtpv1:type_name -> otg.FlowGtpv1 + 473, // 324: otg.FlowHeader.gtpv2:type_name -> otg.FlowGtpv2 + 474, // 325: otg.FlowHeader.arp:type_name -> otg.FlowArp + 475, // 326: otg.FlowHeader.icmp:type_name -> otg.FlowIcmp + 477, // 327: otg.FlowHeader.icmpv6:type_name -> otg.FlowIcmpv6 + 479, // 328: otg.FlowHeader.ppp:type_name -> otg.FlowPpp + 480, // 329: otg.FlowHeader.igmpv1:type_name -> otg.FlowIgmpv1 + 481, // 330: otg.FlowHeader.mpls:type_name -> otg.FlowMpls + 457, // 331: otg.FlowCustom.metric_tags:type_name -> otg.FlowCustomMetricTag + 628, // 332: otg.FlowEthernet.dst:type_name -> otg.PatternFlowEthernetDst + 631, // 333: otg.FlowEthernet.src:type_name -> otg.PatternFlowEthernetSrc + 634, // 334: otg.FlowEthernet.ether_type:type_name -> otg.PatternFlowEthernetEtherType + 637, // 335: otg.FlowEthernet.pfc_queue:type_name -> otg.PatternFlowEthernetPfcQueue + 640, // 336: otg.FlowVlan.priority:type_name -> otg.PatternFlowVlanPriority + 643, // 337: otg.FlowVlan.cfi:type_name -> otg.PatternFlowVlanCfi + 646, // 338: otg.FlowVlan.id:type_name -> otg.PatternFlowVlanId + 649, // 339: otg.FlowVlan.tpid:type_name -> otg.PatternFlowVlanTpid + 652, // 340: otg.FlowVxlan.flags:type_name -> otg.PatternFlowVxlanFlags + 655, // 341: otg.FlowVxlan.reserved0:type_name -> otg.PatternFlowVxlanReserved0 + 658, // 342: otg.FlowVxlan.vni:type_name -> otg.PatternFlowVxlanVni + 661, // 343: otg.FlowVxlan.reserved1:type_name -> otg.PatternFlowVxlanReserved1 + 664, // 344: otg.FlowIpv4.version:type_name -> otg.PatternFlowIpv4Version + 667, // 345: otg.FlowIpv4.header_length:type_name -> otg.PatternFlowIpv4HeaderLength + 462, // 346: otg.FlowIpv4.priority:type_name -> otg.FlowIpv4Priority + 670, // 347: otg.FlowIpv4.total_length:type_name -> otg.PatternFlowIpv4TotalLength + 673, // 348: otg.FlowIpv4.identification:type_name -> otg.PatternFlowIpv4Identification + 676, // 349: otg.FlowIpv4.reserved:type_name -> otg.PatternFlowIpv4Reserved + 679, // 350: otg.FlowIpv4.dont_fragment:type_name -> otg.PatternFlowIpv4DontFragment + 682, // 351: otg.FlowIpv4.more_fragments:type_name -> otg.PatternFlowIpv4MoreFragments + 685, // 352: otg.FlowIpv4.fragment_offset:type_name -> otg.PatternFlowIpv4FragmentOffset + 688, // 353: otg.FlowIpv4.time_to_live:type_name -> otg.PatternFlowIpv4TimeToLive + 691, // 354: otg.FlowIpv4.protocol:type_name -> otg.PatternFlowIpv4Protocol + 692, // 355: otg.FlowIpv4.header_checksum:type_name -> otg.PatternFlowIpv4HeaderChecksum + 695, // 356: otg.FlowIpv4.src:type_name -> otg.PatternFlowIpv4Src + 698, // 357: otg.FlowIpv4.dst:type_name -> otg.PatternFlowIpv4Dst + 62, // 358: otg.FlowIpv4Priority.choice:type_name -> otg.FlowIpv4Priority.Choice.Enum + 701, // 359: otg.FlowIpv4Priority.raw:type_name -> otg.PatternFlowIpv4PriorityRaw + 464, // 360: otg.FlowIpv4Priority.tos:type_name -> otg.FlowIpv4Tos + 463, // 361: otg.FlowIpv4Priority.dscp:type_name -> otg.FlowIpv4Dscp + 704, // 362: otg.FlowIpv4Dscp.phb:type_name -> otg.PatternFlowIpv4DscpPhb + 707, // 363: otg.FlowIpv4Dscp.ecn:type_name -> otg.PatternFlowIpv4DscpEcn + 710, // 364: otg.FlowIpv4Tos.precedence:type_name -> otg.PatternFlowIpv4TosPrecedence + 713, // 365: otg.FlowIpv4Tos.delay:type_name -> otg.PatternFlowIpv4TosDelay + 716, // 366: otg.FlowIpv4Tos.throughput:type_name -> otg.PatternFlowIpv4TosThroughput + 719, // 367: otg.FlowIpv4Tos.reliability:type_name -> otg.PatternFlowIpv4TosReliability + 722, // 368: otg.FlowIpv4Tos.monetary:type_name -> otg.PatternFlowIpv4TosMonetary + 725, // 369: otg.FlowIpv4Tos.unused:type_name -> otg.PatternFlowIpv4TosUnused + 728, // 370: otg.FlowIpv6.version:type_name -> otg.PatternFlowIpv6Version + 731, // 371: otg.FlowIpv6.traffic_class:type_name -> otg.PatternFlowIpv6TrafficClass + 734, // 372: otg.FlowIpv6.flow_label:type_name -> otg.PatternFlowIpv6FlowLabel + 737, // 373: otg.FlowIpv6.payload_length:type_name -> otg.PatternFlowIpv6PayloadLength + 740, // 374: otg.FlowIpv6.next_header:type_name -> otg.PatternFlowIpv6NextHeader + 743, // 375: otg.FlowIpv6.hop_limit:type_name -> otg.PatternFlowIpv6HopLimit + 746, // 376: otg.FlowIpv6.src:type_name -> otg.PatternFlowIpv6Src + 749, // 377: otg.FlowIpv6.dst:type_name -> otg.PatternFlowIpv6Dst + 752, // 378: otg.FlowPfcPause.dst:type_name -> otg.PatternFlowPfcPauseDst + 755, // 379: otg.FlowPfcPause.src:type_name -> otg.PatternFlowPfcPauseSrc + 758, // 380: otg.FlowPfcPause.ether_type:type_name -> otg.PatternFlowPfcPauseEtherType + 761, // 381: otg.FlowPfcPause.control_op_code:type_name -> otg.PatternFlowPfcPauseControlOpCode + 764, // 382: otg.FlowPfcPause.class_enable_vector:type_name -> otg.PatternFlowPfcPauseClassEnableVector + 767, // 383: otg.FlowPfcPause.pause_class_0:type_name -> otg.PatternFlowPfcPausePauseClass0 + 770, // 384: otg.FlowPfcPause.pause_class_1:type_name -> otg.PatternFlowPfcPausePauseClass1 + 773, // 385: otg.FlowPfcPause.pause_class_2:type_name -> otg.PatternFlowPfcPausePauseClass2 + 776, // 386: otg.FlowPfcPause.pause_class_3:type_name -> otg.PatternFlowPfcPausePauseClass3 + 779, // 387: otg.FlowPfcPause.pause_class_4:type_name -> otg.PatternFlowPfcPausePauseClass4 + 782, // 388: otg.FlowPfcPause.pause_class_5:type_name -> otg.PatternFlowPfcPausePauseClass5 + 785, // 389: otg.FlowPfcPause.pause_class_6:type_name -> otg.PatternFlowPfcPausePauseClass6 + 788, // 390: otg.FlowPfcPause.pause_class_7:type_name -> otg.PatternFlowPfcPausePauseClass7 + 791, // 391: otg.FlowEthernetPause.dst:type_name -> otg.PatternFlowEthernetPauseDst + 794, // 392: otg.FlowEthernetPause.src:type_name -> otg.PatternFlowEthernetPauseSrc + 797, // 393: otg.FlowEthernetPause.ether_type:type_name -> otg.PatternFlowEthernetPauseEtherType + 800, // 394: otg.FlowEthernetPause.control_op_code:type_name -> otg.PatternFlowEthernetPauseControlOpCode + 803, // 395: otg.FlowEthernetPause.time:type_name -> otg.PatternFlowEthernetPauseTime + 806, // 396: otg.FlowTcp.src_port:type_name -> otg.PatternFlowTcpSrcPort + 809, // 397: otg.FlowTcp.dst_port:type_name -> otg.PatternFlowTcpDstPort + 812, // 398: otg.FlowTcp.seq_num:type_name -> otg.PatternFlowTcpSeqNum + 815, // 399: otg.FlowTcp.ack_num:type_name -> otg.PatternFlowTcpAckNum + 818, // 400: otg.FlowTcp.data_offset:type_name -> otg.PatternFlowTcpDataOffset + 821, // 401: otg.FlowTcp.ecn_ns:type_name -> otg.PatternFlowTcpEcnNs + 824, // 402: otg.FlowTcp.ecn_cwr:type_name -> otg.PatternFlowTcpEcnCwr + 827, // 403: otg.FlowTcp.ecn_echo:type_name -> otg.PatternFlowTcpEcnEcho + 830, // 404: otg.FlowTcp.ctl_urg:type_name -> otg.PatternFlowTcpCtlUrg + 833, // 405: otg.FlowTcp.ctl_ack:type_name -> otg.PatternFlowTcpCtlAck + 836, // 406: otg.FlowTcp.ctl_psh:type_name -> otg.PatternFlowTcpCtlPsh + 839, // 407: otg.FlowTcp.ctl_rst:type_name -> otg.PatternFlowTcpCtlRst + 842, // 408: otg.FlowTcp.ctl_syn:type_name -> otg.PatternFlowTcpCtlSyn + 845, // 409: otg.FlowTcp.ctl_fin:type_name -> otg.PatternFlowTcpCtlFin + 848, // 410: otg.FlowTcp.window:type_name -> otg.PatternFlowTcpWindow + 851, // 411: otg.FlowUdp.src_port:type_name -> otg.PatternFlowUdpSrcPort + 854, // 412: otg.FlowUdp.dst_port:type_name -> otg.PatternFlowUdpDstPort + 857, // 413: otg.FlowUdp.length:type_name -> otg.PatternFlowUdpLength + 858, // 414: otg.FlowUdp.checksum:type_name -> otg.PatternFlowUdpChecksum + 861, // 415: otg.FlowGre.checksum_present:type_name -> otg.PatternFlowGreChecksumPresent + 864, // 416: otg.FlowGre.reserved0:type_name -> otg.PatternFlowGreReserved0 + 867, // 417: otg.FlowGre.version:type_name -> otg.PatternFlowGreVersion + 870, // 418: otg.FlowGre.protocol:type_name -> otg.PatternFlowGreProtocol + 871, // 419: otg.FlowGre.checksum:type_name -> otg.PatternFlowGreChecksum + 874, // 420: otg.FlowGre.reserved1:type_name -> otg.PatternFlowGreReserved1 + 877, // 421: otg.FlowGtpv1.version:type_name -> otg.PatternFlowGtpv1Version + 880, // 422: otg.FlowGtpv1.protocol_type:type_name -> otg.PatternFlowGtpv1ProtocolType + 883, // 423: otg.FlowGtpv1.reserved:type_name -> otg.PatternFlowGtpv1Reserved + 886, // 424: otg.FlowGtpv1.e_flag:type_name -> otg.PatternFlowGtpv1EFlag + 889, // 425: otg.FlowGtpv1.s_flag:type_name -> otg.PatternFlowGtpv1SFlag + 892, // 426: otg.FlowGtpv1.pn_flag:type_name -> otg.PatternFlowGtpv1PnFlag + 895, // 427: otg.FlowGtpv1.message_type:type_name -> otg.PatternFlowGtpv1MessageType + 898, // 428: otg.FlowGtpv1.message_length:type_name -> otg.PatternFlowGtpv1MessageLength + 901, // 429: otg.FlowGtpv1.teid:type_name -> otg.PatternFlowGtpv1Teid + 904, // 430: otg.FlowGtpv1.squence_number:type_name -> otg.PatternFlowGtpv1SquenceNumber + 907, // 431: otg.FlowGtpv1.n_pdu_number:type_name -> otg.PatternFlowGtpv1NPduNumber + 910, // 432: otg.FlowGtpv1.next_extension_header_type:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderType + 472, // 433: otg.FlowGtpv1.extension_headers:type_name -> otg.FlowGtpExtension + 913, // 434: otg.FlowGtpExtension.extension_length:type_name -> otg.PatternFlowGtpExtensionExtensionLength + 916, // 435: otg.FlowGtpExtension.contents:type_name -> otg.PatternFlowGtpExtensionContents + 919, // 436: otg.FlowGtpExtension.next_extension_header:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeader + 922, // 437: otg.FlowGtpv2.version:type_name -> otg.PatternFlowGtpv2Version + 925, // 438: otg.FlowGtpv2.piggybacking_flag:type_name -> otg.PatternFlowGtpv2PiggybackingFlag + 928, // 439: otg.FlowGtpv2.teid_flag:type_name -> otg.PatternFlowGtpv2TeidFlag + 931, // 440: otg.FlowGtpv2.spare1:type_name -> otg.PatternFlowGtpv2Spare1 + 934, // 441: otg.FlowGtpv2.message_type:type_name -> otg.PatternFlowGtpv2MessageType + 937, // 442: otg.FlowGtpv2.message_length:type_name -> otg.PatternFlowGtpv2MessageLength + 940, // 443: otg.FlowGtpv2.teid:type_name -> otg.PatternFlowGtpv2Teid + 943, // 444: otg.FlowGtpv2.sequence_number:type_name -> otg.PatternFlowGtpv2SequenceNumber + 946, // 445: otg.FlowGtpv2.spare2:type_name -> otg.PatternFlowGtpv2Spare2 + 949, // 446: otg.FlowArp.hardware_type:type_name -> otg.PatternFlowArpHardwareType + 952, // 447: otg.FlowArp.protocol_type:type_name -> otg.PatternFlowArpProtocolType + 955, // 448: otg.FlowArp.hardware_length:type_name -> otg.PatternFlowArpHardwareLength + 958, // 449: otg.FlowArp.protocol_length:type_name -> otg.PatternFlowArpProtocolLength + 961, // 450: otg.FlowArp.operation:type_name -> otg.PatternFlowArpOperation + 964, // 451: otg.FlowArp.sender_hardware_addr:type_name -> otg.PatternFlowArpSenderHardwareAddr + 967, // 452: otg.FlowArp.sender_protocol_addr:type_name -> otg.PatternFlowArpSenderProtocolAddr + 970, // 453: otg.FlowArp.target_hardware_addr:type_name -> otg.PatternFlowArpTargetHardwareAddr + 973, // 454: otg.FlowArp.target_protocol_addr:type_name -> otg.PatternFlowArpTargetProtocolAddr + 63, // 455: otg.FlowIcmp.choice:type_name -> otg.FlowIcmp.Choice.Enum + 476, // 456: otg.FlowIcmp.echo:type_name -> otg.FlowIcmpEcho + 976, // 457: otg.FlowIcmpEcho.type:type_name -> otg.PatternFlowIcmpEchoType + 979, // 458: otg.FlowIcmpEcho.code:type_name -> otg.PatternFlowIcmpEchoCode + 980, // 459: otg.FlowIcmpEcho.checksum:type_name -> otg.PatternFlowIcmpEchoChecksum + 983, // 460: otg.FlowIcmpEcho.identifier:type_name -> otg.PatternFlowIcmpEchoIdentifier + 986, // 461: otg.FlowIcmpEcho.sequence_number:type_name -> otg.PatternFlowIcmpEchoSequenceNumber + 64, // 462: otg.FlowIcmpv6.choice:type_name -> otg.FlowIcmpv6.Choice.Enum + 478, // 463: otg.FlowIcmpv6.echo:type_name -> otg.FlowIcmpv6Echo + 996, // 464: otg.FlowIcmpv6Echo.type:type_name -> otg.PatternFlowIcmpv6EchoType + 999, // 465: otg.FlowIcmpv6Echo.code:type_name -> otg.PatternFlowIcmpv6EchoCode + 1002, // 466: otg.FlowIcmpv6Echo.identifier:type_name -> otg.PatternFlowIcmpv6EchoIdentifier + 1005, // 467: otg.FlowIcmpv6Echo.sequence_number:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumber + 1006, // 468: otg.FlowIcmpv6Echo.checksum:type_name -> otg.PatternFlowIcmpv6EchoChecksum + 1010, // 469: otg.FlowPpp.address:type_name -> otg.PatternFlowPppAddress + 1013, // 470: otg.FlowPpp.control:type_name -> otg.PatternFlowPppControl + 1016, // 471: otg.FlowPpp.protocol_type:type_name -> otg.PatternFlowPppProtocolType + 1019, // 472: otg.FlowIgmpv1.version:type_name -> otg.PatternFlowIgmpv1Version + 1022, // 473: otg.FlowIgmpv1.type:type_name -> otg.PatternFlowIgmpv1Type + 1025, // 474: otg.FlowIgmpv1.unused:type_name -> otg.PatternFlowIgmpv1Unused + 1026, // 475: otg.FlowIgmpv1.checksum:type_name -> otg.PatternFlowIgmpv1Checksum + 1029, // 476: otg.FlowIgmpv1.group_address:type_name -> otg.PatternFlowIgmpv1GroupAddress + 1032, // 477: otg.FlowMpls.label:type_name -> otg.PatternFlowMplsLabel + 1035, // 478: otg.FlowMpls.traffic_class:type_name -> otg.PatternFlowMplsTrafficClass + 1038, // 479: otg.FlowMpls.bottom_of_stack:type_name -> otg.PatternFlowMplsBottomOfStack + 1041, // 480: otg.FlowMpls.time_to_live:type_name -> otg.PatternFlowMplsTimeToLive + 65, // 481: otg.FlowSize.choice:type_name -> otg.FlowSize.Choice.Enum + 483, // 482: otg.FlowSize.increment:type_name -> otg.FlowSizeIncrement + 484, // 483: otg.FlowSize.random:type_name -> otg.FlowSizeRandom + 66, // 484: otg.FlowRate.choice:type_name -> otg.FlowRate.Choice.Enum + 67, // 485: otg.FlowDuration.choice:type_name -> otg.FlowDuration.Choice.Enum + 489, // 486: otg.FlowDuration.fixed_packets:type_name -> otg.FlowFixedPackets + 490, // 487: otg.FlowDuration.fixed_seconds:type_name -> otg.FlowFixedSeconds + 491, // 488: otg.FlowDuration.burst:type_name -> otg.FlowBurst + 487, // 489: otg.FlowDuration.continuous:type_name -> otg.FlowContinuous + 488, // 490: otg.FlowContinuous.delay:type_name -> otg.FlowDelay + 68, // 491: otg.FlowDelay.choice:type_name -> otg.FlowDelay.Choice.Enum + 488, // 492: otg.FlowFixedPackets.delay:type_name -> otg.FlowDelay + 488, // 493: otg.FlowFixedSeconds.delay:type_name -> otg.FlowDelay + 492, // 494: otg.FlowBurst.inter_burst_gap:type_name -> otg.FlowDurationInterBurstGap + 69, // 495: otg.FlowDurationInterBurstGap.choice:type_name -> otg.FlowDurationInterBurstGap.Choice.Enum + 494, // 496: otg.FlowMetrics.latency:type_name -> otg.FlowLatencyMetrics + 70, // 497: otg.FlowLatencyMetrics.mode:type_name -> otg.FlowLatencyMetrics.Mode.Enum + 497, // 498: otg.Event.link:type_name -> otg.EventLink + 496, // 499: otg.Event.rx_rate_threshold:type_name -> otg.EventRxRateThreshold + 498, // 500: otg.Event.route_advertise_withdraw:type_name -> otg.EventRouteAdvertiseWithdraw + 71, // 501: otg.EventRequest.type:type_name -> otg.EventRequest.Type.Enum + 499, // 502: otg.EventSubscription.events:type_name -> otg.EventRequest + 502, // 503: otg.Lldp.connection:type_name -> otg.LldpConnection + 503, // 504: otg.Lldp.chassis_id:type_name -> otg.LldpChassisId + 504, // 505: otg.Lldp.port_id:type_name -> otg.LldpPortId + 507, // 506: otg.Lldp.system_name:type_name -> otg.LldpSystemName + 72, // 507: otg.LldpConnection.choice:type_name -> otg.LldpConnection.Choice.Enum + 73, // 508: otg.LldpChassisId.choice:type_name -> otg.LldpChassisId.Choice.Enum + 505, // 509: otg.LldpChassisId.mac_address_subtype:type_name -> otg.LldpChassisMacSubType + 74, // 510: otg.LldpPortId.choice:type_name -> otg.LldpPortId.Choice.Enum + 506, // 511: otg.LldpPortId.interface_name_subtype:type_name -> otg.LldpPortInterfaceNameSubType + 75, // 512: otg.LldpChassisMacSubType.choice:type_name -> otg.LldpChassisMacSubType.Choice.Enum + 76, // 513: otg.LldpPortInterfaceNameSubType.choice:type_name -> otg.LldpPortInterfaceNameSubType.Choice.Enum + 77, // 514: otg.LldpSystemName.choice:type_name -> otg.LldpSystemName.Choice.Enum + 78, // 515: otg.Error.kind:type_name -> otg.Error.Kind.Enum + 79, // 516: otg.ConfigUpdate.choice:type_name -> otg.ConfigUpdate.Choice.Enum + 511, // 517: otg.ConfigUpdate.flows:type_name -> otg.FlowsUpdate + 80, // 518: otg.FlowsUpdate.property_names:type_name -> otg.FlowsUpdate.PropertyNames.Enum + 451, // 519: otg.FlowsUpdate.flows:type_name -> otg.Flow + 81, // 520: otg.ControlState.choice:type_name -> otg.ControlState.Choice.Enum + 513, // 521: otg.ControlState.port:type_name -> otg.StatePort + 515, // 522: otg.ControlState.protocol:type_name -> otg.StateProtocol + 514, // 523: otg.ControlState.traffic:type_name -> otg.StateTraffic + 82, // 524: otg.StatePort.choice:type_name -> otg.StatePort.Choice.Enum + 522, // 525: otg.StatePort.link:type_name -> otg.StatePortLink + 523, // 526: otg.StatePort.capture:type_name -> otg.StatePortCapture + 83, // 527: otg.StateTraffic.choice:type_name -> otg.StateTraffic.Choice.Enum + 524, // 528: otg.StateTraffic.flow_transmit:type_name -> otg.StateTrafficFlowTransmit + 84, // 529: otg.StateProtocol.choice:type_name -> otg.StateProtocol.Choice.Enum + 525, // 530: otg.StateProtocol.all:type_name -> otg.StateProtocolAll + 526, // 531: otg.StateProtocol.route:type_name -> otg.StateProtocolRoute + 527, // 532: otg.StateProtocol.lacp:type_name -> otg.StateProtocolLacp + 85, // 533: otg.LinkState.state:type_name -> otg.LinkState.State.Enum + 86, // 534: otg.TransmitState.state:type_name -> otg.TransmitState.State.Enum + 87, // 535: otg.CaptureState.state:type_name -> otg.CaptureState.State.Enum + 88, // 536: otg.RouteState.state:type_name -> otg.RouteState.State.Enum + 89, // 537: otg.ProtocolState.state:type_name -> otg.ProtocolState.State.Enum + 90, // 538: otg.DeviceState.choice:type_name -> otg.DeviceState.Choice.Enum + 529, // 539: otg.DeviceState.lacp_member_state:type_name -> otg.LacpMemberState + 91, // 540: otg.StatePortLink.state:type_name -> otg.StatePortLink.State.Enum + 92, // 541: otg.StatePortCapture.state:type_name -> otg.StatePortCapture.State.Enum + 93, // 542: otg.StateTrafficFlowTransmit.state:type_name -> otg.StateTrafficFlowTransmit.State.Enum + 94, // 543: otg.StateProtocolAll.state:type_name -> otg.StateProtocolAll.State.Enum + 95, // 544: otg.StateProtocolRoute.state:type_name -> otg.StateProtocolRoute.State.Enum + 96, // 545: otg.StateProtocolLacp.choice:type_name -> otg.StateProtocolLacp.Choice.Enum + 528, // 546: otg.StateProtocolLacp.admin:type_name -> otg.StateProtocolLacpAdmin + 97, // 547: otg.StateProtocolLacpAdmin.state:type_name -> otg.StateProtocolLacpAdmin.State.Enum + 98, // 548: otg.LacpMemberState.state:type_name -> otg.LacpMemberState.State.Enum + 99, // 549: otg.ControlAction.choice:type_name -> otg.ControlAction.Choice.Enum + 533, // 550: otg.ControlAction.protocol:type_name -> otg.ActionProtocol + 532, // 551: otg.ControlActionResponse.response:type_name -> otg.ActionResponse + 100, // 552: otg.ActionResponse.choice:type_name -> otg.ActionResponse.Choice.Enum + 534, // 553: otg.ActionResponse.protocol:type_name -> otg.ActionResponseProtocol + 101, // 554: otg.ActionProtocol.choice:type_name -> otg.ActionProtocol.Choice.Enum + 535, // 555: otg.ActionProtocol.ipv4:type_name -> otg.ActionProtocolIpv4 + 541, // 556: otg.ActionProtocol.ipv6:type_name -> otg.ActionProtocolIpv6 + 547, // 557: otg.ActionProtocol.bgp:type_name -> otg.ActionProtocolBgp + 102, // 558: otg.ActionResponseProtocol.choice:type_name -> otg.ActionResponseProtocol.Choice.Enum + 536, // 559: otg.ActionResponseProtocol.ipv4:type_name -> otg.ActionResponseProtocolIpv4 + 542, // 560: otg.ActionResponseProtocol.ipv6:type_name -> otg.ActionResponseProtocolIpv6 + 103, // 561: otg.ActionProtocolIpv4.choice:type_name -> otg.ActionProtocolIpv4.Choice.Enum + 537, // 562: otg.ActionProtocolIpv4.ping:type_name -> otg.ActionProtocolIpv4Ping + 104, // 563: otg.ActionResponseProtocolIpv4.choice:type_name -> otg.ActionResponseProtocolIpv4.Choice.Enum + 539, // 564: otg.ActionResponseProtocolIpv4.ping:type_name -> otg.ActionResponseProtocolIpv4Ping + 538, // 565: otg.ActionProtocolIpv4Ping.requests:type_name -> otg.ActionProtocolIpv4PingRequest + 540, // 566: otg.ActionResponseProtocolIpv4Ping.responses:type_name -> otg.ActionResponseProtocolIpv4PingResponse + 105, // 567: otg.ActionResponseProtocolIpv4PingResponse.result:type_name -> otg.ActionResponseProtocolIpv4PingResponse.Result.Enum + 106, // 568: otg.ActionProtocolIpv6.choice:type_name -> otg.ActionProtocolIpv6.Choice.Enum + 543, // 569: otg.ActionProtocolIpv6.ping:type_name -> otg.ActionProtocolIpv6Ping + 107, // 570: otg.ActionResponseProtocolIpv6.choice:type_name -> otg.ActionResponseProtocolIpv6.Choice.Enum + 545, // 571: otg.ActionResponseProtocolIpv6.ping:type_name -> otg.ActionResponseProtocolIpv6Ping + 544, // 572: otg.ActionProtocolIpv6Ping.requests:type_name -> otg.ActionProtocolIpv6PingRequest + 546, // 573: otg.ActionResponseProtocolIpv6Ping.responses:type_name -> otg.ActionResponseProtocolIpv6PingResponse + 108, // 574: otg.ActionResponseProtocolIpv6PingResponse.result:type_name -> otg.ActionResponseProtocolIpv6PingResponse.Result.Enum + 109, // 575: otg.ActionProtocolBgp.choice:type_name -> otg.ActionProtocolBgp.Choice.Enum + 548, // 576: otg.ActionProtocolBgp.notification:type_name -> otg.ActionProtocolBgpNotification + 549, // 577: otg.ActionProtocolBgp.initiate_graceful_restart:type_name -> otg.ActionProtocolBgpInitiateGracefulRestart + 110, // 578: otg.ActionProtocolBgpNotification.choice:type_name -> otg.ActionProtocolBgpNotification.Choice.Enum + 371, // 579: otg.ActionProtocolBgpNotification.cease:type_name -> otg.DeviceBgpCeaseError + 366, // 580: otg.ActionProtocolBgpNotification.message_header_error:type_name -> otg.DeviceBgpMessageHeaderError + 367, // 581: otg.ActionProtocolBgpNotification.open_message_error:type_name -> otg.DeviceBgpOpenMessageError + 368, // 582: otg.ActionProtocolBgpNotification.update_message_error:type_name -> otg.DeviceBgpUpdateMessageError + 369, // 583: otg.ActionProtocolBgpNotification.hold_timer_expired:type_name -> otg.DeviceBgpHoldTimerExpired + 370, // 584: otg.ActionProtocolBgpNotification.finite_state_machine_error:type_name -> otg.DeviceBgpFiniteStateMachineError + 372, // 585: otg.ActionProtocolBgpNotification.custom:type_name -> otg.DeviceBgpCustomError + 111, // 586: otg.Ping.choice:type_name -> otg.Ping.Choice.Enum + 551, // 587: otg.Ping.ipv4:type_name -> otg.PingIpv4 + 552, // 588: otg.Ping.ipv6:type_name -> otg.PingIpv6 + 550, // 589: otg.PingRequest.endpoints:type_name -> otg.Ping + 555, // 590: otg.PingResponse.responses:type_name -> otg.Response + 112, // 591: otg.Response.result:type_name -> otg.Response.Result.Enum + 113, // 592: otg.MetricsRequest.choice:type_name -> otg.MetricsRequest.Choice.Enum + 558, // 593: otg.MetricsRequest.port:type_name -> otg.PortMetricsRequest + 560, // 594: otg.MetricsRequest.flow:type_name -> otg.FlowMetricsRequest + 569, // 595: otg.MetricsRequest.bgpv4:type_name -> otg.Bgpv4MetricsRequest + 571, // 596: otg.MetricsRequest.bgpv6:type_name -> otg.Bgpv6MetricsRequest + 573, // 597: otg.MetricsRequest.isis:type_name -> otg.IsisMetricsRequest + 575, // 598: otg.MetricsRequest.lag:type_name -> otg.LagMetricsRequest + 577, // 599: otg.MetricsRequest.lacp:type_name -> otg.LacpMetricsRequest + 579, // 600: otg.MetricsRequest.lldp:type_name -> otg.LldpMetricsRequest + 581, // 601: otg.MetricsRequest.rsvp:type_name -> otg.RsvpMetricsRequest + 114, // 602: otg.MetricsResponse.choice:type_name -> otg.MetricsResponse.Choice.Enum + 559, // 603: otg.MetricsResponse.port_metrics:type_name -> otg.PortMetric + 563, // 604: otg.MetricsResponse.flow_metrics:type_name -> otg.FlowMetric + 570, // 605: otg.MetricsResponse.bgpv4_metrics:type_name -> otg.Bgpv4Metric + 572, // 606: otg.MetricsResponse.bgpv6_metrics:type_name -> otg.Bgpv6Metric + 574, // 607: otg.MetricsResponse.isis_metrics:type_name -> otg.IsisMetric + 576, // 608: otg.MetricsResponse.lag_metrics:type_name -> otg.LagMetric + 578, // 609: otg.MetricsResponse.lacp_metrics:type_name -> otg.LacpMetric + 580, // 610: otg.MetricsResponse.lldp_metrics:type_name -> otg.LldpMetric + 582, // 611: otg.MetricsResponse.rsvp_metrics:type_name -> otg.RsvpMetric + 115, // 612: otg.PortMetricsRequest.column_names:type_name -> otg.PortMetricsRequest.ColumnNames.Enum + 116, // 613: otg.PortMetric.link:type_name -> otg.PortMetric.Link.Enum + 117, // 614: otg.PortMetric.capture:type_name -> otg.PortMetric.Capture.Enum + 118, // 615: otg.PortMetric.transmit:type_name -> otg.PortMetric.Transmit.Enum + 119, // 616: otg.FlowMetricsRequest.metric_names:type_name -> otg.FlowMetricsRequest.MetricNames.Enum + 561, // 617: otg.FlowMetricsRequest.tagged_metrics:type_name -> otg.FlowTaggedMetricsFilter + 120, // 618: otg.FlowTaggedMetricsFilter.metric_names:type_name -> otg.FlowTaggedMetricsFilter.MetricNames.Enum + 562, // 619: otg.FlowTaggedMetricsFilter.filters:type_name -> otg.FlowMetricTagFilter + 121, // 620: otg.FlowMetric.transmit:type_name -> otg.FlowMetric.Transmit.Enum + 567, // 621: otg.FlowMetric.timestamps:type_name -> otg.MetricTimestamp + 568, // 622: otg.FlowMetric.latency:type_name -> otg.MetricLatency + 564, // 623: otg.FlowMetric.tagged_metrics:type_name -> otg.FlowTaggedMetric + 565, // 624: otg.FlowTaggedMetric.tags:type_name -> otg.FlowMetricTag + 567, // 625: otg.FlowTaggedMetric.timestamps:type_name -> otg.MetricTimestamp + 568, // 626: otg.FlowTaggedMetric.latency:type_name -> otg.MetricLatency + 566, // 627: otg.FlowMetricTag.value:type_name -> otg.FlowMetricTagValue + 122, // 628: otg.FlowMetricTagValue.choice:type_name -> otg.FlowMetricTagValue.Choice.Enum + 123, // 629: otg.Bgpv4MetricsRequest.column_names:type_name -> otg.Bgpv4MetricsRequest.ColumnNames.Enum + 124, // 630: otg.Bgpv4Metric.session_state:type_name -> otg.Bgpv4Metric.SessionState.Enum + 125, // 631: otg.Bgpv4Metric.fsm_state:type_name -> otg.Bgpv4Metric.FsmState.Enum + 126, // 632: otg.Bgpv6MetricsRequest.column_names:type_name -> otg.Bgpv6MetricsRequest.ColumnNames.Enum + 127, // 633: otg.Bgpv6Metric.session_state:type_name -> otg.Bgpv6Metric.SessionState.Enum + 128, // 634: otg.Bgpv6Metric.fsm_state:type_name -> otg.Bgpv6Metric.FsmState.Enum + 129, // 635: otg.IsisMetricsRequest.column_names:type_name -> otg.IsisMetricsRequest.ColumnNames.Enum + 130, // 636: otg.LagMetricsRequest.column_names:type_name -> otg.LagMetricsRequest.ColumnNames.Enum + 131, // 637: otg.LagMetric.oper_status:type_name -> otg.LagMetric.OperStatus.Enum + 132, // 638: otg.LacpMetricsRequest.column_names:type_name -> otg.LacpMetricsRequest.ColumnNames.Enum + 133, // 639: otg.LacpMetric.activity:type_name -> otg.LacpMetric.Activity.Enum + 134, // 640: otg.LacpMetric.timeout:type_name -> otg.LacpMetric.Timeout.Enum + 135, // 641: otg.LacpMetric.synchronization:type_name -> otg.LacpMetric.Synchronization.Enum + 136, // 642: otg.LldpMetricsRequest.column_names:type_name -> otg.LldpMetricsRequest.ColumnNames.Enum + 137, // 643: otg.RsvpMetricsRequest.column_names:type_name -> otg.RsvpMetricsRequest.ColumnNames.Enum + 138, // 644: otg.StatesRequest.choice:type_name -> otg.StatesRequest.Choice.Enum + 585, // 645: otg.StatesRequest.ipv4_neighbors:type_name -> otg.Neighborsv4StatesRequest + 587, // 646: otg.StatesRequest.ipv6_neighbors:type_name -> otg.Neighborsv6StatesRequest + 589, // 647: otg.StatesRequest.bgp_prefixes:type_name -> otg.BgpPrefixStateRequest + 598, // 648: otg.StatesRequest.isis_lsps:type_name -> otg.IsisLspsStateRequest + 615, // 649: otg.StatesRequest.lldp_neighbors:type_name -> otg.LldpNeighborsStateRequest + 619, // 650: otg.StatesRequest.rsvp_lsps:type_name -> otg.RsvpLspsStateRequest + 139, // 651: otg.StatesResponse.choice:type_name -> otg.StatesResponse.Choice.Enum + 586, // 652: otg.StatesResponse.ipv4_neighbors:type_name -> otg.Neighborsv4State + 588, // 653: otg.StatesResponse.ipv6_neighbors:type_name -> otg.Neighborsv6State + 592, // 654: otg.StatesResponse.bgp_prefixes:type_name -> otg.BgpPrefixesState + 599, // 655: otg.StatesResponse.isis_lsps:type_name -> otg.IsisLspsState + 616, // 656: otg.StatesResponse.lldp_neighbors:type_name -> otg.LldpNeighborsState + 620, // 657: otg.StatesResponse.rsvp_lsps:type_name -> otg.RsvpLspsState + 140, // 658: otg.BgpPrefixStateRequest.prefix_filters:type_name -> otg.BgpPrefixStateRequest.PrefixFilters.Enum + 590, // 659: otg.BgpPrefixStateRequest.ipv4_unicast_filters:type_name -> otg.BgpPrefixIpv4UnicastFilter + 591, // 660: otg.BgpPrefixStateRequest.ipv6_unicast_filters:type_name -> otg.BgpPrefixIpv6UnicastFilter + 141, // 661: otg.BgpPrefixIpv4UnicastFilter.origin:type_name -> otg.BgpPrefixIpv4UnicastFilter.Origin.Enum + 142, // 662: otg.BgpPrefixIpv6UnicastFilter.origin:type_name -> otg.BgpPrefixIpv6UnicastFilter.Origin.Enum + 593, // 663: otg.BgpPrefixesState.ipv4_unicast_prefixes:type_name -> otg.BgpPrefixIpv4UnicastState + 594, // 664: otg.BgpPrefixesState.ipv6_unicast_prefixes:type_name -> otg.BgpPrefixIpv6UnicastState + 143, // 665: otg.BgpPrefixIpv4UnicastState.origin:type_name -> otg.BgpPrefixIpv4UnicastState.Origin.Enum + 595, // 666: otg.BgpPrefixIpv4UnicastState.communities:type_name -> otg.ResultBgpCommunity + 596, // 667: otg.BgpPrefixIpv4UnicastState.as_path:type_name -> otg.ResultBgpAsPath + 144, // 668: otg.BgpPrefixIpv6UnicastState.origin:type_name -> otg.BgpPrefixIpv6UnicastState.Origin.Enum + 595, // 669: otg.BgpPrefixIpv6UnicastState.communities:type_name -> otg.ResultBgpCommunity + 596, // 670: otg.BgpPrefixIpv6UnicastState.as_path:type_name -> otg.ResultBgpAsPath + 145, // 671: otg.ResultBgpCommunity.type:type_name -> otg.ResultBgpCommunity.Type.Enum + 597, // 672: otg.ResultBgpAsPath.segments:type_name -> otg.ResultBgpAsPathSegment + 146, // 673: otg.ResultBgpAsPathSegment.type:type_name -> otg.ResultBgpAsPathSegment.Type.Enum + 600, // 674: otg.IsisLspsState.lsps:type_name -> otg.IsisLspState + 147, // 675: otg.IsisLspState.pdu_type:type_name -> otg.IsisLspState.PduType.Enum + 603, // 676: otg.IsisLspState.flags:type_name -> otg.IsisLspFlags + 601, // 677: otg.IsisLspState.tlvs:type_name -> otg.IsisLspTlvs + 602, // 678: otg.IsisLspTlvs.hostname_tlvs:type_name -> otg.IsisLspHostname + 604, // 679: otg.IsisLspTlvs.is_reachability_tlvs:type_name -> otg.IsisLspIsReachabilityTlv + 605, // 680: otg.IsisLspTlvs.extended_is_reachability_tlvs:type_name -> otg.IsisLspExtendedIsReachabilityTlv + 607, // 681: otg.IsisLspTlvs.ipv4_internal_reachability_tlvs:type_name -> otg.IsisLspIpv4InternalReachabilityTlv + 608, // 682: otg.IsisLspTlvs.ipv4_external_reachability_tlvs:type_name -> otg.IsisLspIpv4ExternalReachabilityTlv + 610, // 683: otg.IsisLspTlvs.extended_ipv4_reachability_tlvs:type_name -> otg.IsisLspExtendedIpv4ReachabilityTlv + 612, // 684: otg.IsisLspTlvs.ipv6_reachability_tlvs:type_name -> otg.IsisLspIpv6ReachabilityTlv + 606, // 685: otg.IsisLspIsReachabilityTlv.neighbors:type_name -> otg.IsisLspneighbor + 606, // 686: otg.IsisLspExtendedIsReachabilityTlv.neighbors:type_name -> otg.IsisLspneighbor + 609, // 687: otg.IsisLspIpv4InternalReachabilityTlv.prefixes:type_name -> otg.IsisLspV4Prefix + 609, // 688: otg.IsisLspIpv4ExternalReachabilityTlv.prefixes:type_name -> otg.IsisLspV4Prefix + 148, // 689: otg.IsisLspV4Prefix.redistribution_type:type_name -> otg.IsisLspV4Prefix.RedistributionType.Enum + 149, // 690: otg.IsisLspV4Prefix.origin_type:type_name -> otg.IsisLspV4Prefix.OriginType.Enum + 611, // 691: otg.IsisLspExtendedIpv4ReachabilityTlv.prefixes:type_name -> otg.IsisLspExtendedV4Prefix + 150, // 692: otg.IsisLspExtendedV4Prefix.redistribution_type:type_name -> otg.IsisLspExtendedV4Prefix.RedistributionType.Enum + 614, // 693: otg.IsisLspExtendedV4Prefix.prefix_attributes:type_name -> otg.IsisLspPrefixAttributes + 613, // 694: otg.IsisLspIpv6ReachabilityTlv.prefixes:type_name -> otg.IsisLspV6Prefix + 151, // 695: otg.IsisLspV6Prefix.redistribution_type:type_name -> otg.IsisLspV6Prefix.RedistributionType.Enum + 152, // 696: otg.IsisLspV6Prefix.origin_type:type_name -> otg.IsisLspV6Prefix.OriginType.Enum + 614, // 697: otg.IsisLspV6Prefix.prefix_attributes:type_name -> otg.IsisLspPrefixAttributes + 153, // 698: otg.LldpNeighborsState.chassis_id_type:type_name -> otg.LldpNeighborsState.ChassisIdType.Enum + 154, // 699: otg.LldpNeighborsState.port_id_type:type_name -> otg.LldpNeighborsState.PortIdType.Enum + 617, // 700: otg.LldpNeighborsState.custom_tlvs:type_name -> otg.LldpCustomTLVState + 618, // 701: otg.LldpNeighborsState.capabilities:type_name -> otg.LldpCapabilityState + 155, // 702: otg.LldpCapabilityState.capability_name:type_name -> otg.LldpCapabilityState.CapabilityName.Enum + 621, // 703: otg.RsvpLspsState.ipv4_lsps:type_name -> otg.RsvpIPv4LspState + 622, // 704: otg.RsvpIPv4LspState.lsp:type_name -> otg.RsvpLspState + 623, // 705: otg.RsvpIPv4LspState.rros:type_name -> otg.RsvpLspIpv4Rro + 624, // 706: otg.RsvpIPv4LspState.eros:type_name -> otg.RsvpLspIpv4Ero + 156, // 707: otg.RsvpLspState.session_status:type_name -> otg.RsvpLspState.SessionStatus.Enum + 157, // 708: otg.RsvpLspState.last_flap_reason:type_name -> otg.RsvpLspState.LastFlapReason.Enum + 158, // 709: otg.RsvpLspIpv4Ero.type:type_name -> otg.RsvpLspIpv4Ero.Type.Enum + 159, // 710: otg.PatternFlowEthernetDst.choice:type_name -> otg.PatternFlowEthernetDst.Choice.Enum + 626, // 711: otg.PatternFlowEthernetDst.metric_tags:type_name -> otg.PatternFlowEthernetDstMetricTag + 627, // 712: otg.PatternFlowEthernetDst.increment:type_name -> otg.PatternFlowEthernetDstCounter + 627, // 713: otg.PatternFlowEthernetDst.decrement:type_name -> otg.PatternFlowEthernetDstCounter + 160, // 714: otg.PatternFlowEthernetSrc.choice:type_name -> otg.PatternFlowEthernetSrc.Choice.Enum + 629, // 715: otg.PatternFlowEthernetSrc.metric_tags:type_name -> otg.PatternFlowEthernetSrcMetricTag + 630, // 716: otg.PatternFlowEthernetSrc.increment:type_name -> otg.PatternFlowEthernetSrcCounter + 630, // 717: otg.PatternFlowEthernetSrc.decrement:type_name -> otg.PatternFlowEthernetSrcCounter + 161, // 718: otg.PatternFlowEthernetEtherType.choice:type_name -> otg.PatternFlowEthernetEtherType.Choice.Enum + 632, // 719: otg.PatternFlowEthernetEtherType.metric_tags:type_name -> otg.PatternFlowEthernetEtherTypeMetricTag + 633, // 720: otg.PatternFlowEthernetEtherType.increment:type_name -> otg.PatternFlowEthernetEtherTypeCounter + 633, // 721: otg.PatternFlowEthernetEtherType.decrement:type_name -> otg.PatternFlowEthernetEtherTypeCounter + 162, // 722: otg.PatternFlowEthernetPfcQueue.choice:type_name -> otg.PatternFlowEthernetPfcQueue.Choice.Enum + 635, // 723: otg.PatternFlowEthernetPfcQueue.metric_tags:type_name -> otg.PatternFlowEthernetPfcQueueMetricTag + 636, // 724: otg.PatternFlowEthernetPfcQueue.increment:type_name -> otg.PatternFlowEthernetPfcQueueCounter + 636, // 725: otg.PatternFlowEthernetPfcQueue.decrement:type_name -> otg.PatternFlowEthernetPfcQueueCounter + 163, // 726: otg.PatternFlowVlanPriority.choice:type_name -> otg.PatternFlowVlanPriority.Choice.Enum + 638, // 727: otg.PatternFlowVlanPriority.metric_tags:type_name -> otg.PatternFlowVlanPriorityMetricTag + 639, // 728: otg.PatternFlowVlanPriority.increment:type_name -> otg.PatternFlowVlanPriorityCounter + 639, // 729: otg.PatternFlowVlanPriority.decrement:type_name -> otg.PatternFlowVlanPriorityCounter + 164, // 730: otg.PatternFlowVlanCfi.choice:type_name -> otg.PatternFlowVlanCfi.Choice.Enum + 641, // 731: otg.PatternFlowVlanCfi.metric_tags:type_name -> otg.PatternFlowVlanCfiMetricTag + 642, // 732: otg.PatternFlowVlanCfi.increment:type_name -> otg.PatternFlowVlanCfiCounter + 642, // 733: otg.PatternFlowVlanCfi.decrement:type_name -> otg.PatternFlowVlanCfiCounter + 165, // 734: otg.PatternFlowVlanId.choice:type_name -> otg.PatternFlowVlanId.Choice.Enum + 644, // 735: otg.PatternFlowVlanId.metric_tags:type_name -> otg.PatternFlowVlanIdMetricTag + 645, // 736: otg.PatternFlowVlanId.increment:type_name -> otg.PatternFlowVlanIdCounter + 645, // 737: otg.PatternFlowVlanId.decrement:type_name -> otg.PatternFlowVlanIdCounter + 166, // 738: otg.PatternFlowVlanTpid.choice:type_name -> otg.PatternFlowVlanTpid.Choice.Enum + 647, // 739: otg.PatternFlowVlanTpid.metric_tags:type_name -> otg.PatternFlowVlanTpidMetricTag + 648, // 740: otg.PatternFlowVlanTpid.increment:type_name -> otg.PatternFlowVlanTpidCounter + 648, // 741: otg.PatternFlowVlanTpid.decrement:type_name -> otg.PatternFlowVlanTpidCounter + 167, // 742: otg.PatternFlowVxlanFlags.choice:type_name -> otg.PatternFlowVxlanFlags.Choice.Enum + 650, // 743: otg.PatternFlowVxlanFlags.metric_tags:type_name -> otg.PatternFlowVxlanFlagsMetricTag + 651, // 744: otg.PatternFlowVxlanFlags.increment:type_name -> otg.PatternFlowVxlanFlagsCounter + 651, // 745: otg.PatternFlowVxlanFlags.decrement:type_name -> otg.PatternFlowVxlanFlagsCounter + 168, // 746: otg.PatternFlowVxlanReserved0.choice:type_name -> otg.PatternFlowVxlanReserved0.Choice.Enum + 653, // 747: otg.PatternFlowVxlanReserved0.metric_tags:type_name -> otg.PatternFlowVxlanReserved0MetricTag + 654, // 748: otg.PatternFlowVxlanReserved0.increment:type_name -> otg.PatternFlowVxlanReserved0Counter + 654, // 749: otg.PatternFlowVxlanReserved0.decrement:type_name -> otg.PatternFlowVxlanReserved0Counter + 169, // 750: otg.PatternFlowVxlanVni.choice:type_name -> otg.PatternFlowVxlanVni.Choice.Enum + 656, // 751: otg.PatternFlowVxlanVni.metric_tags:type_name -> otg.PatternFlowVxlanVniMetricTag + 657, // 752: otg.PatternFlowVxlanVni.increment:type_name -> otg.PatternFlowVxlanVniCounter + 657, // 753: otg.PatternFlowVxlanVni.decrement:type_name -> otg.PatternFlowVxlanVniCounter + 170, // 754: otg.PatternFlowVxlanReserved1.choice:type_name -> otg.PatternFlowVxlanReserved1.Choice.Enum + 659, // 755: otg.PatternFlowVxlanReserved1.metric_tags:type_name -> otg.PatternFlowVxlanReserved1MetricTag + 660, // 756: otg.PatternFlowVxlanReserved1.increment:type_name -> otg.PatternFlowVxlanReserved1Counter + 660, // 757: otg.PatternFlowVxlanReserved1.decrement:type_name -> otg.PatternFlowVxlanReserved1Counter + 171, // 758: otg.PatternFlowIpv4Version.choice:type_name -> otg.PatternFlowIpv4Version.Choice.Enum + 662, // 759: otg.PatternFlowIpv4Version.metric_tags:type_name -> otg.PatternFlowIpv4VersionMetricTag + 663, // 760: otg.PatternFlowIpv4Version.increment:type_name -> otg.PatternFlowIpv4VersionCounter + 663, // 761: otg.PatternFlowIpv4Version.decrement:type_name -> otg.PatternFlowIpv4VersionCounter + 172, // 762: otg.PatternFlowIpv4HeaderLength.choice:type_name -> otg.PatternFlowIpv4HeaderLength.Choice.Enum + 665, // 763: otg.PatternFlowIpv4HeaderLength.metric_tags:type_name -> otg.PatternFlowIpv4HeaderLengthMetricTag + 666, // 764: otg.PatternFlowIpv4HeaderLength.increment:type_name -> otg.PatternFlowIpv4HeaderLengthCounter + 666, // 765: otg.PatternFlowIpv4HeaderLength.decrement:type_name -> otg.PatternFlowIpv4HeaderLengthCounter + 173, // 766: otg.PatternFlowIpv4TotalLength.choice:type_name -> otg.PatternFlowIpv4TotalLength.Choice.Enum + 668, // 767: otg.PatternFlowIpv4TotalLength.metric_tags:type_name -> otg.PatternFlowIpv4TotalLengthMetricTag + 669, // 768: otg.PatternFlowIpv4TotalLength.increment:type_name -> otg.PatternFlowIpv4TotalLengthCounter + 669, // 769: otg.PatternFlowIpv4TotalLength.decrement:type_name -> otg.PatternFlowIpv4TotalLengthCounter + 174, // 770: otg.PatternFlowIpv4Identification.choice:type_name -> otg.PatternFlowIpv4Identification.Choice.Enum + 671, // 771: otg.PatternFlowIpv4Identification.metric_tags:type_name -> otg.PatternFlowIpv4IdentificationMetricTag + 672, // 772: otg.PatternFlowIpv4Identification.increment:type_name -> otg.PatternFlowIpv4IdentificationCounter + 672, // 773: otg.PatternFlowIpv4Identification.decrement:type_name -> otg.PatternFlowIpv4IdentificationCounter + 175, // 774: otg.PatternFlowIpv4Reserved.choice:type_name -> otg.PatternFlowIpv4Reserved.Choice.Enum + 674, // 775: otg.PatternFlowIpv4Reserved.metric_tags:type_name -> otg.PatternFlowIpv4ReservedMetricTag + 675, // 776: otg.PatternFlowIpv4Reserved.increment:type_name -> otg.PatternFlowIpv4ReservedCounter + 675, // 777: otg.PatternFlowIpv4Reserved.decrement:type_name -> otg.PatternFlowIpv4ReservedCounter + 176, // 778: otg.PatternFlowIpv4DontFragment.choice:type_name -> otg.PatternFlowIpv4DontFragment.Choice.Enum + 677, // 779: otg.PatternFlowIpv4DontFragment.metric_tags:type_name -> otg.PatternFlowIpv4DontFragmentMetricTag + 678, // 780: otg.PatternFlowIpv4DontFragment.increment:type_name -> otg.PatternFlowIpv4DontFragmentCounter + 678, // 781: otg.PatternFlowIpv4DontFragment.decrement:type_name -> otg.PatternFlowIpv4DontFragmentCounter + 177, // 782: otg.PatternFlowIpv4MoreFragments.choice:type_name -> otg.PatternFlowIpv4MoreFragments.Choice.Enum + 680, // 783: otg.PatternFlowIpv4MoreFragments.metric_tags:type_name -> otg.PatternFlowIpv4MoreFragmentsMetricTag + 681, // 784: otg.PatternFlowIpv4MoreFragments.increment:type_name -> otg.PatternFlowIpv4MoreFragmentsCounter + 681, // 785: otg.PatternFlowIpv4MoreFragments.decrement:type_name -> otg.PatternFlowIpv4MoreFragmentsCounter + 178, // 786: otg.PatternFlowIpv4FragmentOffset.choice:type_name -> otg.PatternFlowIpv4FragmentOffset.Choice.Enum + 683, // 787: otg.PatternFlowIpv4FragmentOffset.metric_tags:type_name -> otg.PatternFlowIpv4FragmentOffsetMetricTag + 684, // 788: otg.PatternFlowIpv4FragmentOffset.increment:type_name -> otg.PatternFlowIpv4FragmentOffsetCounter + 684, // 789: otg.PatternFlowIpv4FragmentOffset.decrement:type_name -> otg.PatternFlowIpv4FragmentOffsetCounter + 179, // 790: otg.PatternFlowIpv4TimeToLive.choice:type_name -> otg.PatternFlowIpv4TimeToLive.Choice.Enum + 686, // 791: otg.PatternFlowIpv4TimeToLive.metric_tags:type_name -> otg.PatternFlowIpv4TimeToLiveMetricTag + 687, // 792: otg.PatternFlowIpv4TimeToLive.increment:type_name -> otg.PatternFlowIpv4TimeToLiveCounter + 687, // 793: otg.PatternFlowIpv4TimeToLive.decrement:type_name -> otg.PatternFlowIpv4TimeToLiveCounter + 180, // 794: otg.PatternFlowIpv4Protocol.choice:type_name -> otg.PatternFlowIpv4Protocol.Choice.Enum + 689, // 795: otg.PatternFlowIpv4Protocol.metric_tags:type_name -> otg.PatternFlowIpv4ProtocolMetricTag + 690, // 796: otg.PatternFlowIpv4Protocol.increment:type_name -> otg.PatternFlowIpv4ProtocolCounter + 690, // 797: otg.PatternFlowIpv4Protocol.decrement:type_name -> otg.PatternFlowIpv4ProtocolCounter + 181, // 798: otg.PatternFlowIpv4HeaderChecksum.choice:type_name -> otg.PatternFlowIpv4HeaderChecksum.Choice.Enum + 182, // 799: otg.PatternFlowIpv4HeaderChecksum.generated:type_name -> otg.PatternFlowIpv4HeaderChecksum.Generated.Enum + 183, // 800: otg.PatternFlowIpv4Src.choice:type_name -> otg.PatternFlowIpv4Src.Choice.Enum + 693, // 801: otg.PatternFlowIpv4Src.metric_tags:type_name -> otg.PatternFlowIpv4SrcMetricTag + 694, // 802: otg.PatternFlowIpv4Src.increment:type_name -> otg.PatternFlowIpv4SrcCounter + 694, // 803: otg.PatternFlowIpv4Src.decrement:type_name -> otg.PatternFlowIpv4SrcCounter + 184, // 804: otg.PatternFlowIpv4Dst.choice:type_name -> otg.PatternFlowIpv4Dst.Choice.Enum + 696, // 805: otg.PatternFlowIpv4Dst.metric_tags:type_name -> otg.PatternFlowIpv4DstMetricTag + 697, // 806: otg.PatternFlowIpv4Dst.increment:type_name -> otg.PatternFlowIpv4DstCounter + 697, // 807: otg.PatternFlowIpv4Dst.decrement:type_name -> otg.PatternFlowIpv4DstCounter + 185, // 808: otg.PatternFlowIpv4PriorityRaw.choice:type_name -> otg.PatternFlowIpv4PriorityRaw.Choice.Enum + 699, // 809: otg.PatternFlowIpv4PriorityRaw.metric_tags:type_name -> otg.PatternFlowIpv4PriorityRawMetricTag + 700, // 810: otg.PatternFlowIpv4PriorityRaw.increment:type_name -> otg.PatternFlowIpv4PriorityRawCounter + 700, // 811: otg.PatternFlowIpv4PriorityRaw.decrement:type_name -> otg.PatternFlowIpv4PriorityRawCounter + 186, // 812: otg.PatternFlowIpv4DscpPhb.choice:type_name -> otg.PatternFlowIpv4DscpPhb.Choice.Enum + 702, // 813: otg.PatternFlowIpv4DscpPhb.metric_tags:type_name -> otg.PatternFlowIpv4DscpPhbMetricTag + 703, // 814: otg.PatternFlowIpv4DscpPhb.increment:type_name -> otg.PatternFlowIpv4DscpPhbCounter + 703, // 815: otg.PatternFlowIpv4DscpPhb.decrement:type_name -> otg.PatternFlowIpv4DscpPhbCounter + 187, // 816: otg.PatternFlowIpv4DscpEcn.choice:type_name -> otg.PatternFlowIpv4DscpEcn.Choice.Enum + 705, // 817: otg.PatternFlowIpv4DscpEcn.metric_tags:type_name -> otg.PatternFlowIpv4DscpEcnMetricTag + 706, // 818: otg.PatternFlowIpv4DscpEcn.increment:type_name -> otg.PatternFlowIpv4DscpEcnCounter + 706, // 819: otg.PatternFlowIpv4DscpEcn.decrement:type_name -> otg.PatternFlowIpv4DscpEcnCounter + 188, // 820: otg.PatternFlowIpv4TosPrecedence.choice:type_name -> otg.PatternFlowIpv4TosPrecedence.Choice.Enum + 708, // 821: otg.PatternFlowIpv4TosPrecedence.metric_tags:type_name -> otg.PatternFlowIpv4TosPrecedenceMetricTag + 709, // 822: otg.PatternFlowIpv4TosPrecedence.increment:type_name -> otg.PatternFlowIpv4TosPrecedenceCounter + 709, // 823: otg.PatternFlowIpv4TosPrecedence.decrement:type_name -> otg.PatternFlowIpv4TosPrecedenceCounter + 189, // 824: otg.PatternFlowIpv4TosDelay.choice:type_name -> otg.PatternFlowIpv4TosDelay.Choice.Enum + 711, // 825: otg.PatternFlowIpv4TosDelay.metric_tags:type_name -> otg.PatternFlowIpv4TosDelayMetricTag + 712, // 826: otg.PatternFlowIpv4TosDelay.increment:type_name -> otg.PatternFlowIpv4TosDelayCounter + 712, // 827: otg.PatternFlowIpv4TosDelay.decrement:type_name -> otg.PatternFlowIpv4TosDelayCounter + 190, // 828: otg.PatternFlowIpv4TosThroughput.choice:type_name -> otg.PatternFlowIpv4TosThroughput.Choice.Enum + 714, // 829: otg.PatternFlowIpv4TosThroughput.metric_tags:type_name -> otg.PatternFlowIpv4TosThroughputMetricTag + 715, // 830: otg.PatternFlowIpv4TosThroughput.increment:type_name -> otg.PatternFlowIpv4TosThroughputCounter + 715, // 831: otg.PatternFlowIpv4TosThroughput.decrement:type_name -> otg.PatternFlowIpv4TosThroughputCounter + 191, // 832: otg.PatternFlowIpv4TosReliability.choice:type_name -> otg.PatternFlowIpv4TosReliability.Choice.Enum + 717, // 833: otg.PatternFlowIpv4TosReliability.metric_tags:type_name -> otg.PatternFlowIpv4TosReliabilityMetricTag + 718, // 834: otg.PatternFlowIpv4TosReliability.increment:type_name -> otg.PatternFlowIpv4TosReliabilityCounter + 718, // 835: otg.PatternFlowIpv4TosReliability.decrement:type_name -> otg.PatternFlowIpv4TosReliabilityCounter + 192, // 836: otg.PatternFlowIpv4TosMonetary.choice:type_name -> otg.PatternFlowIpv4TosMonetary.Choice.Enum + 720, // 837: otg.PatternFlowIpv4TosMonetary.metric_tags:type_name -> otg.PatternFlowIpv4TosMonetaryMetricTag + 721, // 838: otg.PatternFlowIpv4TosMonetary.increment:type_name -> otg.PatternFlowIpv4TosMonetaryCounter + 721, // 839: otg.PatternFlowIpv4TosMonetary.decrement:type_name -> otg.PatternFlowIpv4TosMonetaryCounter + 193, // 840: otg.PatternFlowIpv4TosUnused.choice:type_name -> otg.PatternFlowIpv4TosUnused.Choice.Enum + 723, // 841: otg.PatternFlowIpv4TosUnused.metric_tags:type_name -> otg.PatternFlowIpv4TosUnusedMetricTag + 724, // 842: otg.PatternFlowIpv4TosUnused.increment:type_name -> otg.PatternFlowIpv4TosUnusedCounter + 724, // 843: otg.PatternFlowIpv4TosUnused.decrement:type_name -> otg.PatternFlowIpv4TosUnusedCounter + 194, // 844: otg.PatternFlowIpv6Version.choice:type_name -> otg.PatternFlowIpv6Version.Choice.Enum + 726, // 845: otg.PatternFlowIpv6Version.metric_tags:type_name -> otg.PatternFlowIpv6VersionMetricTag + 727, // 846: otg.PatternFlowIpv6Version.increment:type_name -> otg.PatternFlowIpv6VersionCounter + 727, // 847: otg.PatternFlowIpv6Version.decrement:type_name -> otg.PatternFlowIpv6VersionCounter + 195, // 848: otg.PatternFlowIpv6TrafficClass.choice:type_name -> otg.PatternFlowIpv6TrafficClass.Choice.Enum + 729, // 849: otg.PatternFlowIpv6TrafficClass.metric_tags:type_name -> otg.PatternFlowIpv6TrafficClassMetricTag + 730, // 850: otg.PatternFlowIpv6TrafficClass.increment:type_name -> otg.PatternFlowIpv6TrafficClassCounter + 730, // 851: otg.PatternFlowIpv6TrafficClass.decrement:type_name -> otg.PatternFlowIpv6TrafficClassCounter + 196, // 852: otg.PatternFlowIpv6FlowLabel.choice:type_name -> otg.PatternFlowIpv6FlowLabel.Choice.Enum + 732, // 853: otg.PatternFlowIpv6FlowLabel.metric_tags:type_name -> otg.PatternFlowIpv6FlowLabelMetricTag + 733, // 854: otg.PatternFlowIpv6FlowLabel.increment:type_name -> otg.PatternFlowIpv6FlowLabelCounter + 733, // 855: otg.PatternFlowIpv6FlowLabel.decrement:type_name -> otg.PatternFlowIpv6FlowLabelCounter + 197, // 856: otg.PatternFlowIpv6PayloadLength.choice:type_name -> otg.PatternFlowIpv6PayloadLength.Choice.Enum + 735, // 857: otg.PatternFlowIpv6PayloadLength.metric_tags:type_name -> otg.PatternFlowIpv6PayloadLengthMetricTag + 736, // 858: otg.PatternFlowIpv6PayloadLength.increment:type_name -> otg.PatternFlowIpv6PayloadLengthCounter + 736, // 859: otg.PatternFlowIpv6PayloadLength.decrement:type_name -> otg.PatternFlowIpv6PayloadLengthCounter + 198, // 860: otg.PatternFlowIpv6NextHeader.choice:type_name -> otg.PatternFlowIpv6NextHeader.Choice.Enum + 738, // 861: otg.PatternFlowIpv6NextHeader.metric_tags:type_name -> otg.PatternFlowIpv6NextHeaderMetricTag + 739, // 862: otg.PatternFlowIpv6NextHeader.increment:type_name -> otg.PatternFlowIpv6NextHeaderCounter + 739, // 863: otg.PatternFlowIpv6NextHeader.decrement:type_name -> otg.PatternFlowIpv6NextHeaderCounter + 199, // 864: otg.PatternFlowIpv6HopLimit.choice:type_name -> otg.PatternFlowIpv6HopLimit.Choice.Enum + 741, // 865: otg.PatternFlowIpv6HopLimit.metric_tags:type_name -> otg.PatternFlowIpv6HopLimitMetricTag + 742, // 866: otg.PatternFlowIpv6HopLimit.increment:type_name -> otg.PatternFlowIpv6HopLimitCounter + 742, // 867: otg.PatternFlowIpv6HopLimit.decrement:type_name -> otg.PatternFlowIpv6HopLimitCounter + 200, // 868: otg.PatternFlowIpv6Src.choice:type_name -> otg.PatternFlowIpv6Src.Choice.Enum + 744, // 869: otg.PatternFlowIpv6Src.metric_tags:type_name -> otg.PatternFlowIpv6SrcMetricTag + 745, // 870: otg.PatternFlowIpv6Src.increment:type_name -> otg.PatternFlowIpv6SrcCounter + 745, // 871: otg.PatternFlowIpv6Src.decrement:type_name -> otg.PatternFlowIpv6SrcCounter + 201, // 872: otg.PatternFlowIpv6Dst.choice:type_name -> otg.PatternFlowIpv6Dst.Choice.Enum + 747, // 873: otg.PatternFlowIpv6Dst.metric_tags:type_name -> otg.PatternFlowIpv6DstMetricTag + 748, // 874: otg.PatternFlowIpv6Dst.increment:type_name -> otg.PatternFlowIpv6DstCounter + 748, // 875: otg.PatternFlowIpv6Dst.decrement:type_name -> otg.PatternFlowIpv6DstCounter + 202, // 876: otg.PatternFlowPfcPauseDst.choice:type_name -> otg.PatternFlowPfcPauseDst.Choice.Enum + 750, // 877: otg.PatternFlowPfcPauseDst.metric_tags:type_name -> otg.PatternFlowPfcPauseDstMetricTag + 751, // 878: otg.PatternFlowPfcPauseDst.increment:type_name -> otg.PatternFlowPfcPauseDstCounter + 751, // 879: otg.PatternFlowPfcPauseDst.decrement:type_name -> otg.PatternFlowPfcPauseDstCounter + 203, // 880: otg.PatternFlowPfcPauseSrc.choice:type_name -> otg.PatternFlowPfcPauseSrc.Choice.Enum + 753, // 881: otg.PatternFlowPfcPauseSrc.metric_tags:type_name -> otg.PatternFlowPfcPauseSrcMetricTag + 754, // 882: otg.PatternFlowPfcPauseSrc.increment:type_name -> otg.PatternFlowPfcPauseSrcCounter + 754, // 883: otg.PatternFlowPfcPauseSrc.decrement:type_name -> otg.PatternFlowPfcPauseSrcCounter + 204, // 884: otg.PatternFlowPfcPauseEtherType.choice:type_name -> otg.PatternFlowPfcPauseEtherType.Choice.Enum + 756, // 885: otg.PatternFlowPfcPauseEtherType.metric_tags:type_name -> otg.PatternFlowPfcPauseEtherTypeMetricTag + 757, // 886: otg.PatternFlowPfcPauseEtherType.increment:type_name -> otg.PatternFlowPfcPauseEtherTypeCounter + 757, // 887: otg.PatternFlowPfcPauseEtherType.decrement:type_name -> otg.PatternFlowPfcPauseEtherTypeCounter + 205, // 888: otg.PatternFlowPfcPauseControlOpCode.choice:type_name -> otg.PatternFlowPfcPauseControlOpCode.Choice.Enum + 759, // 889: otg.PatternFlowPfcPauseControlOpCode.metric_tags:type_name -> otg.PatternFlowPfcPauseControlOpCodeMetricTag + 760, // 890: otg.PatternFlowPfcPauseControlOpCode.increment:type_name -> otg.PatternFlowPfcPauseControlOpCodeCounter + 760, // 891: otg.PatternFlowPfcPauseControlOpCode.decrement:type_name -> otg.PatternFlowPfcPauseControlOpCodeCounter + 206, // 892: otg.PatternFlowPfcPauseClassEnableVector.choice:type_name -> otg.PatternFlowPfcPauseClassEnableVector.Choice.Enum + 762, // 893: otg.PatternFlowPfcPauseClassEnableVector.metric_tags:type_name -> otg.PatternFlowPfcPauseClassEnableVectorMetricTag + 763, // 894: otg.PatternFlowPfcPauseClassEnableVector.increment:type_name -> otg.PatternFlowPfcPauseClassEnableVectorCounter + 763, // 895: otg.PatternFlowPfcPauseClassEnableVector.decrement:type_name -> otg.PatternFlowPfcPauseClassEnableVectorCounter + 207, // 896: otg.PatternFlowPfcPausePauseClass0.choice:type_name -> otg.PatternFlowPfcPausePauseClass0.Choice.Enum + 765, // 897: otg.PatternFlowPfcPausePauseClass0.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass0MetricTag + 766, // 898: otg.PatternFlowPfcPausePauseClass0.increment:type_name -> otg.PatternFlowPfcPausePauseClass0Counter + 766, // 899: otg.PatternFlowPfcPausePauseClass0.decrement:type_name -> otg.PatternFlowPfcPausePauseClass0Counter + 208, // 900: otg.PatternFlowPfcPausePauseClass1.choice:type_name -> otg.PatternFlowPfcPausePauseClass1.Choice.Enum + 768, // 901: otg.PatternFlowPfcPausePauseClass1.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass1MetricTag + 769, // 902: otg.PatternFlowPfcPausePauseClass1.increment:type_name -> otg.PatternFlowPfcPausePauseClass1Counter + 769, // 903: otg.PatternFlowPfcPausePauseClass1.decrement:type_name -> otg.PatternFlowPfcPausePauseClass1Counter + 209, // 904: otg.PatternFlowPfcPausePauseClass2.choice:type_name -> otg.PatternFlowPfcPausePauseClass2.Choice.Enum + 771, // 905: otg.PatternFlowPfcPausePauseClass2.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass2MetricTag + 772, // 906: otg.PatternFlowPfcPausePauseClass2.increment:type_name -> otg.PatternFlowPfcPausePauseClass2Counter + 772, // 907: otg.PatternFlowPfcPausePauseClass2.decrement:type_name -> otg.PatternFlowPfcPausePauseClass2Counter + 210, // 908: otg.PatternFlowPfcPausePauseClass3.choice:type_name -> otg.PatternFlowPfcPausePauseClass3.Choice.Enum + 774, // 909: otg.PatternFlowPfcPausePauseClass3.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass3MetricTag + 775, // 910: otg.PatternFlowPfcPausePauseClass3.increment:type_name -> otg.PatternFlowPfcPausePauseClass3Counter + 775, // 911: otg.PatternFlowPfcPausePauseClass3.decrement:type_name -> otg.PatternFlowPfcPausePauseClass3Counter + 211, // 912: otg.PatternFlowPfcPausePauseClass4.choice:type_name -> otg.PatternFlowPfcPausePauseClass4.Choice.Enum + 777, // 913: otg.PatternFlowPfcPausePauseClass4.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass4MetricTag + 778, // 914: otg.PatternFlowPfcPausePauseClass4.increment:type_name -> otg.PatternFlowPfcPausePauseClass4Counter + 778, // 915: otg.PatternFlowPfcPausePauseClass4.decrement:type_name -> otg.PatternFlowPfcPausePauseClass4Counter + 212, // 916: otg.PatternFlowPfcPausePauseClass5.choice:type_name -> otg.PatternFlowPfcPausePauseClass5.Choice.Enum + 780, // 917: otg.PatternFlowPfcPausePauseClass5.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass5MetricTag + 781, // 918: otg.PatternFlowPfcPausePauseClass5.increment:type_name -> otg.PatternFlowPfcPausePauseClass5Counter + 781, // 919: otg.PatternFlowPfcPausePauseClass5.decrement:type_name -> otg.PatternFlowPfcPausePauseClass5Counter + 213, // 920: otg.PatternFlowPfcPausePauseClass6.choice:type_name -> otg.PatternFlowPfcPausePauseClass6.Choice.Enum + 783, // 921: otg.PatternFlowPfcPausePauseClass6.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass6MetricTag + 784, // 922: otg.PatternFlowPfcPausePauseClass6.increment:type_name -> otg.PatternFlowPfcPausePauseClass6Counter + 784, // 923: otg.PatternFlowPfcPausePauseClass6.decrement:type_name -> otg.PatternFlowPfcPausePauseClass6Counter + 214, // 924: otg.PatternFlowPfcPausePauseClass7.choice:type_name -> otg.PatternFlowPfcPausePauseClass7.Choice.Enum + 786, // 925: otg.PatternFlowPfcPausePauseClass7.metric_tags:type_name -> otg.PatternFlowPfcPausePauseClass7MetricTag + 787, // 926: otg.PatternFlowPfcPausePauseClass7.increment:type_name -> otg.PatternFlowPfcPausePauseClass7Counter + 787, // 927: otg.PatternFlowPfcPausePauseClass7.decrement:type_name -> otg.PatternFlowPfcPausePauseClass7Counter + 215, // 928: otg.PatternFlowEthernetPauseDst.choice:type_name -> otg.PatternFlowEthernetPauseDst.Choice.Enum + 789, // 929: otg.PatternFlowEthernetPauseDst.metric_tags:type_name -> otg.PatternFlowEthernetPauseDstMetricTag + 790, // 930: otg.PatternFlowEthernetPauseDst.increment:type_name -> otg.PatternFlowEthernetPauseDstCounter + 790, // 931: otg.PatternFlowEthernetPauseDst.decrement:type_name -> otg.PatternFlowEthernetPauseDstCounter + 216, // 932: otg.PatternFlowEthernetPauseSrc.choice:type_name -> otg.PatternFlowEthernetPauseSrc.Choice.Enum + 792, // 933: otg.PatternFlowEthernetPauseSrc.metric_tags:type_name -> otg.PatternFlowEthernetPauseSrcMetricTag + 793, // 934: otg.PatternFlowEthernetPauseSrc.increment:type_name -> otg.PatternFlowEthernetPauseSrcCounter + 793, // 935: otg.PatternFlowEthernetPauseSrc.decrement:type_name -> otg.PatternFlowEthernetPauseSrcCounter + 217, // 936: otg.PatternFlowEthernetPauseEtherType.choice:type_name -> otg.PatternFlowEthernetPauseEtherType.Choice.Enum + 795, // 937: otg.PatternFlowEthernetPauseEtherType.metric_tags:type_name -> otg.PatternFlowEthernetPauseEtherTypeMetricTag + 796, // 938: otg.PatternFlowEthernetPauseEtherType.increment:type_name -> otg.PatternFlowEthernetPauseEtherTypeCounter + 796, // 939: otg.PatternFlowEthernetPauseEtherType.decrement:type_name -> otg.PatternFlowEthernetPauseEtherTypeCounter + 218, // 940: otg.PatternFlowEthernetPauseControlOpCode.choice:type_name -> otg.PatternFlowEthernetPauseControlOpCode.Choice.Enum + 798, // 941: otg.PatternFlowEthernetPauseControlOpCode.metric_tags:type_name -> otg.PatternFlowEthernetPauseControlOpCodeMetricTag + 799, // 942: otg.PatternFlowEthernetPauseControlOpCode.increment:type_name -> otg.PatternFlowEthernetPauseControlOpCodeCounter + 799, // 943: otg.PatternFlowEthernetPauseControlOpCode.decrement:type_name -> otg.PatternFlowEthernetPauseControlOpCodeCounter + 219, // 944: otg.PatternFlowEthernetPauseTime.choice:type_name -> otg.PatternFlowEthernetPauseTime.Choice.Enum + 801, // 945: otg.PatternFlowEthernetPauseTime.metric_tags:type_name -> otg.PatternFlowEthernetPauseTimeMetricTag + 802, // 946: otg.PatternFlowEthernetPauseTime.increment:type_name -> otg.PatternFlowEthernetPauseTimeCounter + 802, // 947: otg.PatternFlowEthernetPauseTime.decrement:type_name -> otg.PatternFlowEthernetPauseTimeCounter + 220, // 948: otg.PatternFlowTcpSrcPort.choice:type_name -> otg.PatternFlowTcpSrcPort.Choice.Enum + 804, // 949: otg.PatternFlowTcpSrcPort.metric_tags:type_name -> otg.PatternFlowTcpSrcPortMetricTag + 805, // 950: otg.PatternFlowTcpSrcPort.increment:type_name -> otg.PatternFlowTcpSrcPortCounter + 805, // 951: otg.PatternFlowTcpSrcPort.decrement:type_name -> otg.PatternFlowTcpSrcPortCounter + 221, // 952: otg.PatternFlowTcpDstPort.choice:type_name -> otg.PatternFlowTcpDstPort.Choice.Enum + 807, // 953: otg.PatternFlowTcpDstPort.metric_tags:type_name -> otg.PatternFlowTcpDstPortMetricTag + 808, // 954: otg.PatternFlowTcpDstPort.increment:type_name -> otg.PatternFlowTcpDstPortCounter + 808, // 955: otg.PatternFlowTcpDstPort.decrement:type_name -> otg.PatternFlowTcpDstPortCounter + 222, // 956: otg.PatternFlowTcpSeqNum.choice:type_name -> otg.PatternFlowTcpSeqNum.Choice.Enum + 810, // 957: otg.PatternFlowTcpSeqNum.metric_tags:type_name -> otg.PatternFlowTcpSeqNumMetricTag + 811, // 958: otg.PatternFlowTcpSeqNum.increment:type_name -> otg.PatternFlowTcpSeqNumCounter + 811, // 959: otg.PatternFlowTcpSeqNum.decrement:type_name -> otg.PatternFlowTcpSeqNumCounter + 223, // 960: otg.PatternFlowTcpAckNum.choice:type_name -> otg.PatternFlowTcpAckNum.Choice.Enum + 813, // 961: otg.PatternFlowTcpAckNum.metric_tags:type_name -> otg.PatternFlowTcpAckNumMetricTag + 814, // 962: otg.PatternFlowTcpAckNum.increment:type_name -> otg.PatternFlowTcpAckNumCounter + 814, // 963: otg.PatternFlowTcpAckNum.decrement:type_name -> otg.PatternFlowTcpAckNumCounter + 224, // 964: otg.PatternFlowTcpDataOffset.choice:type_name -> otg.PatternFlowTcpDataOffset.Choice.Enum + 816, // 965: otg.PatternFlowTcpDataOffset.metric_tags:type_name -> otg.PatternFlowTcpDataOffsetMetricTag + 817, // 966: otg.PatternFlowTcpDataOffset.increment:type_name -> otg.PatternFlowTcpDataOffsetCounter + 817, // 967: otg.PatternFlowTcpDataOffset.decrement:type_name -> otg.PatternFlowTcpDataOffsetCounter + 225, // 968: otg.PatternFlowTcpEcnNs.choice:type_name -> otg.PatternFlowTcpEcnNs.Choice.Enum + 819, // 969: otg.PatternFlowTcpEcnNs.metric_tags:type_name -> otg.PatternFlowTcpEcnNsMetricTag + 820, // 970: otg.PatternFlowTcpEcnNs.increment:type_name -> otg.PatternFlowTcpEcnNsCounter + 820, // 971: otg.PatternFlowTcpEcnNs.decrement:type_name -> otg.PatternFlowTcpEcnNsCounter + 226, // 972: otg.PatternFlowTcpEcnCwr.choice:type_name -> otg.PatternFlowTcpEcnCwr.Choice.Enum + 822, // 973: otg.PatternFlowTcpEcnCwr.metric_tags:type_name -> otg.PatternFlowTcpEcnCwrMetricTag + 823, // 974: otg.PatternFlowTcpEcnCwr.increment:type_name -> otg.PatternFlowTcpEcnCwrCounter + 823, // 975: otg.PatternFlowTcpEcnCwr.decrement:type_name -> otg.PatternFlowTcpEcnCwrCounter + 227, // 976: otg.PatternFlowTcpEcnEcho.choice:type_name -> otg.PatternFlowTcpEcnEcho.Choice.Enum + 825, // 977: otg.PatternFlowTcpEcnEcho.metric_tags:type_name -> otg.PatternFlowTcpEcnEchoMetricTag + 826, // 978: otg.PatternFlowTcpEcnEcho.increment:type_name -> otg.PatternFlowTcpEcnEchoCounter + 826, // 979: otg.PatternFlowTcpEcnEcho.decrement:type_name -> otg.PatternFlowTcpEcnEchoCounter + 228, // 980: otg.PatternFlowTcpCtlUrg.choice:type_name -> otg.PatternFlowTcpCtlUrg.Choice.Enum + 828, // 981: otg.PatternFlowTcpCtlUrg.metric_tags:type_name -> otg.PatternFlowTcpCtlUrgMetricTag + 829, // 982: otg.PatternFlowTcpCtlUrg.increment:type_name -> otg.PatternFlowTcpCtlUrgCounter + 829, // 983: otg.PatternFlowTcpCtlUrg.decrement:type_name -> otg.PatternFlowTcpCtlUrgCounter + 229, // 984: otg.PatternFlowTcpCtlAck.choice:type_name -> otg.PatternFlowTcpCtlAck.Choice.Enum + 831, // 985: otg.PatternFlowTcpCtlAck.metric_tags:type_name -> otg.PatternFlowTcpCtlAckMetricTag + 832, // 986: otg.PatternFlowTcpCtlAck.increment:type_name -> otg.PatternFlowTcpCtlAckCounter + 832, // 987: otg.PatternFlowTcpCtlAck.decrement:type_name -> otg.PatternFlowTcpCtlAckCounter + 230, // 988: otg.PatternFlowTcpCtlPsh.choice:type_name -> otg.PatternFlowTcpCtlPsh.Choice.Enum + 834, // 989: otg.PatternFlowTcpCtlPsh.metric_tags:type_name -> otg.PatternFlowTcpCtlPshMetricTag + 835, // 990: otg.PatternFlowTcpCtlPsh.increment:type_name -> otg.PatternFlowTcpCtlPshCounter + 835, // 991: otg.PatternFlowTcpCtlPsh.decrement:type_name -> otg.PatternFlowTcpCtlPshCounter + 231, // 992: otg.PatternFlowTcpCtlRst.choice:type_name -> otg.PatternFlowTcpCtlRst.Choice.Enum + 837, // 993: otg.PatternFlowTcpCtlRst.metric_tags:type_name -> otg.PatternFlowTcpCtlRstMetricTag + 838, // 994: otg.PatternFlowTcpCtlRst.increment:type_name -> otg.PatternFlowTcpCtlRstCounter + 838, // 995: otg.PatternFlowTcpCtlRst.decrement:type_name -> otg.PatternFlowTcpCtlRstCounter + 232, // 996: otg.PatternFlowTcpCtlSyn.choice:type_name -> otg.PatternFlowTcpCtlSyn.Choice.Enum + 840, // 997: otg.PatternFlowTcpCtlSyn.metric_tags:type_name -> otg.PatternFlowTcpCtlSynMetricTag + 841, // 998: otg.PatternFlowTcpCtlSyn.increment:type_name -> otg.PatternFlowTcpCtlSynCounter + 841, // 999: otg.PatternFlowTcpCtlSyn.decrement:type_name -> otg.PatternFlowTcpCtlSynCounter + 233, // 1000: otg.PatternFlowTcpCtlFin.choice:type_name -> otg.PatternFlowTcpCtlFin.Choice.Enum + 843, // 1001: otg.PatternFlowTcpCtlFin.metric_tags:type_name -> otg.PatternFlowTcpCtlFinMetricTag + 844, // 1002: otg.PatternFlowTcpCtlFin.increment:type_name -> otg.PatternFlowTcpCtlFinCounter + 844, // 1003: otg.PatternFlowTcpCtlFin.decrement:type_name -> otg.PatternFlowTcpCtlFinCounter + 234, // 1004: otg.PatternFlowTcpWindow.choice:type_name -> otg.PatternFlowTcpWindow.Choice.Enum + 846, // 1005: otg.PatternFlowTcpWindow.metric_tags:type_name -> otg.PatternFlowTcpWindowMetricTag + 847, // 1006: otg.PatternFlowTcpWindow.increment:type_name -> otg.PatternFlowTcpWindowCounter + 847, // 1007: otg.PatternFlowTcpWindow.decrement:type_name -> otg.PatternFlowTcpWindowCounter + 235, // 1008: otg.PatternFlowUdpSrcPort.choice:type_name -> otg.PatternFlowUdpSrcPort.Choice.Enum + 849, // 1009: otg.PatternFlowUdpSrcPort.metric_tags:type_name -> otg.PatternFlowUdpSrcPortMetricTag + 850, // 1010: otg.PatternFlowUdpSrcPort.increment:type_name -> otg.PatternFlowUdpSrcPortCounter + 850, // 1011: otg.PatternFlowUdpSrcPort.decrement:type_name -> otg.PatternFlowUdpSrcPortCounter + 236, // 1012: otg.PatternFlowUdpDstPort.choice:type_name -> otg.PatternFlowUdpDstPort.Choice.Enum + 852, // 1013: otg.PatternFlowUdpDstPort.metric_tags:type_name -> otg.PatternFlowUdpDstPortMetricTag + 853, // 1014: otg.PatternFlowUdpDstPort.increment:type_name -> otg.PatternFlowUdpDstPortCounter + 853, // 1015: otg.PatternFlowUdpDstPort.decrement:type_name -> otg.PatternFlowUdpDstPortCounter + 237, // 1016: otg.PatternFlowUdpLength.choice:type_name -> otg.PatternFlowUdpLength.Choice.Enum + 855, // 1017: otg.PatternFlowUdpLength.metric_tags:type_name -> otg.PatternFlowUdpLengthMetricTag + 856, // 1018: otg.PatternFlowUdpLength.increment:type_name -> otg.PatternFlowUdpLengthCounter + 856, // 1019: otg.PatternFlowUdpLength.decrement:type_name -> otg.PatternFlowUdpLengthCounter + 238, // 1020: otg.PatternFlowUdpChecksum.choice:type_name -> otg.PatternFlowUdpChecksum.Choice.Enum + 239, // 1021: otg.PatternFlowUdpChecksum.generated:type_name -> otg.PatternFlowUdpChecksum.Generated.Enum + 240, // 1022: otg.PatternFlowGreChecksumPresent.choice:type_name -> otg.PatternFlowGreChecksumPresent.Choice.Enum + 859, // 1023: otg.PatternFlowGreChecksumPresent.metric_tags:type_name -> otg.PatternFlowGreChecksumPresentMetricTag + 860, // 1024: otg.PatternFlowGreChecksumPresent.increment:type_name -> otg.PatternFlowGreChecksumPresentCounter + 860, // 1025: otg.PatternFlowGreChecksumPresent.decrement:type_name -> otg.PatternFlowGreChecksumPresentCounter + 241, // 1026: otg.PatternFlowGreReserved0.choice:type_name -> otg.PatternFlowGreReserved0.Choice.Enum + 862, // 1027: otg.PatternFlowGreReserved0.metric_tags:type_name -> otg.PatternFlowGreReserved0MetricTag + 863, // 1028: otg.PatternFlowGreReserved0.increment:type_name -> otg.PatternFlowGreReserved0Counter + 863, // 1029: otg.PatternFlowGreReserved0.decrement:type_name -> otg.PatternFlowGreReserved0Counter + 242, // 1030: otg.PatternFlowGreVersion.choice:type_name -> otg.PatternFlowGreVersion.Choice.Enum + 865, // 1031: otg.PatternFlowGreVersion.metric_tags:type_name -> otg.PatternFlowGreVersionMetricTag + 866, // 1032: otg.PatternFlowGreVersion.increment:type_name -> otg.PatternFlowGreVersionCounter + 866, // 1033: otg.PatternFlowGreVersion.decrement:type_name -> otg.PatternFlowGreVersionCounter + 243, // 1034: otg.PatternFlowGreProtocol.choice:type_name -> otg.PatternFlowGreProtocol.Choice.Enum + 868, // 1035: otg.PatternFlowGreProtocol.metric_tags:type_name -> otg.PatternFlowGreProtocolMetricTag + 869, // 1036: otg.PatternFlowGreProtocol.increment:type_name -> otg.PatternFlowGreProtocolCounter + 869, // 1037: otg.PatternFlowGreProtocol.decrement:type_name -> otg.PatternFlowGreProtocolCounter + 244, // 1038: otg.PatternFlowGreChecksum.choice:type_name -> otg.PatternFlowGreChecksum.Choice.Enum + 245, // 1039: otg.PatternFlowGreChecksum.generated:type_name -> otg.PatternFlowGreChecksum.Generated.Enum + 246, // 1040: otg.PatternFlowGreReserved1.choice:type_name -> otg.PatternFlowGreReserved1.Choice.Enum + 872, // 1041: otg.PatternFlowGreReserved1.metric_tags:type_name -> otg.PatternFlowGreReserved1MetricTag + 873, // 1042: otg.PatternFlowGreReserved1.increment:type_name -> otg.PatternFlowGreReserved1Counter + 873, // 1043: otg.PatternFlowGreReserved1.decrement:type_name -> otg.PatternFlowGreReserved1Counter + 247, // 1044: otg.PatternFlowGtpv1Version.choice:type_name -> otg.PatternFlowGtpv1Version.Choice.Enum + 875, // 1045: otg.PatternFlowGtpv1Version.metric_tags:type_name -> otg.PatternFlowGtpv1VersionMetricTag + 876, // 1046: otg.PatternFlowGtpv1Version.increment:type_name -> otg.PatternFlowGtpv1VersionCounter + 876, // 1047: otg.PatternFlowGtpv1Version.decrement:type_name -> otg.PatternFlowGtpv1VersionCounter + 248, // 1048: otg.PatternFlowGtpv1ProtocolType.choice:type_name -> otg.PatternFlowGtpv1ProtocolType.Choice.Enum + 878, // 1049: otg.PatternFlowGtpv1ProtocolType.metric_tags:type_name -> otg.PatternFlowGtpv1ProtocolTypeMetricTag + 879, // 1050: otg.PatternFlowGtpv1ProtocolType.increment:type_name -> otg.PatternFlowGtpv1ProtocolTypeCounter + 879, // 1051: otg.PatternFlowGtpv1ProtocolType.decrement:type_name -> otg.PatternFlowGtpv1ProtocolTypeCounter + 249, // 1052: otg.PatternFlowGtpv1Reserved.choice:type_name -> otg.PatternFlowGtpv1Reserved.Choice.Enum + 881, // 1053: otg.PatternFlowGtpv1Reserved.metric_tags:type_name -> otg.PatternFlowGtpv1ReservedMetricTag + 882, // 1054: otg.PatternFlowGtpv1Reserved.increment:type_name -> otg.PatternFlowGtpv1ReservedCounter + 882, // 1055: otg.PatternFlowGtpv1Reserved.decrement:type_name -> otg.PatternFlowGtpv1ReservedCounter + 250, // 1056: otg.PatternFlowGtpv1EFlag.choice:type_name -> otg.PatternFlowGtpv1EFlag.Choice.Enum + 884, // 1057: otg.PatternFlowGtpv1EFlag.metric_tags:type_name -> otg.PatternFlowGtpv1EFlagMetricTag + 885, // 1058: otg.PatternFlowGtpv1EFlag.increment:type_name -> otg.PatternFlowGtpv1EFlagCounter + 885, // 1059: otg.PatternFlowGtpv1EFlag.decrement:type_name -> otg.PatternFlowGtpv1EFlagCounter + 251, // 1060: otg.PatternFlowGtpv1SFlag.choice:type_name -> otg.PatternFlowGtpv1SFlag.Choice.Enum + 887, // 1061: otg.PatternFlowGtpv1SFlag.metric_tags:type_name -> otg.PatternFlowGtpv1SFlagMetricTag + 888, // 1062: otg.PatternFlowGtpv1SFlag.increment:type_name -> otg.PatternFlowGtpv1SFlagCounter + 888, // 1063: otg.PatternFlowGtpv1SFlag.decrement:type_name -> otg.PatternFlowGtpv1SFlagCounter + 252, // 1064: otg.PatternFlowGtpv1PnFlag.choice:type_name -> otg.PatternFlowGtpv1PnFlag.Choice.Enum + 890, // 1065: otg.PatternFlowGtpv1PnFlag.metric_tags:type_name -> otg.PatternFlowGtpv1PnFlagMetricTag + 891, // 1066: otg.PatternFlowGtpv1PnFlag.increment:type_name -> otg.PatternFlowGtpv1PnFlagCounter + 891, // 1067: otg.PatternFlowGtpv1PnFlag.decrement:type_name -> otg.PatternFlowGtpv1PnFlagCounter + 253, // 1068: otg.PatternFlowGtpv1MessageType.choice:type_name -> otg.PatternFlowGtpv1MessageType.Choice.Enum + 893, // 1069: otg.PatternFlowGtpv1MessageType.metric_tags:type_name -> otg.PatternFlowGtpv1MessageTypeMetricTag + 894, // 1070: otg.PatternFlowGtpv1MessageType.increment:type_name -> otg.PatternFlowGtpv1MessageTypeCounter + 894, // 1071: otg.PatternFlowGtpv1MessageType.decrement:type_name -> otg.PatternFlowGtpv1MessageTypeCounter + 254, // 1072: otg.PatternFlowGtpv1MessageLength.choice:type_name -> otg.PatternFlowGtpv1MessageLength.Choice.Enum + 896, // 1073: otg.PatternFlowGtpv1MessageLength.metric_tags:type_name -> otg.PatternFlowGtpv1MessageLengthMetricTag + 897, // 1074: otg.PatternFlowGtpv1MessageLength.increment:type_name -> otg.PatternFlowGtpv1MessageLengthCounter + 897, // 1075: otg.PatternFlowGtpv1MessageLength.decrement:type_name -> otg.PatternFlowGtpv1MessageLengthCounter + 255, // 1076: otg.PatternFlowGtpv1Teid.choice:type_name -> otg.PatternFlowGtpv1Teid.Choice.Enum + 899, // 1077: otg.PatternFlowGtpv1Teid.metric_tags:type_name -> otg.PatternFlowGtpv1TeidMetricTag + 900, // 1078: otg.PatternFlowGtpv1Teid.increment:type_name -> otg.PatternFlowGtpv1TeidCounter + 900, // 1079: otg.PatternFlowGtpv1Teid.decrement:type_name -> otg.PatternFlowGtpv1TeidCounter + 256, // 1080: otg.PatternFlowGtpv1SquenceNumber.choice:type_name -> otg.PatternFlowGtpv1SquenceNumber.Choice.Enum + 902, // 1081: otg.PatternFlowGtpv1SquenceNumber.metric_tags:type_name -> otg.PatternFlowGtpv1SquenceNumberMetricTag + 903, // 1082: otg.PatternFlowGtpv1SquenceNumber.increment:type_name -> otg.PatternFlowGtpv1SquenceNumberCounter + 903, // 1083: otg.PatternFlowGtpv1SquenceNumber.decrement:type_name -> otg.PatternFlowGtpv1SquenceNumberCounter + 257, // 1084: otg.PatternFlowGtpv1NPduNumber.choice:type_name -> otg.PatternFlowGtpv1NPduNumber.Choice.Enum + 905, // 1085: otg.PatternFlowGtpv1NPduNumber.metric_tags:type_name -> otg.PatternFlowGtpv1NPduNumberMetricTag + 906, // 1086: otg.PatternFlowGtpv1NPduNumber.increment:type_name -> otg.PatternFlowGtpv1NPduNumberCounter + 906, // 1087: otg.PatternFlowGtpv1NPduNumber.decrement:type_name -> otg.PatternFlowGtpv1NPduNumberCounter + 258, // 1088: otg.PatternFlowGtpv1NextExtensionHeaderType.choice:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.Enum + 908, // 1089: otg.PatternFlowGtpv1NextExtensionHeaderType.metric_tags:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag + 909, // 1090: otg.PatternFlowGtpv1NextExtensionHeaderType.increment:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter + 909, // 1091: otg.PatternFlowGtpv1NextExtensionHeaderType.decrement:type_name -> otg.PatternFlowGtpv1NextExtensionHeaderTypeCounter + 259, // 1092: otg.PatternFlowGtpExtensionExtensionLength.choice:type_name -> otg.PatternFlowGtpExtensionExtensionLength.Choice.Enum + 911, // 1093: otg.PatternFlowGtpExtensionExtensionLength.metric_tags:type_name -> otg.PatternFlowGtpExtensionExtensionLengthMetricTag + 912, // 1094: otg.PatternFlowGtpExtensionExtensionLength.increment:type_name -> otg.PatternFlowGtpExtensionExtensionLengthCounter + 912, // 1095: otg.PatternFlowGtpExtensionExtensionLength.decrement:type_name -> otg.PatternFlowGtpExtensionExtensionLengthCounter + 260, // 1096: otg.PatternFlowGtpExtensionContents.choice:type_name -> otg.PatternFlowGtpExtensionContents.Choice.Enum + 914, // 1097: otg.PatternFlowGtpExtensionContents.metric_tags:type_name -> otg.PatternFlowGtpExtensionContentsMetricTag + 915, // 1098: otg.PatternFlowGtpExtensionContents.increment:type_name -> otg.PatternFlowGtpExtensionContentsCounter + 915, // 1099: otg.PatternFlowGtpExtensionContents.decrement:type_name -> otg.PatternFlowGtpExtensionContentsCounter + 261, // 1100: otg.PatternFlowGtpExtensionNextExtensionHeader.choice:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.Enum + 917, // 1101: otg.PatternFlowGtpExtensionNextExtensionHeader.metric_tags:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag + 918, // 1102: otg.PatternFlowGtpExtensionNextExtensionHeader.increment:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderCounter + 918, // 1103: otg.PatternFlowGtpExtensionNextExtensionHeader.decrement:type_name -> otg.PatternFlowGtpExtensionNextExtensionHeaderCounter + 262, // 1104: otg.PatternFlowGtpv2Version.choice:type_name -> otg.PatternFlowGtpv2Version.Choice.Enum + 920, // 1105: otg.PatternFlowGtpv2Version.metric_tags:type_name -> otg.PatternFlowGtpv2VersionMetricTag + 921, // 1106: otg.PatternFlowGtpv2Version.increment:type_name -> otg.PatternFlowGtpv2VersionCounter + 921, // 1107: otg.PatternFlowGtpv2Version.decrement:type_name -> otg.PatternFlowGtpv2VersionCounter + 263, // 1108: otg.PatternFlowGtpv2PiggybackingFlag.choice:type_name -> otg.PatternFlowGtpv2PiggybackingFlag.Choice.Enum + 923, // 1109: otg.PatternFlowGtpv2PiggybackingFlag.metric_tags:type_name -> otg.PatternFlowGtpv2PiggybackingFlagMetricTag + 924, // 1110: otg.PatternFlowGtpv2PiggybackingFlag.increment:type_name -> otg.PatternFlowGtpv2PiggybackingFlagCounter + 924, // 1111: otg.PatternFlowGtpv2PiggybackingFlag.decrement:type_name -> otg.PatternFlowGtpv2PiggybackingFlagCounter + 264, // 1112: otg.PatternFlowGtpv2TeidFlag.choice:type_name -> otg.PatternFlowGtpv2TeidFlag.Choice.Enum + 926, // 1113: otg.PatternFlowGtpv2TeidFlag.metric_tags:type_name -> otg.PatternFlowGtpv2TeidFlagMetricTag + 927, // 1114: otg.PatternFlowGtpv2TeidFlag.increment:type_name -> otg.PatternFlowGtpv2TeidFlagCounter + 927, // 1115: otg.PatternFlowGtpv2TeidFlag.decrement:type_name -> otg.PatternFlowGtpv2TeidFlagCounter + 265, // 1116: otg.PatternFlowGtpv2Spare1.choice:type_name -> otg.PatternFlowGtpv2Spare1.Choice.Enum + 929, // 1117: otg.PatternFlowGtpv2Spare1.metric_tags:type_name -> otg.PatternFlowGtpv2Spare1MetricTag + 930, // 1118: otg.PatternFlowGtpv2Spare1.increment:type_name -> otg.PatternFlowGtpv2Spare1Counter + 930, // 1119: otg.PatternFlowGtpv2Spare1.decrement:type_name -> otg.PatternFlowGtpv2Spare1Counter + 266, // 1120: otg.PatternFlowGtpv2MessageType.choice:type_name -> otg.PatternFlowGtpv2MessageType.Choice.Enum + 932, // 1121: otg.PatternFlowGtpv2MessageType.metric_tags:type_name -> otg.PatternFlowGtpv2MessageTypeMetricTag + 933, // 1122: otg.PatternFlowGtpv2MessageType.increment:type_name -> otg.PatternFlowGtpv2MessageTypeCounter + 933, // 1123: otg.PatternFlowGtpv2MessageType.decrement:type_name -> otg.PatternFlowGtpv2MessageTypeCounter + 267, // 1124: otg.PatternFlowGtpv2MessageLength.choice:type_name -> otg.PatternFlowGtpv2MessageLength.Choice.Enum + 935, // 1125: otg.PatternFlowGtpv2MessageLength.metric_tags:type_name -> otg.PatternFlowGtpv2MessageLengthMetricTag + 936, // 1126: otg.PatternFlowGtpv2MessageLength.increment:type_name -> otg.PatternFlowGtpv2MessageLengthCounter + 936, // 1127: otg.PatternFlowGtpv2MessageLength.decrement:type_name -> otg.PatternFlowGtpv2MessageLengthCounter + 268, // 1128: otg.PatternFlowGtpv2Teid.choice:type_name -> otg.PatternFlowGtpv2Teid.Choice.Enum + 938, // 1129: otg.PatternFlowGtpv2Teid.metric_tags:type_name -> otg.PatternFlowGtpv2TeidMetricTag + 939, // 1130: otg.PatternFlowGtpv2Teid.increment:type_name -> otg.PatternFlowGtpv2TeidCounter + 939, // 1131: otg.PatternFlowGtpv2Teid.decrement:type_name -> otg.PatternFlowGtpv2TeidCounter + 269, // 1132: otg.PatternFlowGtpv2SequenceNumber.choice:type_name -> otg.PatternFlowGtpv2SequenceNumber.Choice.Enum + 941, // 1133: otg.PatternFlowGtpv2SequenceNumber.metric_tags:type_name -> otg.PatternFlowGtpv2SequenceNumberMetricTag + 942, // 1134: otg.PatternFlowGtpv2SequenceNumber.increment:type_name -> otg.PatternFlowGtpv2SequenceNumberCounter + 942, // 1135: otg.PatternFlowGtpv2SequenceNumber.decrement:type_name -> otg.PatternFlowGtpv2SequenceNumberCounter + 270, // 1136: otg.PatternFlowGtpv2Spare2.choice:type_name -> otg.PatternFlowGtpv2Spare2.Choice.Enum + 944, // 1137: otg.PatternFlowGtpv2Spare2.metric_tags:type_name -> otg.PatternFlowGtpv2Spare2MetricTag + 945, // 1138: otg.PatternFlowGtpv2Spare2.increment:type_name -> otg.PatternFlowGtpv2Spare2Counter + 945, // 1139: otg.PatternFlowGtpv2Spare2.decrement:type_name -> otg.PatternFlowGtpv2Spare2Counter + 271, // 1140: otg.PatternFlowArpHardwareType.choice:type_name -> otg.PatternFlowArpHardwareType.Choice.Enum + 947, // 1141: otg.PatternFlowArpHardwareType.metric_tags:type_name -> otg.PatternFlowArpHardwareTypeMetricTag + 948, // 1142: otg.PatternFlowArpHardwareType.increment:type_name -> otg.PatternFlowArpHardwareTypeCounter + 948, // 1143: otg.PatternFlowArpHardwareType.decrement:type_name -> otg.PatternFlowArpHardwareTypeCounter + 272, // 1144: otg.PatternFlowArpProtocolType.choice:type_name -> otg.PatternFlowArpProtocolType.Choice.Enum + 950, // 1145: otg.PatternFlowArpProtocolType.metric_tags:type_name -> otg.PatternFlowArpProtocolTypeMetricTag + 951, // 1146: otg.PatternFlowArpProtocolType.increment:type_name -> otg.PatternFlowArpProtocolTypeCounter + 951, // 1147: otg.PatternFlowArpProtocolType.decrement:type_name -> otg.PatternFlowArpProtocolTypeCounter + 273, // 1148: otg.PatternFlowArpHardwareLength.choice:type_name -> otg.PatternFlowArpHardwareLength.Choice.Enum + 953, // 1149: otg.PatternFlowArpHardwareLength.metric_tags:type_name -> otg.PatternFlowArpHardwareLengthMetricTag + 954, // 1150: otg.PatternFlowArpHardwareLength.increment:type_name -> otg.PatternFlowArpHardwareLengthCounter + 954, // 1151: otg.PatternFlowArpHardwareLength.decrement:type_name -> otg.PatternFlowArpHardwareLengthCounter + 274, // 1152: otg.PatternFlowArpProtocolLength.choice:type_name -> otg.PatternFlowArpProtocolLength.Choice.Enum + 956, // 1153: otg.PatternFlowArpProtocolLength.metric_tags:type_name -> otg.PatternFlowArpProtocolLengthMetricTag + 957, // 1154: otg.PatternFlowArpProtocolLength.increment:type_name -> otg.PatternFlowArpProtocolLengthCounter + 957, // 1155: otg.PatternFlowArpProtocolLength.decrement:type_name -> otg.PatternFlowArpProtocolLengthCounter + 275, // 1156: otg.PatternFlowArpOperation.choice:type_name -> otg.PatternFlowArpOperation.Choice.Enum + 959, // 1157: otg.PatternFlowArpOperation.metric_tags:type_name -> otg.PatternFlowArpOperationMetricTag + 960, // 1158: otg.PatternFlowArpOperation.increment:type_name -> otg.PatternFlowArpOperationCounter + 960, // 1159: otg.PatternFlowArpOperation.decrement:type_name -> otg.PatternFlowArpOperationCounter + 276, // 1160: otg.PatternFlowArpSenderHardwareAddr.choice:type_name -> otg.PatternFlowArpSenderHardwareAddr.Choice.Enum + 962, // 1161: otg.PatternFlowArpSenderHardwareAddr.metric_tags:type_name -> otg.PatternFlowArpSenderHardwareAddrMetricTag + 963, // 1162: otg.PatternFlowArpSenderHardwareAddr.increment:type_name -> otg.PatternFlowArpSenderHardwareAddrCounter + 963, // 1163: otg.PatternFlowArpSenderHardwareAddr.decrement:type_name -> otg.PatternFlowArpSenderHardwareAddrCounter + 277, // 1164: otg.PatternFlowArpSenderProtocolAddr.choice:type_name -> otg.PatternFlowArpSenderProtocolAddr.Choice.Enum + 965, // 1165: otg.PatternFlowArpSenderProtocolAddr.metric_tags:type_name -> otg.PatternFlowArpSenderProtocolAddrMetricTag + 966, // 1166: otg.PatternFlowArpSenderProtocolAddr.increment:type_name -> otg.PatternFlowArpSenderProtocolAddrCounter + 966, // 1167: otg.PatternFlowArpSenderProtocolAddr.decrement:type_name -> otg.PatternFlowArpSenderProtocolAddrCounter + 278, // 1168: otg.PatternFlowArpTargetHardwareAddr.choice:type_name -> otg.PatternFlowArpTargetHardwareAddr.Choice.Enum + 968, // 1169: otg.PatternFlowArpTargetHardwareAddr.metric_tags:type_name -> otg.PatternFlowArpTargetHardwareAddrMetricTag + 969, // 1170: otg.PatternFlowArpTargetHardwareAddr.increment:type_name -> otg.PatternFlowArpTargetHardwareAddrCounter + 969, // 1171: otg.PatternFlowArpTargetHardwareAddr.decrement:type_name -> otg.PatternFlowArpTargetHardwareAddrCounter + 279, // 1172: otg.PatternFlowArpTargetProtocolAddr.choice:type_name -> otg.PatternFlowArpTargetProtocolAddr.Choice.Enum + 971, // 1173: otg.PatternFlowArpTargetProtocolAddr.metric_tags:type_name -> otg.PatternFlowArpTargetProtocolAddrMetricTag + 972, // 1174: otg.PatternFlowArpTargetProtocolAddr.increment:type_name -> otg.PatternFlowArpTargetProtocolAddrCounter + 972, // 1175: otg.PatternFlowArpTargetProtocolAddr.decrement:type_name -> otg.PatternFlowArpTargetProtocolAddrCounter + 280, // 1176: otg.PatternFlowIcmpEchoType.choice:type_name -> otg.PatternFlowIcmpEchoType.Choice.Enum + 974, // 1177: otg.PatternFlowIcmpEchoType.metric_tags:type_name -> otg.PatternFlowIcmpEchoTypeMetricTag + 975, // 1178: otg.PatternFlowIcmpEchoType.increment:type_name -> otg.PatternFlowIcmpEchoTypeCounter + 975, // 1179: otg.PatternFlowIcmpEchoType.decrement:type_name -> otg.PatternFlowIcmpEchoTypeCounter + 281, // 1180: otg.PatternFlowIcmpEchoCode.choice:type_name -> otg.PatternFlowIcmpEchoCode.Choice.Enum + 977, // 1181: otg.PatternFlowIcmpEchoCode.metric_tags:type_name -> otg.PatternFlowIcmpEchoCodeMetricTag + 978, // 1182: otg.PatternFlowIcmpEchoCode.increment:type_name -> otg.PatternFlowIcmpEchoCodeCounter + 978, // 1183: otg.PatternFlowIcmpEchoCode.decrement:type_name -> otg.PatternFlowIcmpEchoCodeCounter + 282, // 1184: otg.PatternFlowIcmpEchoChecksum.choice:type_name -> otg.PatternFlowIcmpEchoChecksum.Choice.Enum + 283, // 1185: otg.PatternFlowIcmpEchoChecksum.generated:type_name -> otg.PatternFlowIcmpEchoChecksum.Generated.Enum + 284, // 1186: otg.PatternFlowIcmpEchoIdentifier.choice:type_name -> otg.PatternFlowIcmpEchoIdentifier.Choice.Enum + 981, // 1187: otg.PatternFlowIcmpEchoIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpEchoIdentifierMetricTag + 982, // 1188: otg.PatternFlowIcmpEchoIdentifier.increment:type_name -> otg.PatternFlowIcmpEchoIdentifierCounter + 982, // 1189: otg.PatternFlowIcmpEchoIdentifier.decrement:type_name -> otg.PatternFlowIcmpEchoIdentifierCounter + 285, // 1190: otg.PatternFlowIcmpEchoSequenceNumber.choice:type_name -> otg.PatternFlowIcmpEchoSequenceNumber.Choice.Enum + 984, // 1191: otg.PatternFlowIcmpEchoSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpEchoSequenceNumberMetricTag + 985, // 1192: otg.PatternFlowIcmpEchoSequenceNumber.increment:type_name -> otg.PatternFlowIcmpEchoSequenceNumberCounter + 985, // 1193: otg.PatternFlowIcmpEchoSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpEchoSequenceNumberCounter + 286, // 1194: otg.PatternFlowIcmpCommonChecksum.choice:type_name -> otg.PatternFlowIcmpCommonChecksum.Choice.Enum + 287, // 1195: otg.PatternFlowIcmpCommonChecksum.generated:type_name -> otg.PatternFlowIcmpCommonChecksum.Generated.Enum + 288, // 1196: otg.PatternFlowIcmpNextFieldsIdentifier.choice:type_name -> otg.PatternFlowIcmpNextFieldsIdentifier.Choice.Enum + 988, // 1197: otg.PatternFlowIcmpNextFieldsIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierMetricTag + 989, // 1198: otg.PatternFlowIcmpNextFieldsIdentifier.increment:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierCounter + 989, // 1199: otg.PatternFlowIcmpNextFieldsIdentifier.decrement:type_name -> otg.PatternFlowIcmpNextFieldsIdentifierCounter + 289, // 1200: otg.PatternFlowIcmpNextFieldsSequenceNumber.choice:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.Enum + 991, // 1201: otg.PatternFlowIcmpNextFieldsSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag + 992, // 1202: otg.PatternFlowIcmpNextFieldsSequenceNumber.increment:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberCounter + 992, // 1203: otg.PatternFlowIcmpNextFieldsSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpNextFieldsSequenceNumberCounter + 290, // 1204: otg.PatternFlowIcmpv6EchoType.choice:type_name -> otg.PatternFlowIcmpv6EchoType.Choice.Enum + 994, // 1205: otg.PatternFlowIcmpv6EchoType.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoTypeMetricTag + 995, // 1206: otg.PatternFlowIcmpv6EchoType.increment:type_name -> otg.PatternFlowIcmpv6EchoTypeCounter + 995, // 1207: otg.PatternFlowIcmpv6EchoType.decrement:type_name -> otg.PatternFlowIcmpv6EchoTypeCounter + 291, // 1208: otg.PatternFlowIcmpv6EchoCode.choice:type_name -> otg.PatternFlowIcmpv6EchoCode.Choice.Enum + 997, // 1209: otg.PatternFlowIcmpv6EchoCode.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoCodeMetricTag + 998, // 1210: otg.PatternFlowIcmpv6EchoCode.increment:type_name -> otg.PatternFlowIcmpv6EchoCodeCounter + 998, // 1211: otg.PatternFlowIcmpv6EchoCode.decrement:type_name -> otg.PatternFlowIcmpv6EchoCodeCounter + 292, // 1212: otg.PatternFlowIcmpv6EchoIdentifier.choice:type_name -> otg.PatternFlowIcmpv6EchoIdentifier.Choice.Enum + 1000, // 1213: otg.PatternFlowIcmpv6EchoIdentifier.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoIdentifierMetricTag + 1001, // 1214: otg.PatternFlowIcmpv6EchoIdentifier.increment:type_name -> otg.PatternFlowIcmpv6EchoIdentifierCounter + 1001, // 1215: otg.PatternFlowIcmpv6EchoIdentifier.decrement:type_name -> otg.PatternFlowIcmpv6EchoIdentifierCounter + 293, // 1216: otg.PatternFlowIcmpv6EchoSequenceNumber.choice:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.Enum + 1003, // 1217: otg.PatternFlowIcmpv6EchoSequenceNumber.metric_tags:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag + 1004, // 1218: otg.PatternFlowIcmpv6EchoSequenceNumber.increment:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberCounter + 1004, // 1219: otg.PatternFlowIcmpv6EchoSequenceNumber.decrement:type_name -> otg.PatternFlowIcmpv6EchoSequenceNumberCounter + 294, // 1220: otg.PatternFlowIcmpv6EchoChecksum.choice:type_name -> otg.PatternFlowIcmpv6EchoChecksum.Choice.Enum + 295, // 1221: otg.PatternFlowIcmpv6EchoChecksum.generated:type_name -> otg.PatternFlowIcmpv6EchoChecksum.Generated.Enum + 296, // 1222: otg.PatternFlowIcmpv6CommonChecksum.choice:type_name -> otg.PatternFlowIcmpv6CommonChecksum.Choice.Enum + 297, // 1223: otg.PatternFlowIcmpv6CommonChecksum.generated:type_name -> otg.PatternFlowIcmpv6CommonChecksum.Generated.Enum + 298, // 1224: otg.PatternFlowPppAddress.choice:type_name -> otg.PatternFlowPppAddress.Choice.Enum + 1008, // 1225: otg.PatternFlowPppAddress.metric_tags:type_name -> otg.PatternFlowPppAddressMetricTag + 1009, // 1226: otg.PatternFlowPppAddress.increment:type_name -> otg.PatternFlowPppAddressCounter + 1009, // 1227: otg.PatternFlowPppAddress.decrement:type_name -> otg.PatternFlowPppAddressCounter + 299, // 1228: otg.PatternFlowPppControl.choice:type_name -> otg.PatternFlowPppControl.Choice.Enum + 1011, // 1229: otg.PatternFlowPppControl.metric_tags:type_name -> otg.PatternFlowPppControlMetricTag + 1012, // 1230: otg.PatternFlowPppControl.increment:type_name -> otg.PatternFlowPppControlCounter + 1012, // 1231: otg.PatternFlowPppControl.decrement:type_name -> otg.PatternFlowPppControlCounter + 300, // 1232: otg.PatternFlowPppProtocolType.choice:type_name -> otg.PatternFlowPppProtocolType.Choice.Enum + 1014, // 1233: otg.PatternFlowPppProtocolType.metric_tags:type_name -> otg.PatternFlowPppProtocolTypeMetricTag + 1015, // 1234: otg.PatternFlowPppProtocolType.increment:type_name -> otg.PatternFlowPppProtocolTypeCounter + 1015, // 1235: otg.PatternFlowPppProtocolType.decrement:type_name -> otg.PatternFlowPppProtocolTypeCounter + 301, // 1236: otg.PatternFlowIgmpv1Version.choice:type_name -> otg.PatternFlowIgmpv1Version.Choice.Enum + 1017, // 1237: otg.PatternFlowIgmpv1Version.metric_tags:type_name -> otg.PatternFlowIgmpv1VersionMetricTag + 1018, // 1238: otg.PatternFlowIgmpv1Version.increment:type_name -> otg.PatternFlowIgmpv1VersionCounter + 1018, // 1239: otg.PatternFlowIgmpv1Version.decrement:type_name -> otg.PatternFlowIgmpv1VersionCounter + 302, // 1240: otg.PatternFlowIgmpv1Type.choice:type_name -> otg.PatternFlowIgmpv1Type.Choice.Enum + 1020, // 1241: otg.PatternFlowIgmpv1Type.metric_tags:type_name -> otg.PatternFlowIgmpv1TypeMetricTag + 1021, // 1242: otg.PatternFlowIgmpv1Type.increment:type_name -> otg.PatternFlowIgmpv1TypeCounter + 1021, // 1243: otg.PatternFlowIgmpv1Type.decrement:type_name -> otg.PatternFlowIgmpv1TypeCounter + 303, // 1244: otg.PatternFlowIgmpv1Unused.choice:type_name -> otg.PatternFlowIgmpv1Unused.Choice.Enum + 1023, // 1245: otg.PatternFlowIgmpv1Unused.metric_tags:type_name -> otg.PatternFlowIgmpv1UnusedMetricTag + 1024, // 1246: otg.PatternFlowIgmpv1Unused.increment:type_name -> otg.PatternFlowIgmpv1UnusedCounter + 1024, // 1247: otg.PatternFlowIgmpv1Unused.decrement:type_name -> otg.PatternFlowIgmpv1UnusedCounter + 304, // 1248: otg.PatternFlowIgmpv1Checksum.choice:type_name -> otg.PatternFlowIgmpv1Checksum.Choice.Enum + 305, // 1249: otg.PatternFlowIgmpv1Checksum.generated:type_name -> otg.PatternFlowIgmpv1Checksum.Generated.Enum + 306, // 1250: otg.PatternFlowIgmpv1GroupAddress.choice:type_name -> otg.PatternFlowIgmpv1GroupAddress.Choice.Enum + 1027, // 1251: otg.PatternFlowIgmpv1GroupAddress.metric_tags:type_name -> otg.PatternFlowIgmpv1GroupAddressMetricTag + 1028, // 1252: otg.PatternFlowIgmpv1GroupAddress.increment:type_name -> otg.PatternFlowIgmpv1GroupAddressCounter + 1028, // 1253: otg.PatternFlowIgmpv1GroupAddress.decrement:type_name -> otg.PatternFlowIgmpv1GroupAddressCounter + 307, // 1254: otg.PatternFlowMplsLabel.choice:type_name -> otg.PatternFlowMplsLabel.Choice.Enum + 1030, // 1255: otg.PatternFlowMplsLabel.metric_tags:type_name -> otg.PatternFlowMplsLabelMetricTag + 1031, // 1256: otg.PatternFlowMplsLabel.increment:type_name -> otg.PatternFlowMplsLabelCounter + 1031, // 1257: otg.PatternFlowMplsLabel.decrement:type_name -> otg.PatternFlowMplsLabelCounter + 308, // 1258: otg.PatternFlowMplsTrafficClass.choice:type_name -> otg.PatternFlowMplsTrafficClass.Choice.Enum + 1033, // 1259: otg.PatternFlowMplsTrafficClass.metric_tags:type_name -> otg.PatternFlowMplsTrafficClassMetricTag + 1034, // 1260: otg.PatternFlowMplsTrafficClass.increment:type_name -> otg.PatternFlowMplsTrafficClassCounter + 1034, // 1261: otg.PatternFlowMplsTrafficClass.decrement:type_name -> otg.PatternFlowMplsTrafficClassCounter + 309, // 1262: otg.PatternFlowMplsBottomOfStack.choice:type_name -> otg.PatternFlowMplsBottomOfStack.Choice.Enum + 1036, // 1263: otg.PatternFlowMplsBottomOfStack.metric_tags:type_name -> otg.PatternFlowMplsBottomOfStackMetricTag + 1037, // 1264: otg.PatternFlowMplsBottomOfStack.increment:type_name -> otg.PatternFlowMplsBottomOfStackCounter + 1037, // 1265: otg.PatternFlowMplsBottomOfStack.decrement:type_name -> otg.PatternFlowMplsBottomOfStackCounter + 310, // 1266: otg.PatternFlowMplsTimeToLive.choice:type_name -> otg.PatternFlowMplsTimeToLive.Choice.Enum + 1039, // 1267: otg.PatternFlowMplsTimeToLive.metric_tags:type_name -> otg.PatternFlowMplsTimeToLiveMetricTag + 1040, // 1268: otg.PatternFlowMplsTimeToLive.increment:type_name -> otg.PatternFlowMplsTimeToLiveCounter + 1040, // 1269: otg.PatternFlowMplsTimeToLive.decrement:type_name -> otg.PatternFlowMplsTimeToLiveCounter + 509, // 1270: otg.Success.warning:type_name -> otg.Warning + 508, // 1271: otg.Failure.error:type_name -> otg.Error + 311, // 1272: otg.SetConfigRequest.config:type_name -> otg.Config + 510, // 1273: otg.UpdateConfigRequest.config_update:type_name -> otg.ConfigUpdate + 509, // 1274: otg.SetConfigResponse.warning:type_name -> otg.Warning + 311, // 1275: otg.GetConfigResponse.config:type_name -> otg.Config + 509, // 1276: otg.UpdateConfigResponse.warning:type_name -> otg.Warning + 512, // 1277: otg.SetControlStateRequest.control_state:type_name -> otg.ControlState + 509, // 1278: otg.SetControlStateResponse.warning:type_name -> otg.Warning + 530, // 1279: otg.SetControlActionRequest.control_action:type_name -> otg.ControlAction + 531, // 1280: otg.SetControlActionResponse.control_action_response:type_name -> otg.ControlActionResponse + 517, // 1281: otg.SetTransmitStateRequest.transmit_state:type_name -> otg.TransmitState + 509, // 1282: otg.SetTransmitStateResponse.warning:type_name -> otg.Warning + 516, // 1283: otg.SetLinkStateRequest.link_state:type_name -> otg.LinkState + 509, // 1284: otg.SetLinkStateResponse.warning:type_name -> otg.Warning + 518, // 1285: otg.SetCaptureStateRequest.capture_state:type_name -> otg.CaptureState + 509, // 1286: otg.SetCaptureStateResponse.warning:type_name -> otg.Warning + 511, // 1287: otg.UpdateFlowsRequest.flows_update:type_name -> otg.FlowsUpdate + 311, // 1288: otg.UpdateFlowsResponse.config:type_name -> otg.Config + 519, // 1289: otg.SetRouteStateRequest.route_state:type_name -> otg.RouteState + 509, // 1290: otg.SetRouteStateResponse.warning:type_name -> otg.Warning + 553, // 1291: otg.SendPingRequest.ping_request:type_name -> otg.PingRequest + 554, // 1292: otg.SendPingResponse.ping_response:type_name -> otg.PingResponse + 520, // 1293: otg.SetProtocolStateRequest.protocol_state:type_name -> otg.ProtocolState + 509, // 1294: otg.SetProtocolStateResponse.warning:type_name -> otg.Warning + 521, // 1295: otg.SetDeviceStateRequest.device_state:type_name -> otg.DeviceState + 509, // 1296: otg.SetDeviceStateResponse.warning:type_name -> otg.Warning + 556, // 1297: otg.GetMetricsRequest.metrics_request:type_name -> otg.MetricsRequest + 557, // 1298: otg.GetMetricsResponse.metrics_response:type_name -> otg.MetricsResponse + 583, // 1299: otg.GetStatesRequest.states_request:type_name -> otg.StatesRequest + 584, // 1300: otg.GetStatesResponse.states_response:type_name -> otg.StatesResponse + 625, // 1301: otg.GetCaptureRequest.capture_request:type_name -> otg.CaptureRequest + 1042, // 1302: otg.GetVersionResponse.version:type_name -> otg.Version + 1045, // 1303: otg.Openapi.SetConfig:input_type -> otg.SetConfigRequest + 1388, // 1304: otg.Openapi.GetConfig:input_type -> google.protobuf.Empty + 1046, // 1305: otg.Openapi.UpdateConfig:input_type -> otg.UpdateConfigRequest + 1050, // 1306: otg.Openapi.SetControlState:input_type -> otg.SetControlStateRequest + 1052, // 1307: otg.Openapi.SetControlAction:input_type -> otg.SetControlActionRequest + 1054, // 1308: otg.Openapi.SetTransmitState:input_type -> otg.SetTransmitStateRequest + 1056, // 1309: otg.Openapi.SetLinkState:input_type -> otg.SetLinkStateRequest + 1058, // 1310: otg.Openapi.SetCaptureState:input_type -> otg.SetCaptureStateRequest + 1060, // 1311: otg.Openapi.UpdateFlows:input_type -> otg.UpdateFlowsRequest + 1062, // 1312: otg.Openapi.SetRouteState:input_type -> otg.SetRouteStateRequest + 1064, // 1313: otg.Openapi.SendPing:input_type -> otg.SendPingRequest + 1066, // 1314: otg.Openapi.SetProtocolState:input_type -> otg.SetProtocolStateRequest + 1068, // 1315: otg.Openapi.SetDeviceState:input_type -> otg.SetDeviceStateRequest + 1070, // 1316: otg.Openapi.GetMetrics:input_type -> otg.GetMetricsRequest + 1072, // 1317: otg.Openapi.GetStates:input_type -> otg.GetStatesRequest + 1074, // 1318: otg.Openapi.GetCapture:input_type -> otg.GetCaptureRequest + 1388, // 1319: otg.Openapi.GetVersion:input_type -> google.protobuf.Empty + 1047, // 1320: otg.Openapi.SetConfig:output_type -> otg.SetConfigResponse + 1048, // 1321: otg.Openapi.GetConfig:output_type -> otg.GetConfigResponse + 1049, // 1322: otg.Openapi.UpdateConfig:output_type -> otg.UpdateConfigResponse + 1051, // 1323: otg.Openapi.SetControlState:output_type -> otg.SetControlStateResponse + 1053, // 1324: otg.Openapi.SetControlAction:output_type -> otg.SetControlActionResponse + 1055, // 1325: otg.Openapi.SetTransmitState:output_type -> otg.SetTransmitStateResponse + 1057, // 1326: otg.Openapi.SetLinkState:output_type -> otg.SetLinkStateResponse + 1059, // 1327: otg.Openapi.SetCaptureState:output_type -> otg.SetCaptureStateResponse + 1061, // 1328: otg.Openapi.UpdateFlows:output_type -> otg.UpdateFlowsResponse + 1063, // 1329: otg.Openapi.SetRouteState:output_type -> otg.SetRouteStateResponse + 1065, // 1330: otg.Openapi.SendPing:output_type -> otg.SendPingResponse + 1067, // 1331: otg.Openapi.SetProtocolState:output_type -> otg.SetProtocolStateResponse + 1069, // 1332: otg.Openapi.SetDeviceState:output_type -> otg.SetDeviceStateResponse + 1071, // 1333: otg.Openapi.GetMetrics:output_type -> otg.GetMetricsResponse + 1073, // 1334: otg.Openapi.GetStates:output_type -> otg.GetStatesResponse + 1075, // 1335: otg.Openapi.GetCapture:output_type -> otg.GetCaptureResponse + 1076, // 1336: otg.Openapi.GetVersion:output_type -> otg.GetVersionResponse + 1320, // [1320:1337] is the sub-list for method output_type + 1303, // [1303:1320] is the sub-list for method input_type + 1303, // [1303:1303] is the sub-list for extension type_name + 1303, // [1303:1303] is the sub-list for extension extendee + 0, // [0:1303] is the sub-list for field type_name } func init() { file_otg_proto_init() } diff --git a/gosnappi/otg/otg.proto b/gosnappi/otg/otg.proto index 2da7be46..aeafacd0 100644 --- a/gosnappi/otg/otg.proto +++ b/gosnappi/otg/otg.proto @@ -1,4 +1,4 @@ -/* Open Traffic Generator API 0.11.6 +/* Open Traffic Generator API 0.11.7 * Open Traffic Generator API defines a model-driven, vendor-neutral and standard * interface for emulating layer 2-7 network devices and generating test traffic. * @@ -123,6 +123,10 @@ message LagPort { // x-constraint: // - /components/schemas/Port/properties/name // + // + // x-constraint: + // - /components/schemas/Port/properties/name + // // required = true string port_name = 1; @@ -237,6 +241,8 @@ message DeviceEthernetBase { // An Ethernet interface with IPv4 and IPv6 addresses. message DeviceEthernet { + // Deprecated: This property is deprecated in favor of property connection.port_name + // // Deprecated: This property is deprecated in favor of property connection.port_name // // The unique name of a Port or a LAG that will emulate this interface. @@ -247,6 +253,11 @@ message DeviceEthernet { // - /components/schemas/Port/properties/name // - /components/schemas/Lag/properties/name // + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name + // optional string port_name = 1; // Device connection to physical, LAG or another device. @@ -295,6 +306,10 @@ message EthernetConnection { // x-constraint: // - /components/schemas/Port/properties/name // + // + // x-constraint: + // - /components/schemas/Port/properties/name + // optional string port_name = 2; // Name of the LAG that the Ethernet interface is configured on. @@ -302,6 +317,10 @@ message EthernetConnection { // x-constraint: // - /components/schemas/Lag/properties/name // + // + // x-constraint: + // - /components/schemas/Lag/properties/name + // optional string lag_name = 3; // Name of the VXLAN instance (or VXLAN tunnel) that this Ethernet interface is connected @@ -311,6 +330,11 @@ message EthernetConnection { // - #/components/schemas/Vxlan.V4Tunnel/properties/name // - #/components/schemas/Vxlan.V6Tunnel/properties/name // + // + // x-constraint: + // - #/components/schemas/Vxlan.V4Tunnel/properties/name + // - #/components/schemas/Vxlan.V6Tunnel/properties/name + // optional string vxlan_name = 4; } @@ -378,6 +402,10 @@ message DeviceIpv4Loopback { // x-constraint: // - /components/schemas/Device.Ethernet/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // // required = true string eth_name = 1; @@ -452,6 +480,10 @@ message DeviceIpv6Loopback { // x-constraint: // - /components/schemas/Device.Ethernet/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // // required = true string eth_name = 1; @@ -502,6 +534,10 @@ message Layer1 { // x-constraint: // - /components/schemas/Port/properties/name // + // + // x-constraint: + // - /components/schemas/Port/properties/name + // repeated string port_names = 1; message Speed { @@ -683,6 +719,8 @@ message Layer1Ieee8021qbb { optional int32 pfc_class_7 = 9; } +// Under Review: Information TBD +// // Under Review: Information TBD // // Configuration for capture settings. @@ -694,6 +732,10 @@ message Capture { // x-constraint: // - /components/schemas/Port/properties/name // + // + // x-constraint: + // - /components/schemas/Port/properties/name + // repeated string port_names = 1; // A list of filters to apply to the capturing ports. If no filters are specified then @@ -1012,6 +1054,10 @@ message IsisInterface { // x-constraint: // - /components/schemas/Device.Ethernet/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // // required = true string eth_name = 1; @@ -1823,6 +1869,11 @@ message BgpV4Interface { // - /components/schemas/Device.Ipv4/properties/name // - /components/schemas/Device.Ipv4Loopback/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv4Loopback/properties/name + // // required = true string ipv4_name = 1; @@ -3639,6 +3690,11 @@ message BgpV6Interface { // - /components/schemas/Device.Ipv6/properties/name // - /components/schemas/Device.Ipv6Loopback/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Device.Ipv6Loopback/properties/name + // // required = true string ipv6_name = 1; @@ -3900,6 +3956,11 @@ message VxlanV4Tunnel { // - /components/schemas/Device.Ipv4/properties/name // - /components/schemas/Device.Ipv4Loopback/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv4Loopback/properties/name + // // required = true string source_interface = 1; @@ -3928,6 +3989,11 @@ message VxlanV6Tunnel { // - /components/schemas/Device.Ipv6/properties/name // - /components/schemas/Device.Ipv6Loopback/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Device.Ipv6Loopback/properties/name + // // required = true string source_interface = 1; @@ -4086,6 +4152,10 @@ message RsvpIpv4Interface { // x-constraint: // - /components/schemas/Device.Ipv4/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // // required = true string ipv4_name = 1; @@ -4152,6 +4222,11 @@ message RsvpLspIpv4Interface { // - /components/schemas/Device.Ipv4/properties/name // - /components/schemas/Device.Ipv4Loopback/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv4Loopback/properties/name + // // required = true string ipv4_name = 1; @@ -4558,11 +4633,11 @@ message Flow { // required = true FlowTxRx tx_rx = 1; - // Deprecated: Use flow.ingress_packet instead. + // The list of protocol headers defining the shape of all + // intended packets in corresponding flow as it is transmitted + // by traffic-generator port. // - // The header is a list of traffic protocol headers. - // - // The order of traffic protocol headers assigned to the list is the + // The order of protocol headers assigned to the list is the // order they will appear on the wire. // // In the case of an empty list the keyword/value of minItems: 1 @@ -4574,10 +4649,19 @@ message Flow { // one ethernet packet header. repeated FlowHeader packet = 2; - // Ingress packet - repeated FlowHeader ingress_packet = 8; - - // Egress packets + // Under Review: The packet header schema for egress tracking currently exposes unwanted + // fields. The query structure for tagged metrics inside flows metrics requires documenting + // expected response format. + // + // Under Review: The packet header schema for egress tracking currently exposes unwanted + // fields. The query structure for tagged metrics inside flows metrics requires documenting + // expected response format. + // + // The list of protocol headers defining the shape of all + // intended packets in corresponding flow as it is received + // by traffic-generator port. + // + // For all protocol headers, only the `metric_tags` property is configurable. repeated FlowHeader egress_packet = 9; // The size of the packets. @@ -4635,6 +4719,11 @@ message FlowPort { // - /components/schemas/Port/properties/name // - /components/schemas/Lag/properties/name // + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name + // // required = true string tx_name = 1; @@ -4644,6 +4733,11 @@ message FlowPort { // - /components/schemas/Port/properties/name // - /components/schemas/Lag/properties/name // + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Lag/properties/name + // optional string rx_name = 2; } @@ -4715,6 +4809,18 @@ message FlowRouter { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Bgp.CMacIpRange/properties/name + // - /components/schemas/Rsvp.LspIpv4Interface.P2PIngressIpv4Lsp/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name + // repeated string tx_names = 2; // TBD @@ -4730,6 +4836,18 @@ message FlowRouter { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv6/properties/name + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Bgp.CMacIpRange/properties/name + // - /components/schemas/Rsvp.LspIpv4Interface.P2PEgressIpv4Lsp/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name + // repeated string rx_names = 3; } @@ -4832,23 +4950,28 @@ message FlowCustom { // required = true string bytes = 1; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits + // in a corresponding header field for metrics per each applicable value. + // These would appear as tagged metrics in corresponding flow metrics. repeated FlowCustomMetricTag metric_tags = 2; } -// Description missing in models +// Metric Tag can be used to enable tracking portion of or all bits +// in a corresponding header field for metrics per each applicable value. +// These would appear as tagged metrics in corresponding flow metrics. message FlowCustomMetricTag { - // Globally unique name of an object. It also serves as the primary key for arrays of - // objects. + // Name used to identify the metrics associated with the values applicable + // for configured offset and length inside corresponding header field // required = true string name = 1; - // This is in bits and relative to start of the field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // This is in bits + // Number of bits to track for metrics starting from configured offset + // of corresponding header field // default = 1 optional int32 length = 3; } @@ -5808,6 +5931,12 @@ message EventRequest { // - /components/schemas/Bgp.V4RouteRange/name // - /components/schemas/Bgp.V6RouteRange/name // + // + // x-constraint: + // - /components/schemas/Port/properties/name + // - /components/schemas/Bgp.V4RouteRange/name + // - /components/schemas/Bgp.V6RouteRange/name + // repeated string source = 2; } @@ -5881,6 +6010,10 @@ message LldpConnection { // x-constraint: // - /components/schemas/Port/properties/name // + // + // x-constraint: + // - /components/schemas/Port/properties/name + // optional string port_name = 2; } @@ -6164,6 +6297,8 @@ message StateProtocol { optional StateProtocolLacp lacp = 4; } +// Deprecated: Please use `StatePortLink` instead +// // Deprecated: Please use `StatePortLink` instead // // Sets the link state of configured ports. @@ -6174,6 +6309,10 @@ message LinkState { // x-constraint: // - /components/schemas/Port/properties/name // + // + // x-constraint: + // - /components/schemas/Port/properties/name + // repeated string port_names = 1; message State { @@ -6188,6 +6327,8 @@ message LinkState { State.Enum state = 2; } +// Deprecated: Please use `StateTrafficFlowTransmit` instead +// // Deprecated: Please use `StateTrafficFlowTransmit` instead // // Flow transmit state. @@ -6201,6 +6342,10 @@ message TransmitState { // x-constraint: // - /components/schemas/Flow/properties/name // + // + // x-constraint: + // - /components/schemas/Flow/properties/name + // repeated string flow_names = 1; message State { @@ -6228,6 +6373,8 @@ message TransmitState { State.Enum state = 2; } +// Deprecated: Please use `StatePortCapture` instead +// // Deprecated: Please use `StatePortCapture` instead // // Control port capture state @@ -6241,6 +6388,10 @@ message CaptureState { // x-constraint: // - /components/schemas/Port/properties/name // + // + // x-constraint: + // - /components/schemas/Port/properties/name + // repeated string port_names = 1; message State { @@ -6255,6 +6406,8 @@ message CaptureState { State.Enum state = 2; } +// Deprecated: Please use `StateProtocolRoute` instead +// // Deprecated: Please use `StateProtocolRoute` instead // // Sets the device route state @@ -6269,6 +6422,13 @@ message RouteState { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // + // + // x-constraint: + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name + // repeated string names = 1; message State { @@ -6283,6 +6443,8 @@ message RouteState { State.Enum state = 2; } +// Deprecated: Please use `StateProtocolAll` instead +// // Deprecated: Please use `StateProtocolAll` instead // // Sets all configured protocols to `start` or `stop` state. Setting protocol state @@ -6302,6 +6464,8 @@ message ProtocolState { State.Enum state = 1; } +// Deprecated: Please use `State.Protocol` instead +// // Deprecated: Please use `State.Protocol` instead // // Sets attributes for the requested state/actions to be performed on device(s) @@ -6328,6 +6492,10 @@ message StatePortLink { // x-constraint: // - /components/schemas/Port/properties/name // + // + // x-constraint: + // - /components/schemas/Port/properties/name + // repeated string port_names = 1; message State { @@ -6353,6 +6521,10 @@ message StatePortCapture { // x-constraint: // - /components/schemas/Port/properties/name // + // + // x-constraint: + // - /components/schemas/Port/properties/name + // repeated string port_names = 1; message State { @@ -6378,6 +6550,10 @@ message StateTrafficFlowTransmit { // x-constraint: // - /components/schemas/Flow/properties/name // + // + // x-constraint: + // - /components/schemas/Flow/properties/name + // repeated string flow_names = 1; message State { @@ -6434,6 +6610,13 @@ message StateProtocolRoute { // - /components/schemas/Isis.V4RouteRange/properties/name // - /components/schemas/Isis.V6RouteRange/properties/name // + // + // x-constraint: + // - /components/schemas/Bgp.V4RouteRange/properties/name + // - /components/schemas/Bgp.V6RouteRange/properties/name + // - /components/schemas/Isis.V4RouteRange/properties/name + // - /components/schemas/Isis.V6RouteRange/properties/name + // repeated string names = 1; message State { @@ -6474,6 +6657,10 @@ message StateProtocolLacpAdmin { // x-constraint: // - /components/schemas/Port/properties/name // + // + // x-constraint: + // - /components/schemas/Port/properties/name + // repeated string lag_member_names = 1; message State { @@ -6489,6 +6676,8 @@ message StateProtocolLacpAdmin { optional State.Enum state = 2; } +// Deprecated: Please use `StateProtocolLacpAdmin` instead +// // Deprecated: Please use `StateProtocolLacpAdmin` instead // // Set LACP state for specified LAG Member Port(s). @@ -6500,6 +6689,10 @@ message LacpMemberState { // x-constraint: // - /components/schemas/Port/properties/name // + // + // x-constraint: + // - /components/schemas/Port/properties/name + // repeated string lag_member_port_names = 1; message State { @@ -6647,6 +6840,8 @@ message ActionProtocolIpv4Ping { repeated ActionProtocolIpv4PingRequest requests = 1; } +// Under Review: Most ping request parameters are still TBD. +// // Under Review: Most ping request parameters are still TBD. // // Request for initiating ping between a single source and destination pair. @@ -6659,6 +6854,10 @@ message ActionProtocolIpv4PingRequest { // x-constraint: // - /components/schemas/Device.Ipv4/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // optional string src_name = 1; // Destination IPv4 address to ping. @@ -6680,6 +6879,10 @@ message ActionResponseProtocolIpv4PingResponse { // x-constraint: // - /components/schemas/Device.Ipv4/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // // required = true string src_name = 1; @@ -6740,6 +6943,8 @@ message ActionProtocolIpv6Ping { repeated ActionProtocolIpv6PingRequest requests = 1; } +// Under Review: Most ping request parameters are still TBD. +// // Under Review: Most ping request parameters are still TBD. // // Request for initiating ping between a single source and destination pair. @@ -6752,6 +6957,10 @@ message ActionProtocolIpv6PingRequest { // x-constraint: // - /components/schemas/Device.Ipv6/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // optional string src_name = 1; // Destination IPv6 address to ping. @@ -6773,6 +6982,10 @@ message ActionResponseProtocolIpv6PingResponse { // x-constraint: // - /components/schemas/Device.Ipv6/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // // required = true string src_name = 1; @@ -6828,6 +7041,10 @@ message ActionProtocolBgpNotification { // x-constraint: // - /components/schemas/Device.Bgp/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Bgp/properties/name + // repeated string names = 1; message Choice { @@ -6883,6 +7100,10 @@ message ActionProtocolBgpInitiateGracefulRestart { // x-constraint: // - /components/schemas/Device.Bgp/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Bgp/properties/name + // repeated string peer_names = 1; // Duration (in seconds) after which selected BGP peers will initiate @@ -6921,6 +7142,10 @@ message PingIpv4 { // x-constraint: // - /components/schemas/Device.Ipv4/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // optional string src_name = 1; // IPv4 address to ping @@ -6935,6 +7160,10 @@ message PingIpv6 { // x-constraint: // - /components/schemas/Device.Ipv6/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Ipv6/properties/name + // optional string src_name = 1; // IPv6 addresses to ping. @@ -6964,6 +7193,11 @@ message Response { // - /components/schemas/Device.Ipv4/properties/name // - /components/schemas/Device.Ipv6/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Ipv4/properties/name + // - /components/schemas/Device.Ipv6/properties/name + // optional string src_name = 1; // Destination address. @@ -7088,6 +7322,10 @@ message PortMetricsRequest { // x-constraint: // - /components/schemas/Port/properties/name // + // + // x-constraint: + // - /components/schemas/Port/properties/name + // repeated string port_names = 1; message ColumnNames { @@ -7120,6 +7358,10 @@ message PortMetric { // x-constraint: // - /components/schemas/Port/properties/name // + // + // x-constraint: + // - /components/schemas/Port/properties/name + // optional string name = 1; // The state of the connection to the test port location. The format should be the configured @@ -7191,6 +7433,10 @@ message FlowMetricsRequest { // x-constraint: // - /components/schemas/Flow/properties/name // + // + // x-constraint: + // - /components/schemas/Flow/properties/name + // repeated string flow_names = 1; message MetricNames { @@ -7309,11 +7555,16 @@ message FlowMetric { // Description missing in models optional MetricLatency latency = 14; - // List of tagged metrics + // List of metrics corresponding to a set of values applicable + // for configured metric tags in ingress or egress packet header fields of corresponding + // flow. + // The container is keyed by list of tag-value pairs. repeated FlowTaggedMetric tagged_metrics = 15; } -// A container for tagged flow metrics. The container is keyed by list of tags. +// Metrics for each set of values applicable for configured +// metric tags in ingress or egress packet header fields of corresponding flow. +// The container is keyed by list of tag-value pairs. message FlowTaggedMetric { // List of tag and value pairs @@ -7412,6 +7663,10 @@ message Bgpv4MetricsRequest { // x-constraint: // - /components/schemas/Bgp.V4peer/properties/name // + // + // x-constraint: + // - /components/schemas/Bgp.V4peer/properties/name + // repeated string peer_names = 1; message ColumnNames { @@ -7530,6 +7785,10 @@ message Bgpv6MetricsRequest { // x-constraint: // - /components/schemas/Bgp.V6peer/properties/name // + // + // x-constraint: + // - /components/schemas/Bgp.V6peer/properties/name + // repeated string peer_names = 1; message ColumnNames { @@ -7648,6 +7907,10 @@ message IsisMetricsRequest { // x-constraint: // - /components/schemas/Device.IsisRouter/properties/name // + // + // x-constraint: + // - /components/schemas/Device.IsisRouter/properties/name + // repeated string router_names = 1; message ColumnNames { @@ -7781,6 +8044,10 @@ message LagMetricsRequest { // x-constraint: // - /components/schemas/Lag/properties/name // + // + // x-constraint: + // - /components/schemas/Lag/properties/name + // repeated string lag_names = 1; message ColumnNames { @@ -7811,6 +8078,10 @@ message LagMetric { // x-constraint: // - /components/schemas/Lag/properties/name // + // + // x-constraint: + // - /components/schemas/Lag/properties/name + // optional string name = 1; message OperStatus { @@ -7861,6 +8132,10 @@ message LacpMetricsRequest { // x-constraint: // - /components/schemas/Lag/properties/name // + // + // x-constraint: + // - /components/schemas/Lag/properties/name + // repeated string lag_names = 1; // The names of LAG members (ports) for which LACP metrics to be returned. An empty @@ -7869,6 +8144,10 @@ message LacpMetricsRequest { // x-constraint: // - /components/schemas/Port/properties/name // + // + // x-constraint: + // - /components/schemas/Port/properties/name + // repeated string lag_member_port_names = 2; message ColumnNames { @@ -7985,6 +8264,10 @@ message LldpMetricsRequest { // x-constraint: // - /components/schemas/Lldp/properties/name // + // + // x-constraint: + // - /components/schemas/Lldp/properties/name + // repeated string lldp_names = 1; message ColumnNames { @@ -8047,6 +8330,10 @@ message RsvpMetricsRequest { // x-constraint: // - /components/schemas/Device.Rsvp/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Rsvp/properties/name + // repeated string router_names = 1; message ColumnNames { @@ -8278,6 +8565,10 @@ message Neighborsv4StatesRequest { // x-constraint: // - /components/schemas/Device.Ethernet/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // repeated string ethernet_names = 1; } @@ -8307,6 +8598,10 @@ message Neighborsv6StatesRequest { // x-constraint: // - /components/schemas/Device.Ethernet/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Ethernet/properties/name + // repeated string ethernet_names = 1; } @@ -8337,6 +8632,11 @@ message BgpPrefixStateRequest { // - /components/schemas/Bgp.V4Peer/properties/name // - /components/schemas/Bgp.V6Peer/properties/name // + // + // x-constraint: + // - /components/schemas/Bgp.V4Peer/properties/name + // - /components/schemas/Bgp.V6Peer/properties/name + // repeated string bgp_peer_names = 1; message PrefixFilters { @@ -8568,6 +8868,10 @@ message IsisLspsStateRequest { // x-constraint: // - /components/schemas/Device.IsisRouter/properties/name // + // + // x-constraint: + // - /components/schemas/Device.IsisRouter/properties/name + // repeated string isis_router_names = 1; } @@ -8881,6 +9185,10 @@ message LldpNeighborsStateRequest { // x-constraint: // - /components/schemas/Lldp/properties/name // + // + // x-constraint: + // - /components/schemas/Lldp/properties/name + // repeated string lldp_names = 1; // Specify the neighbors for which information will be returned. If empty or missing @@ -9039,6 +9347,10 @@ message RsvpLspsStateRequest { // x-constraint: // - /components/schemas/Device.Rsvp/properties/name // + // + // x-constraint: + // - /components/schemas/Device.Rsvp/properties/name + // repeated string rsvp_router_names = 1; } @@ -9173,25 +9485,30 @@ message CaptureRequest { // x-constraint: // - /components/schemas/Port/properties/name // + // + // x-constraint: + // - /components/schemas/Port/properties/name + // // required = true string port_name = 1; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowEthernetDstMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 48 optional int32 length = 3; } @@ -9243,7 +9560,9 @@ message PatternFlowEthernetDst { // default = 00:00:00:00:00:00 optional string auto = 4; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowEthernetDstMetricTag metric_tags = 6; // Description missing in models @@ -9253,21 +9572,22 @@ message PatternFlowEthernetDst { optional PatternFlowEthernetDstCounter decrement = 8; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowEthernetSrcMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 48 optional int32 length = 3; } @@ -9312,7 +9632,9 @@ message PatternFlowEthernetSrc { // default = ['00:00:00:00:00:00'] repeated string values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowEthernetSrcMetricTag metric_tags = 5; // Description missing in models @@ -9322,21 +9644,22 @@ message PatternFlowEthernetSrc { optional PatternFlowEthernetSrcCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowEthernetEtherTypeMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -9388,7 +9711,9 @@ message PatternFlowEthernetEtherType { // default = 65535 optional int32 auto = 4; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowEthernetEtherTypeMetricTag metric_tags = 6; // Description missing in models @@ -9398,21 +9723,22 @@ message PatternFlowEthernetEtherType { optional PatternFlowEthernetEtherTypeCounter decrement = 8; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowEthernetPfcQueueMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 3 optional int32 length = 3; } @@ -9457,7 +9783,9 @@ message PatternFlowEthernetPfcQueue { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowEthernetPfcQueueMetricTag metric_tags = 5; // Description missing in models @@ -9467,21 +9795,22 @@ message PatternFlowEthernetPfcQueue { optional PatternFlowEthernetPfcQueueCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowVlanPriorityMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 3 optional int32 length = 3; } @@ -9526,7 +9855,9 @@ message PatternFlowVlanPriority { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowVlanPriorityMetricTag metric_tags = 5; // Description missing in models @@ -9536,21 +9867,22 @@ message PatternFlowVlanPriority { optional PatternFlowVlanPriorityCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowVlanCfiMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -9595,7 +9927,9 @@ message PatternFlowVlanCfi { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowVlanCfiMetricTag metric_tags = 5; // Description missing in models @@ -9605,21 +9939,22 @@ message PatternFlowVlanCfi { optional PatternFlowVlanCfiCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowVlanIdMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 12 optional int32 length = 3; } @@ -9664,7 +9999,9 @@ message PatternFlowVlanId { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowVlanIdMetricTag metric_tags = 5; // Description missing in models @@ -9674,21 +10011,22 @@ message PatternFlowVlanId { optional PatternFlowVlanIdCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowVlanTpidMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -9733,7 +10071,9 @@ message PatternFlowVlanTpid { // default = [33024] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowVlanTpidMetricTag metric_tags = 5; // Description missing in models @@ -9743,21 +10083,22 @@ message PatternFlowVlanTpid { optional PatternFlowVlanTpidCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowVxlanFlagsMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -9804,7 +10145,9 @@ message PatternFlowVxlanFlags { // default = [8] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowVxlanFlagsMetricTag metric_tags = 5; // Description missing in models @@ -9814,21 +10157,22 @@ message PatternFlowVxlanFlags { optional PatternFlowVxlanFlagsCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowVxlanReserved0MetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 24 optional int32 length = 3; } @@ -9873,7 +10217,9 @@ message PatternFlowVxlanReserved0 { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowVxlanReserved0MetricTag metric_tags = 5; // Description missing in models @@ -9883,21 +10229,22 @@ message PatternFlowVxlanReserved0 { optional PatternFlowVxlanReserved0Counter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowVxlanVniMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 24 optional int32 length = 3; } @@ -9949,7 +10296,9 @@ message PatternFlowVxlanVni { // default = 0 optional int32 auto = 4; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowVxlanVniMetricTag metric_tags = 6; // Description missing in models @@ -9959,21 +10308,22 @@ message PatternFlowVxlanVni { optional PatternFlowVxlanVniCounter decrement = 8; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowVxlanReserved1MetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -10018,7 +10368,9 @@ message PatternFlowVxlanReserved1 { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowVxlanReserved1MetricTag metric_tags = 5; // Description missing in models @@ -10028,21 +10380,22 @@ message PatternFlowVxlanReserved1 { optional PatternFlowVxlanReserved1Counter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv4VersionMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 4 optional int32 length = 3; } @@ -10087,7 +10440,9 @@ message PatternFlowIpv4Version { // default = [4] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv4VersionMetricTag metric_tags = 5; // Description missing in models @@ -10097,21 +10452,22 @@ message PatternFlowIpv4Version { optional PatternFlowIpv4VersionCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv4HeaderLengthMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 4 optional int32 length = 3; } @@ -10163,7 +10519,9 @@ message PatternFlowIpv4HeaderLength { // default = 5 optional int32 auto = 4; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv4HeaderLengthMetricTag metric_tags = 6; // Description missing in models @@ -10173,21 +10531,22 @@ message PatternFlowIpv4HeaderLength { optional PatternFlowIpv4HeaderLengthCounter decrement = 8; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv4TotalLengthMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -10239,7 +10598,9 @@ message PatternFlowIpv4TotalLength { // default = 46 optional int32 auto = 4; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv4TotalLengthMetricTag metric_tags = 6; // Description missing in models @@ -10249,21 +10610,22 @@ message PatternFlowIpv4TotalLength { optional PatternFlowIpv4TotalLengthCounter decrement = 8; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv4IdentificationMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -10308,7 +10670,9 @@ message PatternFlowIpv4Identification { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv4IdentificationMetricTag metric_tags = 5; // Description missing in models @@ -10318,21 +10682,22 @@ message PatternFlowIpv4Identification { optional PatternFlowIpv4IdentificationCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv4ReservedMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -10377,7 +10742,9 @@ message PatternFlowIpv4Reserved { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv4ReservedMetricTag metric_tags = 5; // Description missing in models @@ -10387,21 +10754,22 @@ message PatternFlowIpv4Reserved { optional PatternFlowIpv4ReservedCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv4DontFragmentMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -10447,7 +10815,9 @@ message PatternFlowIpv4DontFragment { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv4DontFragmentMetricTag metric_tags = 5; // Description missing in models @@ -10457,21 +10827,22 @@ message PatternFlowIpv4DontFragment { optional PatternFlowIpv4DontFragmentCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv4MoreFragmentsMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -10516,7 +10887,9 @@ message PatternFlowIpv4MoreFragments { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv4MoreFragmentsMetricTag metric_tags = 5; // Description missing in models @@ -10526,21 +10899,22 @@ message PatternFlowIpv4MoreFragments { optional PatternFlowIpv4MoreFragmentsCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv4FragmentOffsetMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 5 optional int32 length = 3; } @@ -10585,7 +10959,9 @@ message PatternFlowIpv4FragmentOffset { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv4FragmentOffsetMetricTag metric_tags = 5; // Description missing in models @@ -10595,21 +10971,22 @@ message PatternFlowIpv4FragmentOffset { optional PatternFlowIpv4FragmentOffsetCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv4TimeToLiveMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -10654,7 +11031,9 @@ message PatternFlowIpv4TimeToLive { // default = [64] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv4TimeToLiveMetricTag metric_tags = 5; // Description missing in models @@ -10664,21 +11043,22 @@ message PatternFlowIpv4TimeToLive { optional PatternFlowIpv4TimeToLiveCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv4ProtocolMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -10730,7 +11110,9 @@ message PatternFlowIpv4Protocol { // default = 61 optional int32 auto = 4; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv4ProtocolMetricTag metric_tags = 6; // Description missing in models @@ -10769,21 +11151,22 @@ message PatternFlowIpv4HeaderChecksum { optional int32 custom = 3; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv4SrcMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 32 optional int32 length = 3; } @@ -10828,7 +11211,9 @@ message PatternFlowIpv4Src { // default = ['0.0.0.0'] repeated string values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv4SrcMetricTag metric_tags = 5; // Description missing in models @@ -10838,21 +11223,22 @@ message PatternFlowIpv4Src { optional PatternFlowIpv4SrcCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv4DstMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 32 optional int32 length = 3; } @@ -10897,7 +11283,9 @@ message PatternFlowIpv4Dst { // default = ['0.0.0.0'] repeated string values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv4DstMetricTag metric_tags = 5; // Description missing in models @@ -10907,21 +11295,22 @@ message PatternFlowIpv4Dst { optional PatternFlowIpv4DstCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv4PriorityRawMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -10966,7 +11355,9 @@ message PatternFlowIpv4PriorityRaw { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv4PriorityRawMetricTag metric_tags = 5; // Description missing in models @@ -10976,21 +11367,22 @@ message PatternFlowIpv4PriorityRaw { optional PatternFlowIpv4PriorityRawCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv4DscpPhbMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 6 optional int32 length = 3; } @@ -11035,7 +11427,9 @@ message PatternFlowIpv4DscpPhb { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv4DscpPhbMetricTag metric_tags = 5; // Description missing in models @@ -11045,21 +11439,22 @@ message PatternFlowIpv4DscpPhb { optional PatternFlowIpv4DscpPhbCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv4DscpEcnMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 2 optional int32 length = 3; } @@ -11104,7 +11499,9 @@ message PatternFlowIpv4DscpEcn { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv4DscpEcnMetricTag metric_tags = 5; // Description missing in models @@ -11114,21 +11511,22 @@ message PatternFlowIpv4DscpEcn { optional PatternFlowIpv4DscpEcnCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv4TosPrecedenceMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 3 optional int32 length = 3; } @@ -11173,7 +11571,9 @@ message PatternFlowIpv4TosPrecedence { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv4TosPrecedenceMetricTag metric_tags = 5; // Description missing in models @@ -11183,21 +11583,22 @@ message PatternFlowIpv4TosPrecedence { optional PatternFlowIpv4TosPrecedenceCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv4TosDelayMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -11242,7 +11643,9 @@ message PatternFlowIpv4TosDelay { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv4TosDelayMetricTag metric_tags = 5; // Description missing in models @@ -11252,21 +11655,22 @@ message PatternFlowIpv4TosDelay { optional PatternFlowIpv4TosDelayCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv4TosThroughputMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -11311,7 +11715,9 @@ message PatternFlowIpv4TosThroughput { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv4TosThroughputMetricTag metric_tags = 5; // Description missing in models @@ -11321,21 +11727,22 @@ message PatternFlowIpv4TosThroughput { optional PatternFlowIpv4TosThroughputCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv4TosReliabilityMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -11380,7 +11787,9 @@ message PatternFlowIpv4TosReliability { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv4TosReliabilityMetricTag metric_tags = 5; // Description missing in models @@ -11390,21 +11799,22 @@ message PatternFlowIpv4TosReliability { optional PatternFlowIpv4TosReliabilityCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv4TosMonetaryMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -11449,7 +11859,9 @@ message PatternFlowIpv4TosMonetary { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv4TosMonetaryMetricTag metric_tags = 5; // Description missing in models @@ -11459,21 +11871,22 @@ message PatternFlowIpv4TosMonetary { optional PatternFlowIpv4TosMonetaryCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv4TosUnusedMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -11518,7 +11931,9 @@ message PatternFlowIpv4TosUnused { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv4TosUnusedMetricTag metric_tags = 5; // Description missing in models @@ -11528,21 +11943,22 @@ message PatternFlowIpv4TosUnused { optional PatternFlowIpv4TosUnusedCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv6VersionMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 4 optional int32 length = 3; } @@ -11587,7 +12003,9 @@ message PatternFlowIpv6Version { // default = [6] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv6VersionMetricTag metric_tags = 5; // Description missing in models @@ -11597,21 +12015,22 @@ message PatternFlowIpv6Version { optional PatternFlowIpv6VersionCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv6TrafficClassMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -11656,7 +12075,9 @@ message PatternFlowIpv6TrafficClass { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv6TrafficClassMetricTag metric_tags = 5; // Description missing in models @@ -11666,21 +12087,22 @@ message PatternFlowIpv6TrafficClass { optional PatternFlowIpv6TrafficClassCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv6FlowLabelMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 20 optional int32 length = 3; } @@ -11725,7 +12147,9 @@ message PatternFlowIpv6FlowLabel { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv6FlowLabelMetricTag metric_tags = 5; // Description missing in models @@ -11735,21 +12159,22 @@ message PatternFlowIpv6FlowLabel { optional PatternFlowIpv6FlowLabelCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv6PayloadLengthMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -11801,7 +12226,9 @@ message PatternFlowIpv6PayloadLength { // default = 0 optional int32 auto = 4; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv6PayloadLengthMetricTag metric_tags = 6; // Description missing in models @@ -11811,21 +12238,22 @@ message PatternFlowIpv6PayloadLength { optional PatternFlowIpv6PayloadLengthCounter decrement = 8; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv6NextHeaderMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -11877,7 +12305,9 @@ message PatternFlowIpv6NextHeader { // default = 59 optional int32 auto = 4; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv6NextHeaderMetricTag metric_tags = 6; // Description missing in models @@ -11887,21 +12317,22 @@ message PatternFlowIpv6NextHeader { optional PatternFlowIpv6NextHeaderCounter decrement = 8; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv6HopLimitMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -11946,7 +12377,9 @@ message PatternFlowIpv6HopLimit { // default = [64] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv6HopLimitMetricTag metric_tags = 5; // Description missing in models @@ -11956,21 +12389,22 @@ message PatternFlowIpv6HopLimit { optional PatternFlowIpv6HopLimitCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv6SrcMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 128 optional int32 length = 3; } @@ -12015,7 +12449,9 @@ message PatternFlowIpv6Src { // default = ['::0'] repeated string values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv6SrcMetricTag metric_tags = 5; // Description missing in models @@ -12025,21 +12461,22 @@ message PatternFlowIpv6Src { optional PatternFlowIpv6SrcCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIpv6DstMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 128 optional int32 length = 3; } @@ -12084,7 +12521,9 @@ message PatternFlowIpv6Dst { // default = ['::0'] repeated string values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIpv6DstMetricTag metric_tags = 5; // Description missing in models @@ -12094,21 +12533,22 @@ message PatternFlowIpv6Dst { optional PatternFlowIpv6DstCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowPfcPauseDstMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 48 optional int32 length = 3; } @@ -12153,7 +12593,9 @@ message PatternFlowPfcPauseDst { // default = ['01:80:c2:00:00:01'] repeated string values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowPfcPauseDstMetricTag metric_tags = 5; // Description missing in models @@ -12163,21 +12605,22 @@ message PatternFlowPfcPauseDst { optional PatternFlowPfcPauseDstCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowPfcPauseSrcMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 48 optional int32 length = 3; } @@ -12222,7 +12665,9 @@ message PatternFlowPfcPauseSrc { // default = ['00:00:00:00:00:00'] repeated string values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowPfcPauseSrcMetricTag metric_tags = 5; // Description missing in models @@ -12232,21 +12677,22 @@ message PatternFlowPfcPauseSrc { optional PatternFlowPfcPauseSrcCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowPfcPauseEtherTypeMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -12291,7 +12737,9 @@ message PatternFlowPfcPauseEtherType { // default = [34824] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowPfcPauseEtherTypeMetricTag metric_tags = 5; // Description missing in models @@ -12301,21 +12749,22 @@ message PatternFlowPfcPauseEtherType { optional PatternFlowPfcPauseEtherTypeCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowPfcPauseControlOpCodeMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -12360,7 +12809,9 @@ message PatternFlowPfcPauseControlOpCode { // default = [257] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowPfcPauseControlOpCodeMetricTag metric_tags = 5; // Description missing in models @@ -12370,21 +12821,22 @@ message PatternFlowPfcPauseControlOpCode { optional PatternFlowPfcPauseControlOpCodeCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowPfcPauseClassEnableVectorMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -12429,7 +12881,9 @@ message PatternFlowPfcPauseClassEnableVector { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowPfcPauseClassEnableVectorMetricTag metric_tags = 5; // Description missing in models @@ -12439,21 +12893,22 @@ message PatternFlowPfcPauseClassEnableVector { optional PatternFlowPfcPauseClassEnableVectorCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowPfcPausePauseClass0MetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -12498,7 +12953,9 @@ message PatternFlowPfcPausePauseClass0 { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowPfcPausePauseClass0MetricTag metric_tags = 5; // Description missing in models @@ -12508,21 +12965,22 @@ message PatternFlowPfcPausePauseClass0 { optional PatternFlowPfcPausePauseClass0Counter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowPfcPausePauseClass1MetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -12567,7 +13025,9 @@ message PatternFlowPfcPausePauseClass1 { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowPfcPausePauseClass1MetricTag metric_tags = 5; // Description missing in models @@ -12577,21 +13037,22 @@ message PatternFlowPfcPausePauseClass1 { optional PatternFlowPfcPausePauseClass1Counter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowPfcPausePauseClass2MetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -12636,7 +13097,9 @@ message PatternFlowPfcPausePauseClass2 { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowPfcPausePauseClass2MetricTag metric_tags = 5; // Description missing in models @@ -12646,21 +13109,22 @@ message PatternFlowPfcPausePauseClass2 { optional PatternFlowPfcPausePauseClass2Counter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowPfcPausePauseClass3MetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -12705,7 +13169,9 @@ message PatternFlowPfcPausePauseClass3 { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowPfcPausePauseClass3MetricTag metric_tags = 5; // Description missing in models @@ -12715,21 +13181,22 @@ message PatternFlowPfcPausePauseClass3 { optional PatternFlowPfcPausePauseClass3Counter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowPfcPausePauseClass4MetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -12774,7 +13241,9 @@ message PatternFlowPfcPausePauseClass4 { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowPfcPausePauseClass4MetricTag metric_tags = 5; // Description missing in models @@ -12784,21 +13253,22 @@ message PatternFlowPfcPausePauseClass4 { optional PatternFlowPfcPausePauseClass4Counter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowPfcPausePauseClass5MetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -12843,7 +13313,9 @@ message PatternFlowPfcPausePauseClass5 { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowPfcPausePauseClass5MetricTag metric_tags = 5; // Description missing in models @@ -12853,21 +13325,22 @@ message PatternFlowPfcPausePauseClass5 { optional PatternFlowPfcPausePauseClass5Counter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowPfcPausePauseClass6MetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -12912,7 +13385,9 @@ message PatternFlowPfcPausePauseClass6 { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowPfcPausePauseClass6MetricTag metric_tags = 5; // Description missing in models @@ -12922,21 +13397,22 @@ message PatternFlowPfcPausePauseClass6 { optional PatternFlowPfcPausePauseClass6Counter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowPfcPausePauseClass7MetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -12981,7 +13457,9 @@ message PatternFlowPfcPausePauseClass7 { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowPfcPausePauseClass7MetricTag metric_tags = 5; // Description missing in models @@ -12991,21 +13469,22 @@ message PatternFlowPfcPausePauseClass7 { optional PatternFlowPfcPausePauseClass7Counter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowEthernetPauseDstMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 48 optional int32 length = 3; } @@ -13050,7 +13529,9 @@ message PatternFlowEthernetPauseDst { // default = ['01:80:c2:00:00:01'] repeated string values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowEthernetPauseDstMetricTag metric_tags = 5; // Description missing in models @@ -13060,21 +13541,22 @@ message PatternFlowEthernetPauseDst { optional PatternFlowEthernetPauseDstCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowEthernetPauseSrcMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 48 optional int32 length = 3; } @@ -13119,7 +13601,9 @@ message PatternFlowEthernetPauseSrc { // default = ['00:00:00:00:00:00'] repeated string values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowEthernetPauseSrcMetricTag metric_tags = 5; // Description missing in models @@ -13129,21 +13613,22 @@ message PatternFlowEthernetPauseSrc { optional PatternFlowEthernetPauseSrcCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowEthernetPauseEtherTypeMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -13188,7 +13673,9 @@ message PatternFlowEthernetPauseEtherType { // default = [34824] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowEthernetPauseEtherTypeMetricTag metric_tags = 5; // Description missing in models @@ -13198,21 +13685,22 @@ message PatternFlowEthernetPauseEtherType { optional PatternFlowEthernetPauseEtherTypeCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowEthernetPauseControlOpCodeMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -13257,7 +13745,9 @@ message PatternFlowEthernetPauseControlOpCode { // default = [1] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowEthernetPauseControlOpCodeMetricTag metric_tags = 5; // Description missing in models @@ -13267,21 +13757,22 @@ message PatternFlowEthernetPauseControlOpCode { optional PatternFlowEthernetPauseControlOpCodeCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowEthernetPauseTimeMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -13326,7 +13817,9 @@ message PatternFlowEthernetPauseTime { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowEthernetPauseTimeMetricTag metric_tags = 5; // Description missing in models @@ -13336,21 +13829,22 @@ message PatternFlowEthernetPauseTime { optional PatternFlowEthernetPauseTimeCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowTcpSrcPortMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -13395,7 +13889,9 @@ message PatternFlowTcpSrcPort { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowTcpSrcPortMetricTag metric_tags = 5; // Description missing in models @@ -13405,21 +13901,22 @@ message PatternFlowTcpSrcPort { optional PatternFlowTcpSrcPortCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowTcpDstPortMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -13464,7 +13961,9 @@ message PatternFlowTcpDstPort { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowTcpDstPortMetricTag metric_tags = 5; // Description missing in models @@ -13474,21 +13973,22 @@ message PatternFlowTcpDstPort { optional PatternFlowTcpDstPortCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowTcpSeqNumMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 32 optional int32 length = 3; } @@ -13533,7 +14033,9 @@ message PatternFlowTcpSeqNum { // default = [0] repeated int64 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowTcpSeqNumMetricTag metric_tags = 5; // Description missing in models @@ -13543,21 +14045,22 @@ message PatternFlowTcpSeqNum { optional PatternFlowTcpSeqNumCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowTcpAckNumMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 32 optional int32 length = 3; } @@ -13602,7 +14105,9 @@ message PatternFlowTcpAckNum { // default = [0] repeated int64 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowTcpAckNumMetricTag metric_tags = 5; // Description missing in models @@ -13612,21 +14117,22 @@ message PatternFlowTcpAckNum { optional PatternFlowTcpAckNumCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowTcpDataOffsetMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 4 optional int32 length = 3; } @@ -13671,7 +14177,9 @@ message PatternFlowTcpDataOffset { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowTcpDataOffsetMetricTag metric_tags = 5; // Description missing in models @@ -13681,21 +14189,22 @@ message PatternFlowTcpDataOffset { optional PatternFlowTcpDataOffsetCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowTcpEcnNsMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -13740,7 +14249,9 @@ message PatternFlowTcpEcnNs { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowTcpEcnNsMetricTag metric_tags = 5; // Description missing in models @@ -13750,21 +14261,22 @@ message PatternFlowTcpEcnNs { optional PatternFlowTcpEcnNsCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowTcpEcnCwrMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -13809,7 +14321,9 @@ message PatternFlowTcpEcnCwr { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowTcpEcnCwrMetricTag metric_tags = 5; // Description missing in models @@ -13819,21 +14333,22 @@ message PatternFlowTcpEcnCwr { optional PatternFlowTcpEcnCwrCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowTcpEcnEchoMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -13879,7 +14394,9 @@ message PatternFlowTcpEcnEcho { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowTcpEcnEchoMetricTag metric_tags = 5; // Description missing in models @@ -13889,21 +14406,22 @@ message PatternFlowTcpEcnEcho { optional PatternFlowTcpEcnEchoCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowTcpCtlUrgMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -13948,7 +14466,9 @@ message PatternFlowTcpCtlUrg { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowTcpCtlUrgMetricTag metric_tags = 5; // Description missing in models @@ -13958,21 +14478,22 @@ message PatternFlowTcpCtlUrg { optional PatternFlowTcpCtlUrgCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowTcpCtlAckMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -14017,7 +14538,9 @@ message PatternFlowTcpCtlAck { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowTcpCtlAckMetricTag metric_tags = 5; // Description missing in models @@ -14027,21 +14550,22 @@ message PatternFlowTcpCtlAck { optional PatternFlowTcpCtlAckCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowTcpCtlPshMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -14086,7 +14610,9 @@ message PatternFlowTcpCtlPsh { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowTcpCtlPshMetricTag metric_tags = 5; // Description missing in models @@ -14096,21 +14622,22 @@ message PatternFlowTcpCtlPsh { optional PatternFlowTcpCtlPshCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowTcpCtlRstMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -14155,7 +14682,9 @@ message PatternFlowTcpCtlRst { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowTcpCtlRstMetricTag metric_tags = 5; // Description missing in models @@ -14165,21 +14694,22 @@ message PatternFlowTcpCtlRst { optional PatternFlowTcpCtlRstCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowTcpCtlSynMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -14224,7 +14754,9 @@ message PatternFlowTcpCtlSyn { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowTcpCtlSynMetricTag metric_tags = 5; // Description missing in models @@ -14234,21 +14766,22 @@ message PatternFlowTcpCtlSyn { optional PatternFlowTcpCtlSynCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowTcpCtlFinMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -14293,7 +14826,9 @@ message PatternFlowTcpCtlFin { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowTcpCtlFinMetricTag metric_tags = 5; // Description missing in models @@ -14303,21 +14838,22 @@ message PatternFlowTcpCtlFin { optional PatternFlowTcpCtlFinCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowTcpWindowMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -14362,7 +14898,9 @@ message PatternFlowTcpWindow { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowTcpWindowMetricTag metric_tags = 5; // Description missing in models @@ -14372,21 +14910,22 @@ message PatternFlowTcpWindow { optional PatternFlowTcpWindowCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowUdpSrcPortMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -14431,7 +14970,9 @@ message PatternFlowUdpSrcPort { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowUdpSrcPortMetricTag metric_tags = 5; // Description missing in models @@ -14441,21 +14982,22 @@ message PatternFlowUdpSrcPort { optional PatternFlowUdpSrcPortCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowUdpDstPortMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -14500,7 +15042,9 @@ message PatternFlowUdpDstPort { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowUdpDstPortMetricTag metric_tags = 5; // Description missing in models @@ -14510,21 +15054,22 @@ message PatternFlowUdpDstPort { optional PatternFlowUdpDstPortCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowUdpLengthMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -14569,7 +15114,9 @@ message PatternFlowUdpLength { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowUdpLengthMetricTag metric_tags = 5; // Description missing in models @@ -14608,21 +15155,22 @@ message PatternFlowUdpChecksum { optional int32 custom = 3; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGreChecksumPresentMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -14667,7 +15215,9 @@ message PatternFlowGreChecksumPresent { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGreChecksumPresentMetricTag metric_tags = 5; // Description missing in models @@ -14677,21 +15227,22 @@ message PatternFlowGreChecksumPresent { optional PatternFlowGreChecksumPresentCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGreReserved0MetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 12 optional int32 length = 3; } @@ -14736,7 +15287,9 @@ message PatternFlowGreReserved0 { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGreReserved0MetricTag metric_tags = 5; // Description missing in models @@ -14746,21 +15299,22 @@ message PatternFlowGreReserved0 { optional PatternFlowGreReserved0Counter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGreVersionMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 3 optional int32 length = 3; } @@ -14805,7 +15359,9 @@ message PatternFlowGreVersion { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGreVersionMetricTag metric_tags = 5; // Description missing in models @@ -14815,21 +15371,22 @@ message PatternFlowGreVersion { optional PatternFlowGreVersionCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGreProtocolMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -14874,7 +15431,9 @@ message PatternFlowGreProtocol { // default = [2048] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGreProtocolMetricTag metric_tags = 5; // Description missing in models @@ -14914,21 +15473,22 @@ message PatternFlowGreChecksum { optional int32 custom = 3; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGreReserved1MetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -14973,7 +15533,9 @@ message PatternFlowGreReserved1 { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGreReserved1MetricTag metric_tags = 5; // Description missing in models @@ -14983,21 +15545,22 @@ message PatternFlowGreReserved1 { optional PatternFlowGreReserved1Counter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpv1VersionMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 3 optional int32 length = 3; } @@ -15042,7 +15605,9 @@ message PatternFlowGtpv1Version { // default = [1] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpv1VersionMetricTag metric_tags = 5; // Description missing in models @@ -15052,21 +15617,22 @@ message PatternFlowGtpv1Version { optional PatternFlowGtpv1VersionCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpv1ProtocolTypeMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -15111,7 +15677,9 @@ message PatternFlowGtpv1ProtocolType { // default = [1] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpv1ProtocolTypeMetricTag metric_tags = 5; // Description missing in models @@ -15121,21 +15689,22 @@ message PatternFlowGtpv1ProtocolType { optional PatternFlowGtpv1ProtocolTypeCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpv1ReservedMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -15180,7 +15749,9 @@ message PatternFlowGtpv1Reserved { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpv1ReservedMetricTag metric_tags = 5; // Description missing in models @@ -15190,21 +15761,22 @@ message PatternFlowGtpv1Reserved { optional PatternFlowGtpv1ReservedCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpv1EFlagMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -15249,7 +15821,9 @@ message PatternFlowGtpv1EFlag { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpv1EFlagMetricTag metric_tags = 5; // Description missing in models @@ -15259,21 +15833,22 @@ message PatternFlowGtpv1EFlag { optional PatternFlowGtpv1EFlagCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpv1SFlagMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -15318,7 +15893,9 @@ message PatternFlowGtpv1SFlag { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpv1SFlagMetricTag metric_tags = 5; // Description missing in models @@ -15328,21 +15905,22 @@ message PatternFlowGtpv1SFlag { optional PatternFlowGtpv1SFlagCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpv1PnFlagMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -15387,7 +15965,9 @@ message PatternFlowGtpv1PnFlag { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpv1PnFlagMetricTag metric_tags = 5; // Description missing in models @@ -15397,21 +15977,22 @@ message PatternFlowGtpv1PnFlag { optional PatternFlowGtpv1PnFlagCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpv1MessageTypeMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -15457,7 +16038,9 @@ message PatternFlowGtpv1MessageType { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpv1MessageTypeMetricTag metric_tags = 5; // Description missing in models @@ -15467,21 +16050,22 @@ message PatternFlowGtpv1MessageType { optional PatternFlowGtpv1MessageTypeCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpv1MessageLengthMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -15527,7 +16111,9 @@ message PatternFlowGtpv1MessageLength { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpv1MessageLengthMetricTag metric_tags = 5; // Description missing in models @@ -15537,21 +16123,22 @@ message PatternFlowGtpv1MessageLength { optional PatternFlowGtpv1MessageLengthCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpv1TeidMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 32 optional int32 length = 3; } @@ -15596,7 +16183,9 @@ message PatternFlowGtpv1Teid { // default = [0] repeated int64 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpv1TeidMetricTag metric_tags = 5; // Description missing in models @@ -15606,21 +16195,22 @@ message PatternFlowGtpv1Teid { optional PatternFlowGtpv1TeidCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpv1SquenceNumberMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -15666,7 +16256,9 @@ message PatternFlowGtpv1SquenceNumber { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpv1SquenceNumberMetricTag metric_tags = 5; // Description missing in models @@ -15676,21 +16268,22 @@ message PatternFlowGtpv1SquenceNumber { optional PatternFlowGtpv1SquenceNumberCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpv1NPduNumberMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -15736,7 +16329,9 @@ message PatternFlowGtpv1NPduNumber { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpv1NPduNumberMetricTag metric_tags = 5; // Description missing in models @@ -15746,21 +16341,22 @@ message PatternFlowGtpv1NPduNumber { optional PatternFlowGtpv1NPduNumberCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpv1NextExtensionHeaderTypeMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -15806,7 +16402,9 @@ message PatternFlowGtpv1NextExtensionHeaderType { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpv1NextExtensionHeaderTypeMetricTag metric_tags = 5; // Description missing in models @@ -15816,21 +16414,22 @@ message PatternFlowGtpv1NextExtensionHeaderType { optional PatternFlowGtpv1NextExtensionHeaderTypeCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpExtensionExtensionLengthMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -15877,7 +16476,9 @@ message PatternFlowGtpExtensionExtensionLength { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpExtensionExtensionLengthMetricTag metric_tags = 5; // Description missing in models @@ -15887,21 +16488,22 @@ message PatternFlowGtpExtensionExtensionLength { optional PatternFlowGtpExtensionExtensionLengthCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpExtensionContentsMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 48 optional int32 length = 3; } @@ -15946,7 +16548,9 @@ message PatternFlowGtpExtensionContents { // default = [0] repeated int64 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpExtensionContentsMetricTag metric_tags = 5; // Description missing in models @@ -15956,21 +16560,22 @@ message PatternFlowGtpExtensionContents { optional PatternFlowGtpExtensionContentsCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpExtensionNextExtensionHeaderMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -16016,7 +16621,9 @@ message PatternFlowGtpExtensionNextExtensionHeader { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpExtensionNextExtensionHeaderMetricTag metric_tags = 5; // Description missing in models @@ -16026,21 +16633,22 @@ message PatternFlowGtpExtensionNextExtensionHeader { optional PatternFlowGtpExtensionNextExtensionHeaderCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpv2VersionMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 3 optional int32 length = 3; } @@ -16085,7 +16693,9 @@ message PatternFlowGtpv2Version { // default = [2] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpv2VersionMetricTag metric_tags = 5; // Description missing in models @@ -16095,21 +16705,22 @@ message PatternFlowGtpv2Version { optional PatternFlowGtpv2VersionCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpv2PiggybackingFlagMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -16155,7 +16766,9 @@ message PatternFlowGtpv2PiggybackingFlag { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpv2PiggybackingFlagMetricTag metric_tags = 5; // Description missing in models @@ -16165,21 +16778,22 @@ message PatternFlowGtpv2PiggybackingFlag { optional PatternFlowGtpv2PiggybackingFlagCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpv2TeidFlagMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -16226,7 +16840,9 @@ message PatternFlowGtpv2TeidFlag { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpv2TeidFlagMetricTag metric_tags = 5; // Description missing in models @@ -16236,21 +16852,22 @@ message PatternFlowGtpv2TeidFlag { optional PatternFlowGtpv2TeidFlagCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpv2Spare1MetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 3 optional int32 length = 3; } @@ -16295,7 +16912,9 @@ message PatternFlowGtpv2Spare1 { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpv2Spare1MetricTag metric_tags = 5; // Description missing in models @@ -16305,21 +16924,22 @@ message PatternFlowGtpv2Spare1 { optional PatternFlowGtpv2Spare1Counter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpv2MessageTypeMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -16365,7 +16985,9 @@ message PatternFlowGtpv2MessageType { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpv2MessageTypeMetricTag metric_tags = 5; // Description missing in models @@ -16375,21 +16997,22 @@ message PatternFlowGtpv2MessageType { optional PatternFlowGtpv2MessageTypeCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpv2MessageLengthMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -16435,7 +17058,9 @@ message PatternFlowGtpv2MessageLength { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpv2MessageLengthMetricTag metric_tags = 5; // Description missing in models @@ -16445,21 +17070,22 @@ message PatternFlowGtpv2MessageLength { optional PatternFlowGtpv2MessageLengthCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpv2TeidMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 32 optional int32 length = 3; } @@ -16505,7 +17131,9 @@ message PatternFlowGtpv2Teid { // default = [0] repeated int64 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpv2TeidMetricTag metric_tags = 5; // Description missing in models @@ -16515,21 +17143,22 @@ message PatternFlowGtpv2Teid { optional PatternFlowGtpv2TeidCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpv2SequenceNumberMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 24 optional int32 length = 3; } @@ -16574,7 +17203,9 @@ message PatternFlowGtpv2SequenceNumber { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpv2SequenceNumberMetricTag metric_tags = 5; // Description missing in models @@ -16584,21 +17215,22 @@ message PatternFlowGtpv2SequenceNumber { optional PatternFlowGtpv2SequenceNumberCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowGtpv2Spare2MetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -16643,7 +17275,9 @@ message PatternFlowGtpv2Spare2 { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowGtpv2Spare2MetricTag metric_tags = 5; // Description missing in models @@ -16653,21 +17287,22 @@ message PatternFlowGtpv2Spare2 { optional PatternFlowGtpv2Spare2Counter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowArpHardwareTypeMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -16712,7 +17347,9 @@ message PatternFlowArpHardwareType { // default = [1] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowArpHardwareTypeMetricTag metric_tags = 5; // Description missing in models @@ -16722,21 +17359,22 @@ message PatternFlowArpHardwareType { optional PatternFlowArpHardwareTypeCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowArpProtocolTypeMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -16781,7 +17419,9 @@ message PatternFlowArpProtocolType { // default = [2048] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowArpProtocolTypeMetricTag metric_tags = 5; // Description missing in models @@ -16791,21 +17431,22 @@ message PatternFlowArpProtocolType { optional PatternFlowArpProtocolTypeCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowArpHardwareLengthMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -16850,7 +17491,9 @@ message PatternFlowArpHardwareLength { // default = [6] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowArpHardwareLengthMetricTag metric_tags = 5; // Description missing in models @@ -16860,21 +17503,22 @@ message PatternFlowArpHardwareLength { optional PatternFlowArpHardwareLengthCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowArpProtocolLengthMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -16919,7 +17563,9 @@ message PatternFlowArpProtocolLength { // default = [4] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowArpProtocolLengthMetricTag metric_tags = 5; // Description missing in models @@ -16929,21 +17575,22 @@ message PatternFlowArpProtocolLength { optional PatternFlowArpProtocolLengthCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowArpOperationMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -16988,7 +17635,9 @@ message PatternFlowArpOperation { // default = [1] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowArpOperationMetricTag metric_tags = 5; // Description missing in models @@ -16998,21 +17647,22 @@ message PatternFlowArpOperation { optional PatternFlowArpOperationCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowArpSenderHardwareAddrMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 48 optional int32 length = 3; } @@ -17057,7 +17707,9 @@ message PatternFlowArpSenderHardwareAddr { // default = ['00:00:00:00:00:00'] repeated string values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowArpSenderHardwareAddrMetricTag metric_tags = 5; // Description missing in models @@ -17067,21 +17719,22 @@ message PatternFlowArpSenderHardwareAddr { optional PatternFlowArpSenderHardwareAddrCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowArpSenderProtocolAddrMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 32 optional int32 length = 3; } @@ -17126,7 +17779,9 @@ message PatternFlowArpSenderProtocolAddr { // default = ['0.0.0.0'] repeated string values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowArpSenderProtocolAddrMetricTag metric_tags = 5; // Description missing in models @@ -17136,21 +17791,22 @@ message PatternFlowArpSenderProtocolAddr { optional PatternFlowArpSenderProtocolAddrCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowArpTargetHardwareAddrMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 48 optional int32 length = 3; } @@ -17195,7 +17851,9 @@ message PatternFlowArpTargetHardwareAddr { // default = ['00:00:00:00:00:00'] repeated string values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowArpTargetHardwareAddrMetricTag metric_tags = 5; // Description missing in models @@ -17205,21 +17863,22 @@ message PatternFlowArpTargetHardwareAddr { optional PatternFlowArpTargetHardwareAddrCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowArpTargetProtocolAddrMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 32 optional int32 length = 3; } @@ -17264,7 +17923,9 @@ message PatternFlowArpTargetProtocolAddr { // default = ['0.0.0.0'] repeated string values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowArpTargetProtocolAddrMetricTag metric_tags = 5; // Description missing in models @@ -17274,21 +17935,22 @@ message PatternFlowArpTargetProtocolAddr { optional PatternFlowArpTargetProtocolAddrCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIcmpEchoTypeMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -17333,7 +17995,9 @@ message PatternFlowIcmpEchoType { // default = [8] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIcmpEchoTypeMetricTag metric_tags = 5; // Description missing in models @@ -17343,21 +18007,22 @@ message PatternFlowIcmpEchoType { optional PatternFlowIcmpEchoTypeCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIcmpEchoCodeMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -17402,7 +18067,9 @@ message PatternFlowIcmpEchoCode { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIcmpEchoCodeMetricTag metric_tags = 5; // Description missing in models @@ -17441,21 +18108,22 @@ message PatternFlowIcmpEchoChecksum { optional int32 custom = 3; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIcmpEchoIdentifierMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -17500,7 +18168,9 @@ message PatternFlowIcmpEchoIdentifier { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIcmpEchoIdentifierMetricTag metric_tags = 5; // Description missing in models @@ -17510,21 +18180,22 @@ message PatternFlowIcmpEchoIdentifier { optional PatternFlowIcmpEchoIdentifierCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIcmpEchoSequenceNumberMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -17569,7 +18240,9 @@ message PatternFlowIcmpEchoSequenceNumber { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIcmpEchoSequenceNumberMetricTag metric_tags = 5; // Description missing in models @@ -17608,21 +18281,22 @@ message PatternFlowIcmpCommonChecksum { optional int32 custom = 3; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIcmpNextFieldsIdentifierMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -17667,7 +18341,9 @@ message PatternFlowIcmpNextFieldsIdentifier { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIcmpNextFieldsIdentifierMetricTag metric_tags = 5; // Description missing in models @@ -17677,21 +18353,22 @@ message PatternFlowIcmpNextFieldsIdentifier { optional PatternFlowIcmpNextFieldsIdentifierCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIcmpNextFieldsSequenceNumberMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -17736,7 +18413,9 @@ message PatternFlowIcmpNextFieldsSequenceNumber { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIcmpNextFieldsSequenceNumberMetricTag metric_tags = 5; // Description missing in models @@ -17746,21 +18425,22 @@ message PatternFlowIcmpNextFieldsSequenceNumber { optional PatternFlowIcmpNextFieldsSequenceNumberCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIcmpv6EchoTypeMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -17805,7 +18485,9 @@ message PatternFlowIcmpv6EchoType { // default = [128] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIcmpv6EchoTypeMetricTag metric_tags = 5; // Description missing in models @@ -17815,21 +18497,22 @@ message PatternFlowIcmpv6EchoType { optional PatternFlowIcmpv6EchoTypeCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIcmpv6EchoCodeMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -17874,7 +18557,9 @@ message PatternFlowIcmpv6EchoCode { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIcmpv6EchoCodeMetricTag metric_tags = 5; // Description missing in models @@ -17884,21 +18569,22 @@ message PatternFlowIcmpv6EchoCode { optional PatternFlowIcmpv6EchoCodeCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIcmpv6EchoIdentifierMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -17943,7 +18629,9 @@ message PatternFlowIcmpv6EchoIdentifier { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIcmpv6EchoIdentifierMetricTag metric_tags = 5; // Description missing in models @@ -17953,21 +18641,22 @@ message PatternFlowIcmpv6EchoIdentifier { optional PatternFlowIcmpv6EchoIdentifierCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIcmpv6EchoSequenceNumberMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -18012,7 +18701,9 @@ message PatternFlowIcmpv6EchoSequenceNumber { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIcmpv6EchoSequenceNumberMetricTag metric_tags = 5; // Description missing in models @@ -18080,21 +18771,22 @@ message PatternFlowIcmpv6CommonChecksum { optional int32 custom = 3; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowPppAddressMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -18139,7 +18831,9 @@ message PatternFlowPppAddress { // default = [255] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowPppAddressMetricTag metric_tags = 5; // Description missing in models @@ -18149,21 +18843,22 @@ message PatternFlowPppAddress { optional PatternFlowPppAddressCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowPppControlMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -18208,7 +18903,9 @@ message PatternFlowPppControl { // default = [3] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowPppControlMetricTag metric_tags = 5; // Description missing in models @@ -18218,21 +18915,22 @@ message PatternFlowPppControl { optional PatternFlowPppControlCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowPppProtocolTypeMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 16 optional int32 length = 3; } @@ -18284,7 +18982,9 @@ message PatternFlowPppProtocolType { // default = 33 optional int32 auto = 4; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowPppProtocolTypeMetricTag metric_tags = 6; // Description missing in models @@ -18294,21 +18994,22 @@ message PatternFlowPppProtocolType { optional PatternFlowPppProtocolTypeCounter decrement = 8; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIgmpv1VersionMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 4 optional int32 length = 3; } @@ -18353,7 +19054,9 @@ message PatternFlowIgmpv1Version { // default = [1] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIgmpv1VersionMetricTag metric_tags = 5; // Description missing in models @@ -18363,21 +19066,22 @@ message PatternFlowIgmpv1Version { optional PatternFlowIgmpv1VersionCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIgmpv1TypeMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 4 optional int32 length = 3; } @@ -18422,7 +19126,9 @@ message PatternFlowIgmpv1Type { // default = [1] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIgmpv1TypeMetricTag metric_tags = 5; // Description missing in models @@ -18432,21 +19138,22 @@ message PatternFlowIgmpv1Type { optional PatternFlowIgmpv1TypeCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIgmpv1UnusedMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -18491,7 +19198,9 @@ message PatternFlowIgmpv1Unused { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIgmpv1UnusedMetricTag metric_tags = 5; // Description missing in models @@ -18530,21 +19239,22 @@ message PatternFlowIgmpv1Checksum { optional int32 custom = 3; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowIgmpv1GroupAddressMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 32 optional int32 length = 3; } @@ -18589,7 +19299,9 @@ message PatternFlowIgmpv1GroupAddress { // default = ['0.0.0.0'] repeated string values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowIgmpv1GroupAddressMetricTag metric_tags = 5; // Description missing in models @@ -18599,21 +19311,22 @@ message PatternFlowIgmpv1GroupAddress { optional PatternFlowIgmpv1GroupAddressCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowMplsLabelMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 20 optional int32 length = 3; } @@ -18665,7 +19378,9 @@ message PatternFlowMplsLabel { // default = 16 optional int32 auto = 4; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowMplsLabelMetricTag metric_tags = 6; // Description missing in models @@ -18675,21 +19390,22 @@ message PatternFlowMplsLabel { optional PatternFlowMplsLabelCounter decrement = 8; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowMplsTrafficClassMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 3 optional int32 length = 3; } @@ -18734,7 +19450,9 @@ message PatternFlowMplsTrafficClass { // default = [0] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowMplsTrafficClassMetricTag metric_tags = 5; // Description missing in models @@ -18744,21 +19462,22 @@ message PatternFlowMplsTrafficClass { optional PatternFlowMplsTrafficClassCounter decrement = 7; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowMplsBottomOfStackMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 1 optional int32 length = 3; } @@ -18810,7 +19529,9 @@ message PatternFlowMplsBottomOfStack { // default = 1 optional int32 auto = 4; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowMplsBottomOfStackMetricTag metric_tags = 6; // Description missing in models @@ -18820,21 +19541,22 @@ message PatternFlowMplsBottomOfStack { optional PatternFlowMplsBottomOfStackCounter decrement = 8; } -// A unique name is used to indicate to the system that the field may extend the metric -// row key and create an aggregate metric row for every unique value. To have metric -// tag columns appear in the flow metric rows the flow metric request allows for the -// metric_tag value to be specified as part of the request. +// Metric tag can be used to enable tracking portion of or all bits in a corresponding +// header field for metrics per each applicable value. These would appear as tagged +// metrics in corresponding flow metrics. message PatternFlowMplsTimeToLiveMetricTag { - // Name used for metric tag + // Name used to identify the metrics associated with the values applicable for configured + // offset and length inside corresponding header field // required = true string name = 1; - // Offset in bits relative to start of field + // Offset in bits relative to start of corresponding header field // default = 0 optional int32 offset = 2; - // Length in bits + // Number of bits to track for metrics starting from configured offset of corresponding + // header field // default = 8 optional int32 length = 3; } @@ -18879,7 +19601,9 @@ message PatternFlowMplsTimeToLive { // default = [64] repeated int32 values = 3; - // Description missing in models + // One or more metric tags can be used to enable tracking portion of or all bits in + // a corresponding header field for metrics per each applicable value. These would appear + // as tagged metrics in corresponding flow metrics. repeated PatternFlowMplsTimeToLiveMetricTag metric_tags = 5; // Description missing in models @@ -19068,6 +19792,8 @@ service Openapi { rpc SetControlAction(SetControlActionRequest) returns (SetControlActionResponse); // Deprecated: Please use `set_control_state` with `traffic.flow_transmit` choice instead // + // Deprecated: Please use `set_control_state` with `traffic.flow_transmit` choice instead + // // Updates the state of configuration resources on the traffic generator. // The Response.Warnings in the Success response is available for implementers to disclose // additional information about a state change including any implicit changes that are @@ -19075,32 +19801,46 @@ service Openapi { rpc SetTransmitState(SetTransmitStateRequest) returns (SetTransmitStateResponse); // Deprecated: Please use `set_control_state` with `port.link` choice instead // + // Deprecated: Please use `set_control_state` with `port.link` choice instead + // // Updates the state of configuration resources on the traffic generator. rpc SetLinkState(SetLinkStateRequest) returns (SetLinkStateResponse); // Deprecated: Please use `set_control_state` with `port.capture` choice instead // + // Deprecated: Please use `set_control_state` with `port.capture` choice instead + // // Updates the state of configuration resources on the traffic generator. rpc SetCaptureState(SetCaptureStateRequest) returns (SetCaptureStateResponse); // Deprecated: Please use `update_config` with `flow` choice instead // + // Deprecated: Please use `update_config` with `flow` choice instead + // // Updates flow properties without disruption of transmit state. rpc UpdateFlows(UpdateFlowsRequest) returns (UpdateFlowsResponse); // Deprecated: Please use `set_control_state` with `protocol.route` choice instead // + // Deprecated: Please use `set_control_state` with `protocol.route` choice instead + // // Updates the state of configuration resources on the traffic generator. rpc SetRouteState(SetRouteStateRequest) returns (SetRouteStateResponse); // Deprecated: Please use `set_control_action` with `protocol.ipv*.ping` choice instead // + // Deprecated: Please use `set_control_action` with `protocol.ipv*.ping` choice instead + // // API to send an IPv4 and/or IPv6 ICMP Echo Request(s) between endpoints. For each // endpoint 1 ping packet will be sent and API shall wait for ping response to either // be successful or timeout. The API wait timeout for each request is 300ms. rpc SendPing(SendPingRequest) returns (SendPingResponse); // Deprecated: Please use `set_control_state` with `protocol.all` choice instead // + // Deprecated: Please use `set_control_state` with `protocol.all` choice instead + // // Sets all configured protocols to `start` or `stop` state. rpc SetProtocolState(SetProtocolStateRequest) returns (SetProtocolStateResponse); // Deprecated: Please use `set_control_state` with `protocol` choice instead // + // Deprecated: Please use `set_control_state` with `protocol` choice instead + // // Set specific state/actions on device configuration resources on the traffic generator. rpc SetDeviceState(SetDeviceStateRequest) returns (SetDeviceStateResponse); // Description missing in models diff --git a/gosnappi/otg/otg_grpc.pb.go b/gosnappi/otg/otg_grpc.pb.go index 15f0022e..895fdc22 100644 --- a/gosnappi/otg/otg_grpc.pb.go +++ b/gosnappi/otg/otg_grpc.pb.go @@ -40,6 +40,8 @@ type OpenapiClient interface { SetControlAction(ctx context.Context, in *SetControlActionRequest, opts ...grpc.CallOption) (*SetControlActionResponse, error) // Deprecated: Please use `set_control_state` with `traffic.flow_transmit` choice instead // + // Deprecated: Please use `set_control_state` with `traffic.flow_transmit` choice instead + // // Updates the state of configuration resources on the traffic generator. // The Response.Warnings in the Success response is available for implementers to disclose // additional information about a state change including any implicit changes that are @@ -47,32 +49,46 @@ type OpenapiClient interface { SetTransmitState(ctx context.Context, in *SetTransmitStateRequest, opts ...grpc.CallOption) (*SetTransmitStateResponse, error) // Deprecated: Please use `set_control_state` with `port.link` choice instead // + // Deprecated: Please use `set_control_state` with `port.link` choice instead + // // Updates the state of configuration resources on the traffic generator. SetLinkState(ctx context.Context, in *SetLinkStateRequest, opts ...grpc.CallOption) (*SetLinkStateResponse, error) // Deprecated: Please use `set_control_state` with `port.capture` choice instead // + // Deprecated: Please use `set_control_state` with `port.capture` choice instead + // // Updates the state of configuration resources on the traffic generator. SetCaptureState(ctx context.Context, in *SetCaptureStateRequest, opts ...grpc.CallOption) (*SetCaptureStateResponse, error) // Deprecated: Please use `update_config` with `flow` choice instead // + // Deprecated: Please use `update_config` with `flow` choice instead + // // Updates flow properties without disruption of transmit state. UpdateFlows(ctx context.Context, in *UpdateFlowsRequest, opts ...grpc.CallOption) (*UpdateFlowsResponse, error) // Deprecated: Please use `set_control_state` with `protocol.route` choice instead // + // Deprecated: Please use `set_control_state` with `protocol.route` choice instead + // // Updates the state of configuration resources on the traffic generator. SetRouteState(ctx context.Context, in *SetRouteStateRequest, opts ...grpc.CallOption) (*SetRouteStateResponse, error) // Deprecated: Please use `set_control_action` with `protocol.ipv*.ping` choice instead // + // Deprecated: Please use `set_control_action` with `protocol.ipv*.ping` choice instead + // // API to send an IPv4 and/or IPv6 ICMP Echo Request(s) between endpoints. For each // endpoint 1 ping packet will be sent and API shall wait for ping response to either // be successful or timeout. The API wait timeout for each request is 300ms. SendPing(ctx context.Context, in *SendPingRequest, opts ...grpc.CallOption) (*SendPingResponse, error) // Deprecated: Please use `set_control_state` with `protocol.all` choice instead // + // Deprecated: Please use `set_control_state` with `protocol.all` choice instead + // // Sets all configured protocols to `start` or `stop` state. SetProtocolState(ctx context.Context, in *SetProtocolStateRequest, opts ...grpc.CallOption) (*SetProtocolStateResponse, error) // Deprecated: Please use `set_control_state` with `protocol` choice instead // + // Deprecated: Please use `set_control_state` with `protocol` choice instead + // // Set specific state/actions on device configuration resources on the traffic generator. SetDeviceState(ctx context.Context, in *SetDeviceStateRequest, opts ...grpc.CallOption) (*SetDeviceStateResponse, error) // Description missing in models @@ -266,6 +282,8 @@ type OpenapiServer interface { SetControlAction(context.Context, *SetControlActionRequest) (*SetControlActionResponse, error) // Deprecated: Please use `set_control_state` with `traffic.flow_transmit` choice instead // + // Deprecated: Please use `set_control_state` with `traffic.flow_transmit` choice instead + // // Updates the state of configuration resources on the traffic generator. // The Response.Warnings in the Success response is available for implementers to disclose // additional information about a state change including any implicit changes that are @@ -273,32 +291,46 @@ type OpenapiServer interface { SetTransmitState(context.Context, *SetTransmitStateRequest) (*SetTransmitStateResponse, error) // Deprecated: Please use `set_control_state` with `port.link` choice instead // + // Deprecated: Please use `set_control_state` with `port.link` choice instead + // // Updates the state of configuration resources on the traffic generator. SetLinkState(context.Context, *SetLinkStateRequest) (*SetLinkStateResponse, error) // Deprecated: Please use `set_control_state` with `port.capture` choice instead // + // Deprecated: Please use `set_control_state` with `port.capture` choice instead + // // Updates the state of configuration resources on the traffic generator. SetCaptureState(context.Context, *SetCaptureStateRequest) (*SetCaptureStateResponse, error) // Deprecated: Please use `update_config` with `flow` choice instead // + // Deprecated: Please use `update_config` with `flow` choice instead + // // Updates flow properties without disruption of transmit state. UpdateFlows(context.Context, *UpdateFlowsRequest) (*UpdateFlowsResponse, error) // Deprecated: Please use `set_control_state` with `protocol.route` choice instead // + // Deprecated: Please use `set_control_state` with `protocol.route` choice instead + // // Updates the state of configuration resources on the traffic generator. SetRouteState(context.Context, *SetRouteStateRequest) (*SetRouteStateResponse, error) // Deprecated: Please use `set_control_action` with `protocol.ipv*.ping` choice instead // + // Deprecated: Please use `set_control_action` with `protocol.ipv*.ping` choice instead + // // API to send an IPv4 and/or IPv6 ICMP Echo Request(s) between endpoints. For each // endpoint 1 ping packet will be sent and API shall wait for ping response to either // be successful or timeout. The API wait timeout for each request is 300ms. SendPing(context.Context, *SendPingRequest) (*SendPingResponse, error) // Deprecated: Please use `set_control_state` with `protocol.all` choice instead // + // Deprecated: Please use `set_control_state` with `protocol.all` choice instead + // // Sets all configured protocols to `start` or `stop` state. SetProtocolState(context.Context, *SetProtocolStateRequest) (*SetProtocolStateResponse, error) // Deprecated: Please use `set_control_state` with `protocol` choice instead // + // Deprecated: Please use `set_control_state` with `protocol` choice instead + // // Set specific state/actions on device configuration resources on the traffic generator. SetDeviceState(context.Context, *SetDeviceStateRequest) (*SetDeviceStateResponse, error) // Description missing in models diff --git a/requirements.txt b/requirements.txt index a1f4212d..dc916a5d 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,11 +1,9 @@ --prefer-binary -grpcio==1.44.0 ; python_version > '2.7' -grpcio==1.35.0 ; python_version == '2.7' -grpcio-tools==1.44.0 ; python_version > '2.7' -grpcio-tools==1.35.0 ; python_version == '2.7' -protobuf==3.15.0 ; python_version <= '3.6' -protobuf==3.20.1 ; python_version > '3.6' -semantic_version +grpcio~=1.44.0 ; python_version > '2.7' +grpcio~=1.35.0 ; python_version == '2.7' +protobuf~=3.20.1 ; python_version > '3.6' +protobuf~=3.15.0 ; python_version <= '3.6' +PyYAML requests +semantic_version urllib3 -PyYAML diff --git a/snappi/__init__.py b/snappi/__init__.py index 294066ab..474df1ed 100644 --- a/snappi/__init__.py +++ b/snappi/__init__.py @@ -186,304 +186,574 @@ from .snappi import FlowRouter from .snappi import FlowHeader from .snappi import FlowCustom +from .snappi import FlowCustomMetricTag +from .snappi import FlowCustomMetricTagIter from .snappi import FlowEthernet from .snappi import PatternFlowEthernetDst +from .snappi import PatternFlowEthernetDstMetricTag +from .snappi import PatternFlowEthernetDstMetricTagIter from .snappi import PatternFlowEthernetDstCounter from .snappi import PatternFlowEthernetSrc +from .snappi import PatternFlowEthernetSrcMetricTag +from .snappi import PatternFlowEthernetSrcMetricTagIter from .snappi import PatternFlowEthernetSrcCounter from .snappi import PatternFlowEthernetEtherType +from .snappi import PatternFlowEthernetEtherTypeMetricTag +from .snappi import PatternFlowEthernetEtherTypeMetricTagIter from .snappi import PatternFlowEthernetEtherTypeCounter from .snappi import PatternFlowEthernetPfcQueue +from .snappi import PatternFlowEthernetPfcQueueMetricTag +from .snappi import PatternFlowEthernetPfcQueueMetricTagIter from .snappi import PatternFlowEthernetPfcQueueCounter from .snappi import FlowVlan from .snappi import PatternFlowVlanPriority +from .snappi import PatternFlowVlanPriorityMetricTag +from .snappi import PatternFlowVlanPriorityMetricTagIter from .snappi import PatternFlowVlanPriorityCounter from .snappi import PatternFlowVlanCfi +from .snappi import PatternFlowVlanCfiMetricTag +from .snappi import PatternFlowVlanCfiMetricTagIter from .snappi import PatternFlowVlanCfiCounter from .snappi import PatternFlowVlanId +from .snappi import PatternFlowVlanIdMetricTag +from .snappi import PatternFlowVlanIdMetricTagIter from .snappi import PatternFlowVlanIdCounter from .snappi import PatternFlowVlanTpid +from .snappi import PatternFlowVlanTpidMetricTag +from .snappi import PatternFlowVlanTpidMetricTagIter from .snappi import PatternFlowVlanTpidCounter from .snappi import FlowVxlan from .snappi import PatternFlowVxlanFlags +from .snappi import PatternFlowVxlanFlagsMetricTag +from .snappi import PatternFlowVxlanFlagsMetricTagIter from .snappi import PatternFlowVxlanFlagsCounter from .snappi import PatternFlowVxlanReserved0 +from .snappi import PatternFlowVxlanReserved0MetricTag +from .snappi import PatternFlowVxlanReserved0MetricTagIter from .snappi import PatternFlowVxlanReserved0Counter from .snappi import PatternFlowVxlanVni +from .snappi import PatternFlowVxlanVniMetricTag +from .snappi import PatternFlowVxlanVniMetricTagIter from .snappi import PatternFlowVxlanVniCounter from .snappi import PatternFlowVxlanReserved1 +from .snappi import PatternFlowVxlanReserved1MetricTag +from .snappi import PatternFlowVxlanReserved1MetricTagIter from .snappi import PatternFlowVxlanReserved1Counter from .snappi import FlowIpv4 from .snappi import PatternFlowIpv4Version +from .snappi import PatternFlowIpv4VersionMetricTag +from .snappi import PatternFlowIpv4VersionMetricTagIter from .snappi import PatternFlowIpv4VersionCounter from .snappi import PatternFlowIpv4HeaderLength +from .snappi import PatternFlowIpv4HeaderLengthMetricTag +from .snappi import PatternFlowIpv4HeaderLengthMetricTagIter from .snappi import PatternFlowIpv4HeaderLengthCounter from .snappi import FlowIpv4Priority from .snappi import PatternFlowIpv4PriorityRaw +from .snappi import PatternFlowIpv4PriorityRawMetricTag +from .snappi import PatternFlowIpv4PriorityRawMetricTagIter from .snappi import PatternFlowIpv4PriorityRawCounter from .snappi import FlowIpv4Tos from .snappi import PatternFlowIpv4TosPrecedence +from .snappi import PatternFlowIpv4TosPrecedenceMetricTag +from .snappi import PatternFlowIpv4TosPrecedenceMetricTagIter from .snappi import PatternFlowIpv4TosPrecedenceCounter from .snappi import PatternFlowIpv4TosDelay +from .snappi import PatternFlowIpv4TosDelayMetricTag +from .snappi import PatternFlowIpv4TosDelayMetricTagIter from .snappi import PatternFlowIpv4TosDelayCounter from .snappi import PatternFlowIpv4TosThroughput +from .snappi import PatternFlowIpv4TosThroughputMetricTag +from .snappi import PatternFlowIpv4TosThroughputMetricTagIter from .snappi import PatternFlowIpv4TosThroughputCounter from .snappi import PatternFlowIpv4TosReliability +from .snappi import PatternFlowIpv4TosReliabilityMetricTag +from .snappi import PatternFlowIpv4TosReliabilityMetricTagIter from .snappi import PatternFlowIpv4TosReliabilityCounter from .snappi import PatternFlowIpv4TosMonetary +from .snappi import PatternFlowIpv4TosMonetaryMetricTag +from .snappi import PatternFlowIpv4TosMonetaryMetricTagIter from .snappi import PatternFlowIpv4TosMonetaryCounter from .snappi import PatternFlowIpv4TosUnused +from .snappi import PatternFlowIpv4TosUnusedMetricTag +from .snappi import PatternFlowIpv4TosUnusedMetricTagIter from .snappi import PatternFlowIpv4TosUnusedCounter from .snappi import FlowIpv4Dscp from .snappi import PatternFlowIpv4DscpPhb +from .snappi import PatternFlowIpv4DscpPhbMetricTag +from .snappi import PatternFlowIpv4DscpPhbMetricTagIter from .snappi import PatternFlowIpv4DscpPhbCounter from .snappi import PatternFlowIpv4DscpEcn +from .snappi import PatternFlowIpv4DscpEcnMetricTag +from .snappi import PatternFlowIpv4DscpEcnMetricTagIter from .snappi import PatternFlowIpv4DscpEcnCounter from .snappi import PatternFlowIpv4TotalLength +from .snappi import PatternFlowIpv4TotalLengthMetricTag +from .snappi import PatternFlowIpv4TotalLengthMetricTagIter from .snappi import PatternFlowIpv4TotalLengthCounter from .snappi import PatternFlowIpv4Identification +from .snappi import PatternFlowIpv4IdentificationMetricTag +from .snappi import PatternFlowIpv4IdentificationMetricTagIter from .snappi import PatternFlowIpv4IdentificationCounter from .snappi import PatternFlowIpv4Reserved +from .snappi import PatternFlowIpv4ReservedMetricTag +from .snappi import PatternFlowIpv4ReservedMetricTagIter from .snappi import PatternFlowIpv4ReservedCounter from .snappi import PatternFlowIpv4DontFragment +from .snappi import PatternFlowIpv4DontFragmentMetricTag +from .snappi import PatternFlowIpv4DontFragmentMetricTagIter from .snappi import PatternFlowIpv4DontFragmentCounter from .snappi import PatternFlowIpv4MoreFragments +from .snappi import PatternFlowIpv4MoreFragmentsMetricTag +from .snappi import PatternFlowIpv4MoreFragmentsMetricTagIter from .snappi import PatternFlowIpv4MoreFragmentsCounter from .snappi import PatternFlowIpv4FragmentOffset +from .snappi import PatternFlowIpv4FragmentOffsetMetricTag +from .snappi import PatternFlowIpv4FragmentOffsetMetricTagIter from .snappi import PatternFlowIpv4FragmentOffsetCounter from .snappi import PatternFlowIpv4TimeToLive +from .snappi import PatternFlowIpv4TimeToLiveMetricTag +from .snappi import PatternFlowIpv4TimeToLiveMetricTagIter from .snappi import PatternFlowIpv4TimeToLiveCounter from .snappi import PatternFlowIpv4Protocol +from .snappi import PatternFlowIpv4ProtocolMetricTag +from .snappi import PatternFlowIpv4ProtocolMetricTagIter from .snappi import PatternFlowIpv4ProtocolCounter from .snappi import PatternFlowIpv4HeaderChecksum from .snappi import PatternFlowIpv4Src +from .snappi import PatternFlowIpv4SrcMetricTag +from .snappi import PatternFlowIpv4SrcMetricTagIter from .snappi import PatternFlowIpv4SrcCounter from .snappi import PatternFlowIpv4Dst +from .snappi import PatternFlowIpv4DstMetricTag +from .snappi import PatternFlowIpv4DstMetricTagIter from .snappi import PatternFlowIpv4DstCounter from .snappi import FlowIpv6 from .snappi import PatternFlowIpv6Version +from .snappi import PatternFlowIpv6VersionMetricTag +from .snappi import PatternFlowIpv6VersionMetricTagIter from .snappi import PatternFlowIpv6VersionCounter from .snappi import PatternFlowIpv6TrafficClass +from .snappi import PatternFlowIpv6TrafficClassMetricTag +from .snappi import PatternFlowIpv6TrafficClassMetricTagIter from .snappi import PatternFlowIpv6TrafficClassCounter from .snappi import PatternFlowIpv6FlowLabel +from .snappi import PatternFlowIpv6FlowLabelMetricTag +from .snappi import PatternFlowIpv6FlowLabelMetricTagIter from .snappi import PatternFlowIpv6FlowLabelCounter from .snappi import PatternFlowIpv6PayloadLength +from .snappi import PatternFlowIpv6PayloadLengthMetricTag +from .snappi import PatternFlowIpv6PayloadLengthMetricTagIter from .snappi import PatternFlowIpv6PayloadLengthCounter from .snappi import PatternFlowIpv6NextHeader +from .snappi import PatternFlowIpv6NextHeaderMetricTag +from .snappi import PatternFlowIpv6NextHeaderMetricTagIter from .snappi import PatternFlowIpv6NextHeaderCounter from .snappi import PatternFlowIpv6HopLimit +from .snappi import PatternFlowIpv6HopLimitMetricTag +from .snappi import PatternFlowIpv6HopLimitMetricTagIter from .snappi import PatternFlowIpv6HopLimitCounter from .snappi import PatternFlowIpv6Src +from .snappi import PatternFlowIpv6SrcMetricTag +from .snappi import PatternFlowIpv6SrcMetricTagIter from .snappi import PatternFlowIpv6SrcCounter from .snappi import PatternFlowIpv6Dst +from .snappi import PatternFlowIpv6DstMetricTag +from .snappi import PatternFlowIpv6DstMetricTagIter from .snappi import PatternFlowIpv6DstCounter from .snappi import FlowPfcPause from .snappi import PatternFlowPfcPauseDst +from .snappi import PatternFlowPfcPauseDstMetricTag +from .snappi import PatternFlowPfcPauseDstMetricTagIter from .snappi import PatternFlowPfcPauseDstCounter from .snappi import PatternFlowPfcPauseSrc +from .snappi import PatternFlowPfcPauseSrcMetricTag +from .snappi import PatternFlowPfcPauseSrcMetricTagIter from .snappi import PatternFlowPfcPauseSrcCounter from .snappi import PatternFlowPfcPauseEtherType +from .snappi import PatternFlowPfcPauseEtherTypeMetricTag +from .snappi import PatternFlowPfcPauseEtherTypeMetricTagIter from .snappi import PatternFlowPfcPauseEtherTypeCounter from .snappi import PatternFlowPfcPauseControlOpCode +from .snappi import PatternFlowPfcPauseControlOpCodeMetricTag +from .snappi import PatternFlowPfcPauseControlOpCodeMetricTagIter from .snappi import PatternFlowPfcPauseControlOpCodeCounter from .snappi import PatternFlowPfcPauseClassEnableVector +from .snappi import PatternFlowPfcPauseClassEnableVectorMetricTag +from .snappi import PatternFlowPfcPauseClassEnableVectorMetricTagIter from .snappi import PatternFlowPfcPauseClassEnableVectorCounter from .snappi import PatternFlowPfcPausePauseClass0 +from .snappi import PatternFlowPfcPausePauseClass0MetricTag +from .snappi import PatternFlowPfcPausePauseClass0MetricTagIter from .snappi import PatternFlowPfcPausePauseClass0Counter from .snappi import PatternFlowPfcPausePauseClass1 +from .snappi import PatternFlowPfcPausePauseClass1MetricTag +from .snappi import PatternFlowPfcPausePauseClass1MetricTagIter from .snappi import PatternFlowPfcPausePauseClass1Counter from .snappi import PatternFlowPfcPausePauseClass2 +from .snappi import PatternFlowPfcPausePauseClass2MetricTag +from .snappi import PatternFlowPfcPausePauseClass2MetricTagIter from .snappi import PatternFlowPfcPausePauseClass2Counter from .snappi import PatternFlowPfcPausePauseClass3 +from .snappi import PatternFlowPfcPausePauseClass3MetricTag +from .snappi import PatternFlowPfcPausePauseClass3MetricTagIter from .snappi import PatternFlowPfcPausePauseClass3Counter from .snappi import PatternFlowPfcPausePauseClass4 +from .snappi import PatternFlowPfcPausePauseClass4MetricTag +from .snappi import PatternFlowPfcPausePauseClass4MetricTagIter from .snappi import PatternFlowPfcPausePauseClass4Counter from .snappi import PatternFlowPfcPausePauseClass5 +from .snappi import PatternFlowPfcPausePauseClass5MetricTag +from .snappi import PatternFlowPfcPausePauseClass5MetricTagIter from .snappi import PatternFlowPfcPausePauseClass5Counter from .snappi import PatternFlowPfcPausePauseClass6 +from .snappi import PatternFlowPfcPausePauseClass6MetricTag +from .snappi import PatternFlowPfcPausePauseClass6MetricTagIter from .snappi import PatternFlowPfcPausePauseClass6Counter from .snappi import PatternFlowPfcPausePauseClass7 +from .snappi import PatternFlowPfcPausePauseClass7MetricTag +from .snappi import PatternFlowPfcPausePauseClass7MetricTagIter from .snappi import PatternFlowPfcPausePauseClass7Counter from .snappi import FlowEthernetPause from .snappi import PatternFlowEthernetPauseDst +from .snappi import PatternFlowEthernetPauseDstMetricTag +from .snappi import PatternFlowEthernetPauseDstMetricTagIter from .snappi import PatternFlowEthernetPauseDstCounter from .snappi import PatternFlowEthernetPauseSrc +from .snappi import PatternFlowEthernetPauseSrcMetricTag +from .snappi import PatternFlowEthernetPauseSrcMetricTagIter from .snappi import PatternFlowEthernetPauseSrcCounter from .snappi import PatternFlowEthernetPauseEtherType +from .snappi import PatternFlowEthernetPauseEtherTypeMetricTag +from .snappi import PatternFlowEthernetPauseEtherTypeMetricTagIter from .snappi import PatternFlowEthernetPauseEtherTypeCounter from .snappi import PatternFlowEthernetPauseControlOpCode +from .snappi import PatternFlowEthernetPauseControlOpCodeMetricTag +from .snappi import PatternFlowEthernetPauseControlOpCodeMetricTagIter from .snappi import PatternFlowEthernetPauseControlOpCodeCounter from .snappi import PatternFlowEthernetPauseTime +from .snappi import PatternFlowEthernetPauseTimeMetricTag +from .snappi import PatternFlowEthernetPauseTimeMetricTagIter from .snappi import PatternFlowEthernetPauseTimeCounter from .snappi import FlowTcp from .snappi import PatternFlowTcpSrcPort +from .snappi import PatternFlowTcpSrcPortMetricTag +from .snappi import PatternFlowTcpSrcPortMetricTagIter from .snappi import PatternFlowTcpSrcPortCounter from .snappi import PatternFlowTcpDstPort +from .snappi import PatternFlowTcpDstPortMetricTag +from .snappi import PatternFlowTcpDstPortMetricTagIter from .snappi import PatternFlowTcpDstPortCounter from .snappi import PatternFlowTcpSeqNum +from .snappi import PatternFlowTcpSeqNumMetricTag +from .snappi import PatternFlowTcpSeqNumMetricTagIter from .snappi import PatternFlowTcpSeqNumCounter from .snappi import PatternFlowTcpAckNum +from .snappi import PatternFlowTcpAckNumMetricTag +from .snappi import PatternFlowTcpAckNumMetricTagIter from .snappi import PatternFlowTcpAckNumCounter from .snappi import PatternFlowTcpDataOffset +from .snappi import PatternFlowTcpDataOffsetMetricTag +from .snappi import PatternFlowTcpDataOffsetMetricTagIter from .snappi import PatternFlowTcpDataOffsetCounter from .snappi import PatternFlowTcpEcnNs +from .snappi import PatternFlowTcpEcnNsMetricTag +from .snappi import PatternFlowTcpEcnNsMetricTagIter from .snappi import PatternFlowTcpEcnNsCounter from .snappi import PatternFlowTcpEcnCwr +from .snappi import PatternFlowTcpEcnCwrMetricTag +from .snappi import PatternFlowTcpEcnCwrMetricTagIter from .snappi import PatternFlowTcpEcnCwrCounter from .snappi import PatternFlowTcpEcnEcho +from .snappi import PatternFlowTcpEcnEchoMetricTag +from .snappi import PatternFlowTcpEcnEchoMetricTagIter from .snappi import PatternFlowTcpEcnEchoCounter from .snappi import PatternFlowTcpCtlUrg +from .snappi import PatternFlowTcpCtlUrgMetricTag +from .snappi import PatternFlowTcpCtlUrgMetricTagIter from .snappi import PatternFlowTcpCtlUrgCounter from .snappi import PatternFlowTcpCtlAck +from .snappi import PatternFlowTcpCtlAckMetricTag +from .snappi import PatternFlowTcpCtlAckMetricTagIter from .snappi import PatternFlowTcpCtlAckCounter from .snappi import PatternFlowTcpCtlPsh +from .snappi import PatternFlowTcpCtlPshMetricTag +from .snappi import PatternFlowTcpCtlPshMetricTagIter from .snappi import PatternFlowTcpCtlPshCounter from .snappi import PatternFlowTcpCtlRst +from .snappi import PatternFlowTcpCtlRstMetricTag +from .snappi import PatternFlowTcpCtlRstMetricTagIter from .snappi import PatternFlowTcpCtlRstCounter from .snappi import PatternFlowTcpCtlSyn +from .snappi import PatternFlowTcpCtlSynMetricTag +from .snappi import PatternFlowTcpCtlSynMetricTagIter from .snappi import PatternFlowTcpCtlSynCounter from .snappi import PatternFlowTcpCtlFin +from .snappi import PatternFlowTcpCtlFinMetricTag +from .snappi import PatternFlowTcpCtlFinMetricTagIter from .snappi import PatternFlowTcpCtlFinCounter from .snappi import PatternFlowTcpWindow +from .snappi import PatternFlowTcpWindowMetricTag +from .snappi import PatternFlowTcpWindowMetricTagIter from .snappi import PatternFlowTcpWindowCounter from .snappi import FlowUdp from .snappi import PatternFlowUdpSrcPort +from .snappi import PatternFlowUdpSrcPortMetricTag +from .snappi import PatternFlowUdpSrcPortMetricTagIter from .snappi import PatternFlowUdpSrcPortCounter from .snappi import PatternFlowUdpDstPort +from .snappi import PatternFlowUdpDstPortMetricTag +from .snappi import PatternFlowUdpDstPortMetricTagIter from .snappi import PatternFlowUdpDstPortCounter from .snappi import PatternFlowUdpLength +from .snappi import PatternFlowUdpLengthMetricTag +from .snappi import PatternFlowUdpLengthMetricTagIter from .snappi import PatternFlowUdpLengthCounter from .snappi import PatternFlowUdpChecksum from .snappi import FlowGre from .snappi import PatternFlowGreChecksumPresent +from .snappi import PatternFlowGreChecksumPresentMetricTag +from .snappi import PatternFlowGreChecksumPresentMetricTagIter from .snappi import PatternFlowGreChecksumPresentCounter from .snappi import PatternFlowGreReserved0 +from .snappi import PatternFlowGreReserved0MetricTag +from .snappi import PatternFlowGreReserved0MetricTagIter from .snappi import PatternFlowGreReserved0Counter from .snappi import PatternFlowGreVersion +from .snappi import PatternFlowGreVersionMetricTag +from .snappi import PatternFlowGreVersionMetricTagIter from .snappi import PatternFlowGreVersionCounter from .snappi import PatternFlowGreProtocol +from .snappi import PatternFlowGreProtocolMetricTag +from .snappi import PatternFlowGreProtocolMetricTagIter from .snappi import PatternFlowGreProtocolCounter from .snappi import PatternFlowGreChecksum from .snappi import PatternFlowGreReserved1 +from .snappi import PatternFlowGreReserved1MetricTag +from .snappi import PatternFlowGreReserved1MetricTagIter from .snappi import PatternFlowGreReserved1Counter from .snappi import FlowGtpv1 from .snappi import PatternFlowGtpv1Version +from .snappi import PatternFlowGtpv1VersionMetricTag +from .snappi import PatternFlowGtpv1VersionMetricTagIter from .snappi import PatternFlowGtpv1VersionCounter from .snappi import PatternFlowGtpv1ProtocolType +from .snappi import PatternFlowGtpv1ProtocolTypeMetricTag +from .snappi import PatternFlowGtpv1ProtocolTypeMetricTagIter from .snappi import PatternFlowGtpv1ProtocolTypeCounter from .snappi import PatternFlowGtpv1Reserved +from .snappi import PatternFlowGtpv1ReservedMetricTag +from .snappi import PatternFlowGtpv1ReservedMetricTagIter from .snappi import PatternFlowGtpv1ReservedCounter from .snappi import PatternFlowGtpv1EFlag +from .snappi import PatternFlowGtpv1EFlagMetricTag +from .snappi import PatternFlowGtpv1EFlagMetricTagIter from .snappi import PatternFlowGtpv1EFlagCounter from .snappi import PatternFlowGtpv1SFlag +from .snappi import PatternFlowGtpv1SFlagMetricTag +from .snappi import PatternFlowGtpv1SFlagMetricTagIter from .snappi import PatternFlowGtpv1SFlagCounter from .snappi import PatternFlowGtpv1PnFlag +from .snappi import PatternFlowGtpv1PnFlagMetricTag +from .snappi import PatternFlowGtpv1PnFlagMetricTagIter from .snappi import PatternFlowGtpv1PnFlagCounter from .snappi import PatternFlowGtpv1MessageType +from .snappi import PatternFlowGtpv1MessageTypeMetricTag +from .snappi import PatternFlowGtpv1MessageTypeMetricTagIter from .snappi import PatternFlowGtpv1MessageTypeCounter from .snappi import PatternFlowGtpv1MessageLength +from .snappi import PatternFlowGtpv1MessageLengthMetricTag +from .snappi import PatternFlowGtpv1MessageLengthMetricTagIter from .snappi import PatternFlowGtpv1MessageLengthCounter from .snappi import PatternFlowGtpv1Teid +from .snappi import PatternFlowGtpv1TeidMetricTag +from .snappi import PatternFlowGtpv1TeidMetricTagIter from .snappi import PatternFlowGtpv1TeidCounter from .snappi import PatternFlowGtpv1SquenceNumber +from .snappi import PatternFlowGtpv1SquenceNumberMetricTag +from .snappi import PatternFlowGtpv1SquenceNumberMetricTagIter from .snappi import PatternFlowGtpv1SquenceNumberCounter from .snappi import PatternFlowGtpv1NPduNumber +from .snappi import PatternFlowGtpv1NPduNumberMetricTag +from .snappi import PatternFlowGtpv1NPduNumberMetricTagIter from .snappi import PatternFlowGtpv1NPduNumberCounter from .snappi import PatternFlowGtpv1NextExtensionHeaderType +from .snappi import PatternFlowGtpv1NextExtensionHeaderTypeMetricTag +from .snappi import PatternFlowGtpv1NextExtensionHeaderTypeMetricTagIter from .snappi import PatternFlowGtpv1NextExtensionHeaderTypeCounter from .snappi import FlowGtpExtension from .snappi import PatternFlowGtpExtensionExtensionLength +from .snappi import PatternFlowGtpExtensionExtensionLengthMetricTag +from .snappi import PatternFlowGtpExtensionExtensionLengthMetricTagIter from .snappi import PatternFlowGtpExtensionExtensionLengthCounter from .snappi import PatternFlowGtpExtensionContents +from .snappi import PatternFlowGtpExtensionContentsMetricTag +from .snappi import PatternFlowGtpExtensionContentsMetricTagIter from .snappi import PatternFlowGtpExtensionContentsCounter from .snappi import PatternFlowGtpExtensionNextExtensionHeader +from .snappi import PatternFlowGtpExtensionNextExtensionHeaderMetricTag +from .snappi import PatternFlowGtpExtensionNextExtensionHeaderMetricTagIter from .snappi import PatternFlowGtpExtensionNextExtensionHeaderCounter from .snappi import FlowGtpExtensionIter from .snappi import FlowGtpv2 from .snappi import PatternFlowGtpv2Version +from .snappi import PatternFlowGtpv2VersionMetricTag +from .snappi import PatternFlowGtpv2VersionMetricTagIter from .snappi import PatternFlowGtpv2VersionCounter from .snappi import PatternFlowGtpv2PiggybackingFlag +from .snappi import PatternFlowGtpv2PiggybackingFlagMetricTag +from .snappi import PatternFlowGtpv2PiggybackingFlagMetricTagIter from .snappi import PatternFlowGtpv2PiggybackingFlagCounter from .snappi import PatternFlowGtpv2TeidFlag +from .snappi import PatternFlowGtpv2TeidFlagMetricTag +from .snappi import PatternFlowGtpv2TeidFlagMetricTagIter from .snappi import PatternFlowGtpv2TeidFlagCounter from .snappi import PatternFlowGtpv2Spare1 +from .snappi import PatternFlowGtpv2Spare1MetricTag +from .snappi import PatternFlowGtpv2Spare1MetricTagIter from .snappi import PatternFlowGtpv2Spare1Counter from .snappi import PatternFlowGtpv2MessageType +from .snappi import PatternFlowGtpv2MessageTypeMetricTag +from .snappi import PatternFlowGtpv2MessageTypeMetricTagIter from .snappi import PatternFlowGtpv2MessageTypeCounter from .snappi import PatternFlowGtpv2MessageLength +from .snappi import PatternFlowGtpv2MessageLengthMetricTag +from .snappi import PatternFlowGtpv2MessageLengthMetricTagIter from .snappi import PatternFlowGtpv2MessageLengthCounter from .snappi import PatternFlowGtpv2Teid +from .snappi import PatternFlowGtpv2TeidMetricTag +from .snappi import PatternFlowGtpv2TeidMetricTagIter from .snappi import PatternFlowGtpv2TeidCounter from .snappi import PatternFlowGtpv2SequenceNumber +from .snappi import PatternFlowGtpv2SequenceNumberMetricTag +from .snappi import PatternFlowGtpv2SequenceNumberMetricTagIter from .snappi import PatternFlowGtpv2SequenceNumberCounter from .snappi import PatternFlowGtpv2Spare2 +from .snappi import PatternFlowGtpv2Spare2MetricTag +from .snappi import PatternFlowGtpv2Spare2MetricTagIter from .snappi import PatternFlowGtpv2Spare2Counter from .snappi import FlowArp from .snappi import PatternFlowArpHardwareType +from .snappi import PatternFlowArpHardwareTypeMetricTag +from .snappi import PatternFlowArpHardwareTypeMetricTagIter from .snappi import PatternFlowArpHardwareTypeCounter from .snappi import PatternFlowArpProtocolType +from .snappi import PatternFlowArpProtocolTypeMetricTag +from .snappi import PatternFlowArpProtocolTypeMetricTagIter from .snappi import PatternFlowArpProtocolTypeCounter from .snappi import PatternFlowArpHardwareLength +from .snappi import PatternFlowArpHardwareLengthMetricTag +from .snappi import PatternFlowArpHardwareLengthMetricTagIter from .snappi import PatternFlowArpHardwareLengthCounter from .snappi import PatternFlowArpProtocolLength +from .snappi import PatternFlowArpProtocolLengthMetricTag +from .snappi import PatternFlowArpProtocolLengthMetricTagIter from .snappi import PatternFlowArpProtocolLengthCounter from .snappi import PatternFlowArpOperation +from .snappi import PatternFlowArpOperationMetricTag +from .snappi import PatternFlowArpOperationMetricTagIter from .snappi import PatternFlowArpOperationCounter from .snappi import PatternFlowArpSenderHardwareAddr +from .snappi import PatternFlowArpSenderHardwareAddrMetricTag +from .snappi import PatternFlowArpSenderHardwareAddrMetricTagIter from .snappi import PatternFlowArpSenderHardwareAddrCounter from .snappi import PatternFlowArpSenderProtocolAddr +from .snappi import PatternFlowArpSenderProtocolAddrMetricTag +from .snappi import PatternFlowArpSenderProtocolAddrMetricTagIter from .snappi import PatternFlowArpSenderProtocolAddrCounter from .snappi import PatternFlowArpTargetHardwareAddr +from .snappi import PatternFlowArpTargetHardwareAddrMetricTag +from .snappi import PatternFlowArpTargetHardwareAddrMetricTagIter from .snappi import PatternFlowArpTargetHardwareAddrCounter from .snappi import PatternFlowArpTargetProtocolAddr +from .snappi import PatternFlowArpTargetProtocolAddrMetricTag +from .snappi import PatternFlowArpTargetProtocolAddrMetricTagIter from .snappi import PatternFlowArpTargetProtocolAddrCounter from .snappi import FlowIcmp from .snappi import FlowIcmpEcho from .snappi import PatternFlowIcmpEchoType +from .snappi import PatternFlowIcmpEchoTypeMetricTag +from .snappi import PatternFlowIcmpEchoTypeMetricTagIter from .snappi import PatternFlowIcmpEchoTypeCounter from .snappi import PatternFlowIcmpEchoCode +from .snappi import PatternFlowIcmpEchoCodeMetricTag +from .snappi import PatternFlowIcmpEchoCodeMetricTagIter from .snappi import PatternFlowIcmpEchoCodeCounter from .snappi import PatternFlowIcmpEchoChecksum from .snappi import PatternFlowIcmpEchoIdentifier +from .snappi import PatternFlowIcmpEchoIdentifierMetricTag +from .snappi import PatternFlowIcmpEchoIdentifierMetricTagIter from .snappi import PatternFlowIcmpEchoIdentifierCounter from .snappi import PatternFlowIcmpEchoSequenceNumber +from .snappi import PatternFlowIcmpEchoSequenceNumberMetricTag +from .snappi import PatternFlowIcmpEchoSequenceNumberMetricTagIter from .snappi import PatternFlowIcmpEchoSequenceNumberCounter from .snappi import FlowIcmpv6 from .snappi import FlowIcmpv6Echo from .snappi import PatternFlowIcmpv6EchoType +from .snappi import PatternFlowIcmpv6EchoTypeMetricTag +from .snappi import PatternFlowIcmpv6EchoTypeMetricTagIter from .snappi import PatternFlowIcmpv6EchoTypeCounter from .snappi import PatternFlowIcmpv6EchoCode +from .snappi import PatternFlowIcmpv6EchoCodeMetricTag +from .snappi import PatternFlowIcmpv6EchoCodeMetricTagIter from .snappi import PatternFlowIcmpv6EchoCodeCounter from .snappi import PatternFlowIcmpv6EchoIdentifier +from .snappi import PatternFlowIcmpv6EchoIdentifierMetricTag +from .snappi import PatternFlowIcmpv6EchoIdentifierMetricTagIter from .snappi import PatternFlowIcmpv6EchoIdentifierCounter from .snappi import PatternFlowIcmpv6EchoSequenceNumber +from .snappi import PatternFlowIcmpv6EchoSequenceNumberMetricTag +from .snappi import PatternFlowIcmpv6EchoSequenceNumberMetricTagIter from .snappi import PatternFlowIcmpv6EchoSequenceNumberCounter from .snappi import PatternFlowIcmpv6EchoChecksum from .snappi import FlowPpp from .snappi import PatternFlowPppAddress +from .snappi import PatternFlowPppAddressMetricTag +from .snappi import PatternFlowPppAddressMetricTagIter from .snappi import PatternFlowPppAddressCounter from .snappi import PatternFlowPppControl +from .snappi import PatternFlowPppControlMetricTag +from .snappi import PatternFlowPppControlMetricTagIter from .snappi import PatternFlowPppControlCounter from .snappi import PatternFlowPppProtocolType +from .snappi import PatternFlowPppProtocolTypeMetricTag +from .snappi import PatternFlowPppProtocolTypeMetricTagIter from .snappi import PatternFlowPppProtocolTypeCounter from .snappi import FlowIgmpv1 from .snappi import PatternFlowIgmpv1Version +from .snappi import PatternFlowIgmpv1VersionMetricTag +from .snappi import PatternFlowIgmpv1VersionMetricTagIter from .snappi import PatternFlowIgmpv1VersionCounter from .snappi import PatternFlowIgmpv1Type +from .snappi import PatternFlowIgmpv1TypeMetricTag +from .snappi import PatternFlowIgmpv1TypeMetricTagIter from .snappi import PatternFlowIgmpv1TypeCounter from .snappi import PatternFlowIgmpv1Unused +from .snappi import PatternFlowIgmpv1UnusedMetricTag +from .snappi import PatternFlowIgmpv1UnusedMetricTagIter from .snappi import PatternFlowIgmpv1UnusedCounter from .snappi import PatternFlowIgmpv1Checksum from .snappi import PatternFlowIgmpv1GroupAddress +from .snappi import PatternFlowIgmpv1GroupAddressMetricTag +from .snappi import PatternFlowIgmpv1GroupAddressMetricTagIter from .snappi import PatternFlowIgmpv1GroupAddressCounter from .snappi import FlowMpls from .snappi import PatternFlowMplsLabel +from .snappi import PatternFlowMplsLabelMetricTag +from .snappi import PatternFlowMplsLabelMetricTagIter from .snappi import PatternFlowMplsLabelCounter from .snappi import PatternFlowMplsTrafficClass +from .snappi import PatternFlowMplsTrafficClassMetricTag +from .snappi import PatternFlowMplsTrafficClassMetricTagIter from .snappi import PatternFlowMplsTrafficClassCounter from .snappi import PatternFlowMplsBottomOfStack +from .snappi import PatternFlowMplsBottomOfStackMetricTag +from .snappi import PatternFlowMplsBottomOfStackMetricTagIter from .snappi import PatternFlowMplsBottomOfStackCounter from .snappi import PatternFlowMplsTimeToLive +from .snappi import PatternFlowMplsTimeToLiveMetricTag +from .snappi import PatternFlowMplsTimeToLiveMetricTagIter from .snappi import PatternFlowMplsTimeToLiveCounter from .snappi import FlowHeaderIter from .snappi import FlowSize @@ -579,7 +849,9 @@ from .snappi import MetricsRequest from .snappi import PortMetricsRequest from .snappi import FlowMetricsRequest -from .snappi import FlowMetricGroupRequest +from .snappi import FlowTaggedMetricsFilter +from .snappi import FlowMetricTagFilter +from .snappi import FlowMetricTagFilterIter from .snappi import Bgpv4MetricsRequest from .snappi import Bgpv6MetricsRequest from .snappi import IsisMetricsRequest @@ -591,10 +863,13 @@ from .snappi import PortMetric from .snappi import PortMetricIter from .snappi import FlowMetric -from .snappi import FlowMetricGroup -from .snappi import FlowMetricGroupIter from .snappi import MetricTimestamp from .snappi import MetricLatency +from .snappi import FlowTaggedMetric +from .snappi import FlowMetricTag +from .snappi import FlowMetricTagValue +from .snappi import FlowMetricTagIter +from .snappi import FlowTaggedMetricIter from .snappi import FlowMetricIter from .snappi import Bgpv4Metric from .snappi import Bgpv4MetricIter diff --git a/snappi/docs/openapi.yaml b/snappi/docs/openapi.yaml index bff49ee8..15d44d29 100644 --- a/snappi/docs/openapi.yaml +++ b/snappi/docs/openapi.yaml @@ -7,7 +7,7 @@ info: \ issue](https://github.com/open-traffic-generator/models/issues) in the models\ \ repository\n- [fork the models repository](https://github.com/open-traffic-generator/models)\ \ and submit a PR" - version: 0.11.6 + version: 0.11.7 contact: url: https://github.com/open-traffic-generator/models license: @@ -6551,18 +6551,38 @@ components: $ref: '#/components/schemas/Flow.TxRx' x-field-uid: 1 packet: - description: "The header is a list of traffic protocol headers.\n\nThe order\ - \ of traffic protocol headers assigned to the list is the\norder they\ - \ will appear on the wire.\n\nIn the case of an empty list the keyword/value\ - \ of minItems: 1 \nindicates that an implementation MUST provide at least\ - \ one \nFlow.Header object.\n\nThe default value for the Flow.Header choice\ - \ property is ethernet \nwhich will result in an implementation by default\ - \ providing at least \none ethernet packet header." + description: "The list of protocol headers defining the shape of all \n\ + intended packets in corresponding flow as it is transmitted\nby traffic-generator\ + \ port.\n\nThe order of protocol headers assigned to the list is the\n\ + order they will appear on the wire.\n\nIn the case of an empty list the\ + \ keyword/value of minItems: 1 \nindicates that an implementation MUST\ + \ provide at least one \nFlow.Header object.\n\nThe default value for\ + \ the Flow.Header choice property is ethernet \nwhich will result in an\ + \ implementation by default providing at least \none ethernet packet header." type: array minItems: 1 items: $ref: '#/components/schemas/Flow.Header' x-field-uid: 2 + egress_packet: + description: "Under Review: The packet header schema for egress tracking\ + \ currently exposes unwanted fields. The query structure for tagged metrics\ + \ inside flows metrics requires documenting expected response format.\n\ + \nUnder Review: The packet header schema for egress tracking currently\ + \ exposes unwanted fields. The query structure for tagged metrics inside\ + \ flows metrics requires documenting expected response format.\n\nThe\ + \ list of protocol headers defining the shape of all \nintended packets\ + \ in corresponding flow as it is received\nby traffic-generator port.\n\ + \nFor all protocol headers, only the `metric_tags` property is configurable." + type: array + items: + $ref: '#/components/schemas/Flow.Header' + x-status: + status: under-review + information: The packet header schema for egress tracking currently exposes + unwanted fields. The query structure for tagged metrics inside flows + metrics requires documenting expected response format. + x-field-uid: 9 size: description: |- The size of the packets. @@ -6952,6 +6972,46 @@ components: type: string pattern: '^[A-Fa-f0-9: ]+$' x-field-uid: 1 + metric_tags: + description: |- + One or more metric tags can be used to enable tracking portion of or all bits + in a corresponding header field for metrics per each applicable value. + These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Flow.Custom.MetricTag' + x-field-uid: 2 + Flow.Custom.MetricTag: + description: |- + Metric Tag can be used to enable tracking portion of or all bits + in a corresponding header field for metrics per each applicable value. + These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable + for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset + of corresponding header field + type: integer + default: 1 + minimum: 1 + x-field-uid: 3 Flow.Ethernet: description: |- Ethernet packet header @@ -10032,11 +10092,6 @@ components: x-constraint: - /components/schemas/Flow/properties/name x-field-uid: 1 - metric_groups: - description: |- - A list of metric groups used to disaggregate flows. A metric group that does not exist for a flow group MUST return an error. - $ref: '#/components/schemas/Flow.MetricGroup.Request' - x-field-uid: 2 metric_names: description: |- The list of metric names that the returned result set will contain. If the list is empty then all metrics will be returned. @@ -10067,52 +10122,84 @@ components: - frames_tx_rate - frames_rx_rate x-field-uid: 3 - Flow.MetricGroup.Request: + tagged_metrics: + $ref: '#/components/schemas/Flow.TaggedMetrics.Filter' + x-field-uid: 4 + Flow.TaggedMetrics.Filter: + description: |- + Filter for tagged metrics type: object properties: - choice: + include: description: |- - The type of disaggregation to be applied to the flow metrics. - type: string - default: ingress + Controls inclusion/exclusion of tagged metrics when fetching flow metrics. + type: boolean + default: true x-field-uid: 1 - x-enum: - ingress: - x-field-uid: 1 - egress: - x-field-uid: 2 - enum: - - ingress - - egress - ingress: - description: "Disaggregate the flow metrics by ingress packet header field\ - \ names.\nIf the items is empty then no disaggregation will be done. \n\ - \nx-constraint:\n- /components/schemas/Flow/properties/packet/../metric_group\n\ - \n\nx-constraint:\n- /components/schemas/Flow/properties/packet/../metric_group\n" + include_empty_metrics: + description: |- + Controls inclusion/exclusion of tagged metrics where each underlying attributes has zero value or absent value. + type: boolean + default: false + x-field-uid: 2 + metric_names: + description: |- + The list of metric names that the returned result set will contain. If the list is empty then all metrics will be returned. type: array - default: [] items: type: string - x-constraint: - - /components/schemas/Flow/properties/packet/../metric_group - x-field-uid: 2 - egress: - description: "Disaggregate the flow metrics by egress packet header field\ - \ names \nIf the items is empty then no disaggregation will be done. \n\ - \nx-constraint:\n- /components/schemas/Flow/properties/egress/../metric_group\n\ - \n\nx-constraint:\n- /components/schemas/Flow/properties/egress/../metric_group\n" + x-enum: + frames_tx: + x-field-uid: 1 + frames_rx: + x-field-uid: 2 + bytes_tx: + x-field-uid: 3 + bytes_rx: + x-field-uid: 4 + frames_tx_rate: + x-field-uid: 5 + frames_rx_rate: + x-field-uid: 6 + enum: + - frames_tx + - frames_rx + - bytes_tx + - bytes_rx + - frames_tx_rate + - frames_rx_rate + x-field-uid: 3 + filters: + description: |- + List of filters to selectively fetch tagged metrics with certain tag and corresponding value. + type: array + items: + $ref: '#/components/schemas/Flow.MetricTag.Filter' + x-field-uid: 4 + Flow.MetricTag.Filter: + description: |- + A container for filtering ingress and/or egress metric tags. + The Tx stats may not be applicable in both the request and response filter. + type: object + properties: + name: + description: |- + A metric tag name that MUST exist in a flow packet or + flow egress_packet configuration + type: string + x-field-uid: 1 + values: + description: |- + A list of filters that can be applied to the metric tag name. + By default all values will be included in the flow metric results. type: array - default: [] items: type: string - x-constraint: - - /components/schemas/Flow/properties/egress/../metric_group - x-field-uid: 3 + x-field-uid: 2 Flow.Metric: description: |- A container for flow metrics. - The container is keyed by the name, port_tx, port_rx and metric_groups - values. + The container is keyed by the name, port_tx and port_rx. type: object properties: name: @@ -10131,13 +10218,6 @@ components: The name of the receive port type: string x-field-uid: 3 - metric_groups: - description: |- - Flow disaggregation groups. - type: array - items: - $ref: '#/components/schemas/Flow.MetricGroup' - x-field-uid: 4 transmit: description: |- The transmit state of the flow. @@ -10203,18 +10283,106 @@ components: latency: $ref: '#/components/schemas/Metric.Latency' x-field-uid: 14 - Flow.MetricGroup: + tagged_metrics: + description: |- + List of metrics corresponding to a set of values applicable + for configured metric tags in ingress or egress packet header fields of corresponding flow. + The container is keyed by list of tag-value pairs. + type: array + items: + $ref: '#/components/schemas/Flow.TaggedMetric' + x-field-uid: 15 + Flow.TaggedMetric: + description: |- + Metrics for each set of values applicable for configured + metric tags in ingress or egress packet header fields of corresponding flow. + The container is keyed by list of tag-value pairs. + type: object + properties: + tags: + description: |- + List of tag and value pairs + type: array + items: + $ref: '#/components/schemas/Flow.MetricTag' + x-field-uid: 1 + frames_tx: + description: |- + The current total number of frames transmitted + type: integer + format: uint64 + x-field-uid: 2 + frames_rx: + description: |- + The current total number of valid frames received + type: integer + format: uint64 + x-field-uid: 3 + bytes_tx: + description: |- + The current total number of bytes transmitted + type: integer + format: uint64 + x-field-uid: 4 + bytes_rx: + description: |- + The current total number of bytes received + type: integer + format: uint64 + x-field-uid: 5 + frames_tx_rate: + description: |- + The current rate of frames transmitted + type: number + x-field-uid: 6 + frames_rx_rate: + description: |- + The current rate of valid frames received + type: number + x-field-uid: 7 + loss: + description: |- + The percentage of lost frames + type: number + x-field-uid: 8 + timestamps: + $ref: '#/components/schemas/Metric.Timestamp' + x-field-uid: 9 + latency: + $ref: '#/components/schemas/Metric.Latency' + x-field-uid: 10 + Flow.MetricTag: type: object properties: name: description: |- - Name of packet field metric group + Name of packet field metric tag type: string x-field-uid: 1 value: + $ref: '#/components/schemas/Flow.MetricTag.Value' + x-field-uid: 2 + Flow.MetricTag.Value: + description: |- + A container for metric tag value + type: object + properties: + choice: + description: |- + Available formats for metric tag value + type: string + default: hex + x-enum: + hex: + x-field-uid: 1 + x-field-uid: 1 + enum: + - hex + hex: description: |- - Value of named packet field metric group + Value represented in hexadecimal format type: string + format: hex x-field-uid: 2 Metric.Timestamp: description: |- @@ -13064,6 +13232,35 @@ components: x-constraint: - /components/schemas/Port/properties/name x-field-uid: 1 + Pattern.Flow.Ethernet.Dst.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 47 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 48 + minimum: 1 + maximum: 48 + x-field-uid: 3 Pattern.Flow.Ethernet.Dst.Counter: description: |- mac counter pattern @@ -13131,17 +13328,48 @@ components: x-field-uid: 4 default: 00:00:00:00:00:00 format: mac - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 5 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ethernet.Dst.MetricTag' + x-field-uid: 6 increment: $ref: '#/components/schemas/Pattern.Flow.Ethernet.Dst.Counter' - x-field-uid: 6 + x-field-uid: 7 decrement: $ref: '#/components/schemas/Pattern.Flow.Ethernet.Dst.Counter' - x-field-uid: 7 + x-field-uid: 8 + Pattern.Flow.Ethernet.Src.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 47 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 48 + minimum: 1 + maximum: 48 + x-field-uid: 3 Pattern.Flow.Ethernet.Src.Counter: description: |- mac counter pattern @@ -13197,17 +13425,48 @@ components: default: - 00:00:00:00:00:00 format: mac - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ethernet.Src.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ethernet.Src.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ethernet.Src.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Ethernet.EtherType.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Ethernet.EtherType.Counter: description: |- integer counter pattern @@ -13286,26 +13545,57 @@ components: default: 65535 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 5 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ethernet.EtherType.MetricTag' + x-field-uid: 6 increment: $ref: '#/components/schemas/Pattern.Flow.Ethernet.EtherType.Counter' - x-field-uid: 6 + x-field-uid: 7 decrement: $ref: '#/components/schemas/Pattern.Flow.Ethernet.EtherType.Counter' - x-field-uid: 7 + x-field-uid: 8 x-constants: ipv4: 2048 ipv6: 34525 arp: 2054 vlan_802_1_q: 33024 reserved: 65535 - Pattern.Flow.Ethernet.PfcQueue.Counter: + Pattern.Flow.Ethernet.PfcQueue.MetricTag: description: |- - integer counter pattern + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 2 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 3 + minimum: 1 + maximum: 3 + x-field-uid: 3 + Pattern.Flow.Ethernet.PfcQueue.Counter: + description: |- + integer counter pattern type: object properties: start: @@ -13362,17 +13652,48 @@ components: - 0 minimum: 0 maximum: 7 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ethernet.PfcQueue.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ethernet.PfcQueue.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ethernet.PfcQueue.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Vlan.Priority.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 2 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 3 + minimum: 1 + maximum: 3 + x-field-uid: 3 Pattern.Flow.Vlan.Priority.Counter: description: |- integer counter pattern @@ -13432,17 +13753,48 @@ components: - 0 minimum: 0 maximum: 7 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Vlan.Priority.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Vlan.Priority.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Vlan.Priority.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Vlan.Cfi.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Vlan.Cfi.Counter: description: |- integer counter pattern @@ -13502,17 +13854,48 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Vlan.Cfi.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Vlan.Cfi.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Vlan.Cfi.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Vlan.Id.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 11 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 12 + minimum: 1 + maximum: 12 + x-field-uid: 3 Pattern.Flow.Vlan.Id.Counter: description: |- integer counter pattern @@ -13572,17 +13955,48 @@ components: - 0 minimum: 0 maximum: 4095 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Vlan.Id.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Vlan.Id.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Vlan.Id.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Vlan.Tpid.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Vlan.Tpid.Counter: description: |- integer counter pattern @@ -13648,23 +14062,54 @@ components: - 33024 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Vlan.Tpid.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Vlan.Tpid.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Vlan.Tpid.Counter' - x-field-uid: 6 + x-field-uid: 7 x-constants: x8100: 33024 x88A8: 34984 x9100: 37120 x9200: 37376 x9300: 37632 + Pattern.Flow.Vxlan.Flags.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.Vxlan.Flags.Counter: description: |- integer counter pattern @@ -13724,17 +14169,48 @@ components: - 8 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Vxlan.Flags.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Vxlan.Flags.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Vxlan.Flags.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Vxlan.Reserved0.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 23 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 24 + minimum: 1 + maximum: 24 + x-field-uid: 3 Pattern.Flow.Vxlan.Reserved0.Counter: description: |- integer counter pattern @@ -13794,17 +14270,48 @@ components: - 0 minimum: 0 maximum: 16777215 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Vxlan.Reserved0.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Vxlan.Reserved0.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Vxlan.Reserved0.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Vxlan.Vni.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 23 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 24 + minimum: 1 + maximum: 24 + x-field-uid: 3 Pattern.Flow.Vxlan.Vni.Counter: description: |- integer counter pattern @@ -13877,18 +14384,49 @@ components: default: 0 minimum: 0 maximum: 16777215 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 5 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Vxlan.Vni.MetricTag' + x-field-uid: 6 increment: $ref: '#/components/schemas/Pattern.Flow.Vxlan.Vni.Counter' - x-field-uid: 6 + x-field-uid: 7 decrement: $ref: '#/components/schemas/Pattern.Flow.Vxlan.Vni.Counter' - x-field-uid: 7 - Pattern.Flow.Vxlan.Reserved1.Counter: + x-field-uid: 8 + Pattern.Flow.Vxlan.Reserved1.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 + Pattern.Flow.Vxlan.Reserved1.Counter: description: |- integer counter pattern type: object @@ -13947,17 +14485,48 @@ components: - 0 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Vxlan.Reserved1.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Vxlan.Reserved1.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Vxlan.Reserved1.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Ipv4.Version.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 3 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 4 + minimum: 1 + maximum: 4 + x-field-uid: 3 Pattern.Flow.Ipv4.Version.Counter: description: |- integer counter pattern @@ -14017,17 +14586,48 @@ components: - 4 minimum: 0 maximum: 15 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Version.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Version.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Version.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Ipv4.HeaderLength.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 3 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 4 + minimum: 1 + maximum: 4 + x-field-uid: 3 Pattern.Flow.Ipv4.HeaderLength.Counter: description: |- integer counter pattern @@ -14100,17 +14700,48 @@ components: default: 5 minimum: 0 maximum: 15 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 5 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv4.HeaderLength.MetricTag' + x-field-uid: 6 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv4.HeaderLength.Counter' - x-field-uid: 6 + x-field-uid: 7 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv4.HeaderLength.Counter' - x-field-uid: 7 + x-field-uid: 8 + Pattern.Flow.Ipv4.TotalLength.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Ipv4.TotalLength.Counter: description: |- integer counter pattern @@ -14183,17 +14814,48 @@ components: default: 46 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 5 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv4.TotalLength.MetricTag' + x-field-uid: 6 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv4.TotalLength.Counter' - x-field-uid: 6 + x-field-uid: 7 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv4.TotalLength.Counter' - x-field-uid: 7 + x-field-uid: 8 + Pattern.Flow.Ipv4.Identification.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Ipv4.Identification.Counter: description: |- integer counter pattern @@ -14253,17 +14915,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Identification.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Identification.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Identification.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Ipv4.Reserved.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Ipv4.Reserved.Counter: description: |- integer counter pattern @@ -14323,17 +15016,48 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Reserved.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Reserved.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Reserved.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Ipv4.DontFragment.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Ipv4.DontFragment.Counter: description: |- integer counter pattern @@ -14393,17 +15117,48 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv4.DontFragment.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv4.DontFragment.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv4.DontFragment.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Ipv4.MoreFragments.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Ipv4.MoreFragments.Counter: description: |- integer counter pattern @@ -14463,17 +15218,48 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv4.MoreFragments.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv4.MoreFragments.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv4.MoreFragments.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Ipv4.FragmentOffset.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 4 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 5 + minimum: 1 + maximum: 5 + x-field-uid: 3 Pattern.Flow.Ipv4.FragmentOffset.Counter: description: |- integer counter pattern @@ -14533,17 +15319,48 @@ components: - 0 minimum: 0 maximum: 31 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv4.FragmentOffset.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv4.FragmentOffset.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv4.FragmentOffset.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Ipv4.TimeToLive.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.Ipv4.TimeToLive.Counter: description: |- integer counter pattern @@ -14603,17 +15420,48 @@ components: - 64 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv4.TimeToLive.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv4.TimeToLive.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv4.TimeToLive.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Ipv4.Protocol.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.Ipv4.Protocol.Counter: description: |- integer counter pattern @@ -14686,17 +15534,19 @@ components: default: 61 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 5 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Protocol.MetricTag' + x-field-uid: 6 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Protocol.Counter' - x-field-uid: 6 + x-field-uid: 7 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Protocol.Counter' - x-field-uid: 7 + x-field-uid: 8 Pattern.Flow.Ipv4.HeaderChecksum: description: |- Header checksum @@ -14737,6 +15587,35 @@ components: minimum: 0 maximum: 65535 x-field-uid: 3 + Pattern.Flow.Ipv4.Src.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 31 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 32 + minimum: 1 + maximum: 32 + x-field-uid: 3 Pattern.Flow.Ipv4.Src.Counter: description: |- ipv4 counter pattern @@ -14792,17 +15671,48 @@ components: default: - 0.0.0.0 format: ipv4 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Src.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Src.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Src.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Ipv4.Dst.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 31 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 32 + minimum: 1 + maximum: 32 + x-field-uid: 3 Pattern.Flow.Ipv4.Dst.Counter: description: |- ipv4 counter pattern @@ -14858,17 +15768,48 @@ components: default: - 0.0.0.0 format: ipv4 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dst.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dst.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dst.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Ipv4.Priority.Raw.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.Ipv4.Priority.Raw.Counter: description: |- integer counter pattern @@ -14928,17 +15869,48 @@ components: - 0 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Priority.Raw.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Priority.Raw.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Priority.Raw.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Ipv4.Dscp.Phb.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 5 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 6 + minimum: 1 + maximum: 6 + x-field-uid: 3 Pattern.Flow.Ipv4.Dscp.Phb.Counter: description: |- integer counter pattern @@ -15020,17 +15992,19 @@ components: - 0 minimum: 0 maximum: 63 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dscp.Phb.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dscp.Phb.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dscp.Phb.Counter' - x-field-uid: 6 + x-field-uid: 7 x-constants: default: 0 cs1: 8 @@ -15053,6 +16027,35 @@ components: af42: 36 af43: 38 ef46: 46 + Pattern.Flow.Ipv4.Dscp.Ecn.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 1 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 2 + minimum: 1 + maximum: 2 + x-field-uid: 3 Pattern.Flow.Ipv4.Dscp.Ecn.Counter: description: |- integer counter pattern @@ -15117,22 +16120,53 @@ components: - 0 minimum: 0 maximum: 3 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dscp.Ecn.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dscp.Ecn.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Dscp.Ecn.Counter' - x-field-uid: 6 + x-field-uid: 7 x-constants: non_capable: 0 capable_transport_0: 1 capable_transport_1: 2 congestion_encountered: 3 + Pattern.Flow.Ipv4.Tos.Precedence.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 2 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 3 + minimum: 1 + maximum: 3 + x-field-uid: 3 Pattern.Flow.Ipv4.Tos.Precedence.Counter: description: |- integer counter pattern @@ -15201,17 +16235,19 @@ components: - 0 minimum: 0 maximum: 7 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Precedence.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Precedence.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Precedence.Counter' - x-field-uid: 6 + x-field-uid: 7 x-constants: routine: 0 priority: 1 @@ -15221,6 +16257,35 @@ components: critic_ecp: 5 internetwork_control: 6 network_control: 7 + Pattern.Flow.Ipv4.Tos.Delay.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Ipv4.Tos.Delay.Counter: description: |- integer counter pattern @@ -15283,20 +16348,51 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Delay.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Delay.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Delay.Counter' - x-field-uid: 6 + x-field-uid: 7 x-constants: normal: 0 low: 1 + Pattern.Flow.Ipv4.Tos.Throughput.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Ipv4.Tos.Throughput.Counter: description: |- integer counter pattern @@ -15359,20 +16455,51 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Throughput.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Throughput.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Throughput.Counter' - x-field-uid: 6 + x-field-uid: 7 x-constants: normal: 0 low: 1 + Pattern.Flow.Ipv4.Tos.Reliability.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Ipv4.Tos.Reliability.Counter: description: |- integer counter pattern @@ -15435,20 +16562,51 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Reliability.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Reliability.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Reliability.Counter' - x-field-uid: 6 + x-field-uid: 7 x-constants: normal: 0 low: 1 + Pattern.Flow.Ipv4.Tos.Monetary.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Ipv4.Tos.Monetary.Counter: description: |- integer counter pattern @@ -15511,20 +16669,51 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Monetary.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Monetary.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Monetary.Counter' - x-field-uid: 6 + x-field-uid: 7 x-constants: normal: 0 low: 1 + Pattern.Flow.Ipv4.Tos.Unused.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Ipv4.Tos.Unused.Counter: description: |- integer counter pattern @@ -15584,17 +16773,48 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Unused.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Unused.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv4.Tos.Unused.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Ipv6.Version.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 3 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 4 + minimum: 1 + maximum: 4 + x-field-uid: 3 Pattern.Flow.Ipv6.Version.Counter: description: |- integer counter pattern @@ -15654,17 +16874,48 @@ components: - 6 minimum: 0 maximum: 15 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv6.Version.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv6.Version.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv6.Version.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Ipv6.TrafficClass.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.Ipv6.TrafficClass.Counter: description: |- integer counter pattern @@ -15724,17 +16975,48 @@ components: - 0 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv6.TrafficClass.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv6.TrafficClass.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv6.TrafficClass.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Ipv6.FlowLabel.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 19 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 20 + minimum: 1 + maximum: 20 + x-field-uid: 3 Pattern.Flow.Ipv6.FlowLabel.Counter: description: |- integer counter pattern @@ -15794,17 +17076,48 @@ components: - 0 minimum: 0 maximum: 1048575 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv6.FlowLabel.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv6.FlowLabel.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv6.FlowLabel.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Ipv6.PayloadLength.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Ipv6.PayloadLength.Counter: description: |- integer counter pattern @@ -15877,17 +17190,48 @@ components: default: 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 5 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv6.PayloadLength.MetricTag' + x-field-uid: 6 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv6.PayloadLength.Counter' - x-field-uid: 6 + x-field-uid: 7 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv6.PayloadLength.Counter' - x-field-uid: 7 + x-field-uid: 8 + Pattern.Flow.Ipv6.NextHeader.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.Ipv6.NextHeader.Counter: description: |- integer counter pattern @@ -15972,17 +17316,19 @@ components: default: 59 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 5 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv6.NextHeader.MetricTag' + x-field-uid: 6 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv6.NextHeader.Counter' - x-field-uid: 6 + x-field-uid: 7 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv6.NextHeader.Counter' - x-field-uid: 7 + x-field-uid: 8 x-constants: hopopt: 0 icmp: 1 @@ -15995,6 +17341,35 @@ components: egp: 8 igp: 9 no_next_header: 59 + Pattern.Flow.Ipv6.HopLimit.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.Ipv6.HopLimit.Counter: description: |- integer counter pattern @@ -16054,17 +17429,48 @@ components: - 64 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv6.HopLimit.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv6.HopLimit.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv6.HopLimit.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Ipv6.Src.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 127 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 128 + minimum: 1 + maximum: 128 + x-field-uid: 3 Pattern.Flow.Ipv6.Src.Counter: description: |- ipv6 counter pattern @@ -16120,17 +17526,48 @@ components: default: - ::0 format: ipv6 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv6.Src.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv6.Src.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv6.Src.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Ipv6.Dst.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 127 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 128 + minimum: 1 + maximum: 128 + x-field-uid: 3 Pattern.Flow.Ipv6.Dst.Counter: description: |- ipv6 counter pattern @@ -16186,17 +17623,48 @@ components: default: - ::0 format: ipv6 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ipv6.Dst.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ipv6.Dst.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ipv6.Dst.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.PfcPause.Dst.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 47 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 48 + minimum: 1 + maximum: 48 + x-field-uid: 3 Pattern.Flow.PfcPause.Dst.Counter: description: |- mac counter pattern @@ -16252,17 +17720,48 @@ components: default: - 01:80:c2:00:00:01 format: mac - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.PfcPause.Dst.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.PfcPause.Dst.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.PfcPause.Dst.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.PfcPause.Src.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 47 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 48 + minimum: 1 + maximum: 48 + x-field-uid: 3 Pattern.Flow.PfcPause.Src.Counter: description: |- mac counter pattern @@ -16318,18 +17817,49 @@ components: default: - 00:00:00:00:00:00 format: mac - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.PfcPause.Src.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.PfcPause.Src.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.PfcPause.Src.Counter' - x-field-uid: 6 - Pattern.Flow.PfcPause.EtherType.Counter: + x-field-uid: 7 + Pattern.Flow.PfcPause.EtherType.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 + Pattern.Flow.PfcPause.EtherType.Counter: description: |- integer counter pattern type: object @@ -16390,19 +17920,50 @@ components: - 34824 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.PfcPause.EtherType.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.PfcPause.EtherType.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.PfcPause.EtherType.Counter' - x-field-uid: 6 + x-field-uid: 7 x-constants: x8808: 34824 + Pattern.Flow.PfcPause.ControlOpCode.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.PfcPause.ControlOpCode.Counter: description: |- integer counter pattern @@ -16462,17 +18023,48 @@ components: - 257 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.PfcPause.ControlOpCode.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.PfcPause.ControlOpCode.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.PfcPause.ControlOpCode.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.PfcPause.ClassEnableVector.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.PfcPause.ClassEnableVector.Counter: description: |- integer counter pattern @@ -16532,17 +18124,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.PfcPause.ClassEnableVector.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.PfcPause.ClassEnableVector.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.PfcPause.ClassEnableVector.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.PfcPause.PauseClass0.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.PfcPause.PauseClass0.Counter: description: |- integer counter pattern @@ -16602,17 +18225,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass0.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass0.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass0.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.PfcPause.PauseClass1.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.PfcPause.PauseClass1.Counter: description: |- integer counter pattern @@ -16672,17 +18326,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass1.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass1.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass1.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.PfcPause.PauseClass2.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.PfcPause.PauseClass2.Counter: description: |- integer counter pattern @@ -16742,17 +18427,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass2.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass2.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass2.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.PfcPause.PauseClass3.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.PfcPause.PauseClass3.Counter: description: |- integer counter pattern @@ -16812,17 +18528,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass3.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass3.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass3.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.PfcPause.PauseClass4.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.PfcPause.PauseClass4.Counter: description: |- integer counter pattern @@ -16882,17 +18629,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass4.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass4.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass4.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.PfcPause.PauseClass5.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.PfcPause.PauseClass5.Counter: description: |- integer counter pattern @@ -16952,17 +18730,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass5.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass5.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass5.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.PfcPause.PauseClass6.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.PfcPause.PauseClass6.Counter: description: |- integer counter pattern @@ -17022,17 +18831,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass6.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass6.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass6.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.PfcPause.PauseClass7.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.PfcPause.PauseClass7.Counter: description: |- integer counter pattern @@ -17092,17 +18932,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass7.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass7.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.PfcPause.PauseClass7.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.EthernetPause.Dst.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 47 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 48 + minimum: 1 + maximum: 48 + x-field-uid: 3 Pattern.Flow.EthernetPause.Dst.Counter: description: |- mac counter pattern @@ -17158,17 +19029,48 @@ components: default: - 01:80:c2:00:00:01 format: mac - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Dst.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Dst.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Dst.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.EthernetPause.Src.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 47 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 48 + minimum: 1 + maximum: 48 + x-field-uid: 3 Pattern.Flow.EthernetPause.Src.Counter: description: |- mac counter pattern @@ -17224,17 +19126,48 @@ components: default: - 00:00:00:00:00:00 format: mac - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Src.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Src.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Src.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.EthernetPause.EtherType.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.EthernetPause.EtherType.Counter: description: |- integer counter pattern @@ -17296,19 +19229,50 @@ components: - 34824 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.EthernetPause.EtherType.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.EthernetPause.EtherType.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.EthernetPause.EtherType.Counter' - x-field-uid: 6 + x-field-uid: 7 x-constants: flow_control: 34824 + Pattern.Flow.EthernetPause.ControlOpCode.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.EthernetPause.ControlOpCode.Counter: description: |- integer counter pattern @@ -17368,17 +19332,48 @@ components: - 1 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.EthernetPause.ControlOpCode.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.EthernetPause.ControlOpCode.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.EthernetPause.ControlOpCode.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.EthernetPause.Time.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.EthernetPause.Time.Counter: description: |- integer counter pattern @@ -17438,17 +19433,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Time.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Time.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.EthernetPause.Time.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Tcp.SrcPort.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Tcp.SrcPort.Counter: description: |- integer counter pattern @@ -17508,17 +19534,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Tcp.SrcPort.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Tcp.SrcPort.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Tcp.SrcPort.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Tcp.DstPort.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Tcp.DstPort.Counter: description: |- integer counter pattern @@ -17578,17 +19635,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Tcp.DstPort.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Tcp.DstPort.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Tcp.DstPort.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Tcp.SeqNum.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 31 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 32 + minimum: 1 + maximum: 32 + x-field-uid: 3 Pattern.Flow.Tcp.SeqNum.Counter: description: |- integer counter pattern @@ -17648,17 +19736,48 @@ components: - 0 minimum: 0 maximum: 4294967295 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Tcp.SeqNum.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Tcp.SeqNum.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Tcp.SeqNum.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Tcp.AckNum.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 31 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 32 + minimum: 1 + maximum: 32 + x-field-uid: 3 Pattern.Flow.Tcp.AckNum.Counter: description: |- integer counter pattern @@ -17718,17 +19837,48 @@ components: - 0 minimum: 0 maximum: 4294967295 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Tcp.AckNum.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Tcp.AckNum.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Tcp.AckNum.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Tcp.DataOffset.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 3 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 4 + minimum: 1 + maximum: 4 + x-field-uid: 3 Pattern.Flow.Tcp.DataOffset.Counter: description: |- integer counter pattern @@ -17788,17 +19938,48 @@ components: - 0 minimum: 0 maximum: 15 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Tcp.DataOffset.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Tcp.DataOffset.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Tcp.DataOffset.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Tcp.EcnNs.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Tcp.EcnNs.Counter: description: |- integer counter pattern @@ -17858,17 +20039,48 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnNs.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnNs.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnNs.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Tcp.EcnCwr.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Tcp.EcnCwr.Counter: description: |- integer counter pattern @@ -17928,17 +20140,48 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnCwr.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnCwr.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnCwr.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Tcp.EcnEcho.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Tcp.EcnEcho.Counter: description: |- integer counter pattern @@ -17998,17 +20241,48 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnEcho.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnEcho.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Tcp.EcnEcho.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Tcp.CtlUrg.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Tcp.CtlUrg.Counter: description: |- integer counter pattern @@ -18068,17 +20342,48 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlUrg.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlUrg.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlUrg.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Tcp.CtlAck.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Tcp.CtlAck.Counter: description: |- integer counter pattern @@ -18138,17 +20443,48 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlAck.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlAck.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlAck.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Tcp.CtlPsh.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Tcp.CtlPsh.Counter: description: |- integer counter pattern @@ -18207,17 +20543,48 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlPsh.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlPsh.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlPsh.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Tcp.CtlRst.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Tcp.CtlRst.Counter: description: |- integer counter pattern @@ -18276,17 +20643,48 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlRst.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlRst.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlRst.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Tcp.CtlSyn.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Tcp.CtlSyn.Counter: description: |- integer counter pattern @@ -18345,17 +20743,48 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlSyn.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlSyn.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlSyn.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Tcp.CtlFin.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Tcp.CtlFin.Counter: description: |- integer counter pattern @@ -18414,17 +20843,48 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlFin.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlFin.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Tcp.CtlFin.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Tcp.Window.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Tcp.Window.Counter: description: |- integer counter pattern @@ -18484,17 +20944,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Tcp.Window.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Tcp.Window.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Tcp.Window.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Udp.SrcPort.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Udp.SrcPort.Counter: description: |- integer counter pattern @@ -18554,17 +21045,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Udp.SrcPort.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Udp.SrcPort.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Udp.SrcPort.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Udp.DstPort.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Udp.DstPort.Counter: description: |- integer counter pattern @@ -18624,17 +21146,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Udp.DstPort.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Udp.DstPort.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Udp.DstPort.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Udp.Length.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Udp.Length.Counter: description: |- integer counter pattern @@ -18694,17 +21247,19 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Udp.Length.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Udp.Length.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Udp.Length.Counter' - x-field-uid: 6 + x-field-uid: 7 Pattern.Flow.Udp.Checksum: description: |- UDP checksum @@ -18745,6 +21300,35 @@ components: minimum: 0 maximum: 65535 x-field-uid: 3 + Pattern.Flow.Gre.ChecksumPresent.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Gre.ChecksumPresent.Counter: description: |- integer counter pattern @@ -18804,17 +21388,48 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gre.ChecksumPresent.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gre.ChecksumPresent.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gre.ChecksumPresent.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gre.Reserved0.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 11 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 12 + minimum: 1 + maximum: 12 + x-field-uid: 3 Pattern.Flow.Gre.Reserved0.Counter: description: |- integer counter pattern @@ -18874,17 +21489,48 @@ components: - 0 minimum: 0 maximum: 4095 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gre.Reserved0.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gre.Reserved0.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gre.Reserved0.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gre.Version.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 2 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 3 + minimum: 1 + maximum: 3 + x-field-uid: 3 Pattern.Flow.Gre.Version.Counter: description: |- integer counter pattern @@ -18944,17 +21590,48 @@ components: - 0 minimum: 0 maximum: 7 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gre.Version.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gre.Version.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gre.Version.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gre.Protocol.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Gre.Protocol.Counter: description: |- integer counter pattern @@ -19017,17 +21694,19 @@ components: - 2048 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gre.Protocol.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gre.Protocol.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gre.Protocol.Counter' - x-field-uid: 6 + x-field-uid: 7 x-constants: ipv4: 2048 ipv6: 34525 @@ -19071,6 +21750,35 @@ components: minimum: 0 maximum: 65535 x-field-uid: 3 + Pattern.Flow.Gre.Reserved1.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Gre.Reserved1.Counter: description: |- integer counter pattern @@ -19130,17 +21838,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gre.Reserved1.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gre.Reserved1.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gre.Reserved1.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gtpv1.Version.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 2 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 3 + minimum: 1 + maximum: 3 + x-field-uid: 3 Pattern.Flow.Gtpv1.Version.Counter: description: |- integer counter pattern @@ -19200,17 +21939,48 @@ components: - 1 minimum: 0 maximum: 7 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Version.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Version.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Version.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gtpv1.ProtocolType.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Gtpv1.ProtocolType.Counter: description: |- integer counter pattern @@ -19270,17 +22040,48 @@ components: - 1 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.ProtocolType.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.ProtocolType.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.ProtocolType.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gtpv1.Reserved.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Gtpv1.Reserved.Counter: description: |- integer counter pattern @@ -19340,17 +22141,48 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Reserved.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Reserved.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Reserved.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gtpv1.EFlag.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Gtpv1.EFlag.Counter: description: |- integer counter pattern @@ -19410,17 +22242,48 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.EFlag.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.EFlag.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.EFlag.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gtpv1.SFlag.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Gtpv1.SFlag.Counter: description: |- integer counter pattern @@ -19480,17 +22343,48 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.SFlag.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.SFlag.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.SFlag.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gtpv1.PnFlag.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Gtpv1.PnFlag.Counter: description: |- integer counter pattern @@ -19550,17 +22444,48 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.PnFlag.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.PnFlag.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.PnFlag.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gtpv1.MessageType.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.Gtpv1.MessageType.Counter: description: |- integer counter pattern @@ -19620,17 +22545,48 @@ components: - 0 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.MessageType.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.MessageType.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.MessageType.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gtpv1.MessageLength.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Gtpv1.MessageLength.Counter: description: |- integer counter pattern @@ -19690,17 +22646,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.MessageLength.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.MessageLength.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.MessageLength.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gtpv1.Teid.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 31 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 32 + minimum: 1 + maximum: 32 + x-field-uid: 3 Pattern.Flow.Gtpv1.Teid.Counter: description: |- integer counter pattern @@ -19760,17 +22747,48 @@ components: - 0 minimum: 0 maximum: 4294967295 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Teid.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Teid.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.Teid.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gtpv1.SquenceNumber.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Gtpv1.SquenceNumber.Counter: description: |- integer counter pattern @@ -19830,17 +22848,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.SquenceNumber.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.SquenceNumber.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.SquenceNumber.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gtpv1.NPduNumber.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.Gtpv1.NPduNumber.Counter: description: |- integer counter pattern @@ -19900,17 +22949,48 @@ components: - 0 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.NPduNumber.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.NPduNumber.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.NPduNumber.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gtpv1.NextExtensionHeaderType.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.Gtpv1.NextExtensionHeaderType.Counter: description: |- integer counter pattern @@ -19970,17 +23050,48 @@ components: - 0 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gtpv1.NextExtensionHeaderType.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.NextExtensionHeaderType.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gtpv1.NextExtensionHeaderType.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.GtpExtension.ExtensionLength.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.GtpExtension.ExtensionLength.Counter: description: |- integer counter pattern @@ -20040,17 +23151,48 @@ components: - 0 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.GtpExtension.ExtensionLength.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.GtpExtension.ExtensionLength.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.GtpExtension.ExtensionLength.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.GtpExtension.Contents.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 47 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 48 + minimum: 1 + maximum: 48 + x-field-uid: 3 Pattern.Flow.GtpExtension.Contents.Counter: description: |- integer counter pattern @@ -20110,17 +23252,48 @@ components: - 0 minimum: 0 maximum: 281474976710655 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.GtpExtension.Contents.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.GtpExtension.Contents.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.GtpExtension.Contents.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.GtpExtension.NextExtensionHeader.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.GtpExtension.NextExtensionHeader.Counter: description: |- integer counter pattern @@ -20180,17 +23353,48 @@ components: - 0 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.GtpExtension.NextExtensionHeader.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.GtpExtension.NextExtensionHeader.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.GtpExtension.NextExtensionHeader.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gtpv2.Version.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 2 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 3 + minimum: 1 + maximum: 3 + x-field-uid: 3 Pattern.Flow.Gtpv2.Version.Counter: description: |- integer counter pattern @@ -20250,17 +23454,48 @@ components: - 2 minimum: 0 maximum: 7 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Version.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Version.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Version.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gtpv2.PiggybackingFlag.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Gtpv2.PiggybackingFlag.Counter: description: |- integer counter pattern @@ -20320,17 +23555,48 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gtpv2.PiggybackingFlag.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gtpv2.PiggybackingFlag.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gtpv2.PiggybackingFlag.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gtpv2.TeidFlag.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Gtpv2.TeidFlag.Counter: description: |- integer counter pattern @@ -20390,17 +23656,48 @@ components: - 0 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gtpv2.TeidFlag.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gtpv2.TeidFlag.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gtpv2.TeidFlag.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gtpv2.Spare1.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 2 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 3 + minimum: 1 + maximum: 3 + x-field-uid: 3 Pattern.Flow.Gtpv2.Spare1.Counter: description: |- integer counter pattern @@ -20460,17 +23757,48 @@ components: - 0 minimum: 0 maximum: 7 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Spare1.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Spare1.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Spare1.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gtpv2.MessageType.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.Gtpv2.MessageType.Counter: description: |- integer counter pattern @@ -20530,17 +23858,48 @@ components: - 0 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gtpv2.MessageType.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gtpv2.MessageType.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gtpv2.MessageType.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gtpv2.MessageLength.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Gtpv2.MessageLength.Counter: description: |- integer counter pattern @@ -20600,17 +23959,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gtpv2.MessageLength.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gtpv2.MessageLength.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gtpv2.MessageLength.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gtpv2.Teid.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 31 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 32 + minimum: 1 + maximum: 32 + x-field-uid: 3 Pattern.Flow.Gtpv2.Teid.Counter: description: |- integer counter pattern @@ -20670,17 +24060,48 @@ components: - 0 minimum: 0 maximum: 4294967295 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Teid.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Teid.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Teid.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gtpv2.SequenceNumber.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 23 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 24 + minimum: 1 + maximum: 24 + x-field-uid: 3 Pattern.Flow.Gtpv2.SequenceNumber.Counter: description: |- integer counter pattern @@ -20740,17 +24161,48 @@ components: - 0 minimum: 0 maximum: 16777215 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gtpv2.SequenceNumber.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gtpv2.SequenceNumber.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gtpv2.SequenceNumber.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Gtpv2.Spare2.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.Gtpv2.Spare2.Counter: description: |- integer counter pattern @@ -20810,17 +24262,48 @@ components: - 0 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Spare2.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Spare2.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Gtpv2.Spare2.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Arp.HardwareType.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Arp.HardwareType.Counter: description: |- integer counter pattern @@ -20882,19 +24365,50 @@ components: - 1 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Arp.HardwareType.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Arp.HardwareType.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Arp.HardwareType.Counter' - x-field-uid: 6 + x-field-uid: 7 x-constants: ethernet: 1 + Pattern.Flow.Arp.ProtocolType.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Arp.ProtocolType.Counter: description: |- integer counter pattern @@ -20957,20 +24471,51 @@ components: - 2048 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Arp.ProtocolType.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Arp.ProtocolType.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Arp.ProtocolType.Counter' - x-field-uid: 6 + x-field-uid: 7 x-constants: ipv4: 2048 ipv6: 34525 + Pattern.Flow.Arp.HardwareLength.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.Arp.HardwareLength.Counter: description: |- integer counter pattern @@ -21030,17 +24575,48 @@ components: - 6 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Arp.HardwareLength.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Arp.HardwareLength.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Arp.HardwareLength.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Arp.ProtocolLength.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.Arp.ProtocolLength.Counter: description: |- integer counter pattern @@ -21100,17 +24676,48 @@ components: - 4 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Arp.ProtocolLength.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Arp.ProtocolLength.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Arp.ProtocolLength.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Arp.Operation.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Arp.Operation.Counter: description: |- integer counter pattern @@ -21173,20 +24780,51 @@ components: - 1 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Arp.Operation.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Arp.Operation.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Arp.Operation.Counter' - x-field-uid: 6 + x-field-uid: 7 x-constants: request: 1 reply: 2 + Pattern.Flow.Arp.SenderHardwareAddr.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 47 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 48 + minimum: 1 + maximum: 48 + x-field-uid: 3 Pattern.Flow.Arp.SenderHardwareAddr.Counter: description: |- mac counter pattern @@ -21242,17 +24880,48 @@ components: default: - 00:00:00:00:00:00 format: mac - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Arp.SenderHardwareAddr.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Arp.SenderHardwareAddr.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Arp.SenderHardwareAddr.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Arp.SenderProtocolAddr.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 31 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 32 + minimum: 1 + maximum: 32 + x-field-uid: 3 Pattern.Flow.Arp.SenderProtocolAddr.Counter: description: |- ipv4 counter pattern @@ -21308,17 +24977,48 @@ components: default: - 0.0.0.0 format: ipv4 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Arp.SenderProtocolAddr.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Arp.SenderProtocolAddr.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Arp.SenderProtocolAddr.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Arp.TargetHardwareAddr.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 47 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 48 + minimum: 1 + maximum: 48 + x-field-uid: 3 Pattern.Flow.Arp.TargetHardwareAddr.Counter: description: |- mac counter pattern @@ -21374,17 +25074,48 @@ components: default: - 00:00:00:00:00:00 format: mac - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Arp.TargetHardwareAddr.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Arp.TargetHardwareAddr.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Arp.TargetHardwareAddr.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Arp.TargetProtocolAddr.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 31 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 32 + minimum: 1 + maximum: 32 + x-field-uid: 3 Pattern.Flow.Arp.TargetProtocolAddr.Counter: description: |- ipv4 counter pattern @@ -21440,17 +25171,48 @@ components: default: - 0.0.0.0 format: ipv4 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Arp.TargetProtocolAddr.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Arp.TargetProtocolAddr.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Arp.TargetProtocolAddr.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Icmp.Echo.Type.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.Icmp.Echo.Type.Counter: description: |- integer counter pattern @@ -21513,20 +25275,51 @@ components: - 8 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Type.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Type.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Type.Counter' - x-field-uid: 6 + x-field-uid: 7 x-constants: reply: 0 request: 8 + Pattern.Flow.Icmp.Echo.Code.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.Icmp.Echo.Code.Counter: description: |- integer counter pattern @@ -21586,17 +25379,19 @@ components: - 0 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Code.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Code.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Code.Counter' - x-field-uid: 6 + x-field-uid: 7 Pattern.Flow.Icmp.Echo.Checksum: description: |- ICMP checksum @@ -21637,6 +25432,35 @@ components: minimum: 0 maximum: 65535 x-field-uid: 3 + Pattern.Flow.Icmp.Echo.Identifier.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Icmp.Echo.Identifier.Counter: description: |- integer counter pattern @@ -21696,17 +25520,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Identifier.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Identifier.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.Identifier.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Icmp.Echo.SequenceNumber.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Icmp.Echo.SequenceNumber.Counter: description: |- integer counter pattern @@ -21766,17 +25621,19 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.SequenceNumber.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.SequenceNumber.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Icmp.Echo.SequenceNumber.Counter' - x-field-uid: 6 + x-field-uid: 7 Pattern.Flow.Icmp.Common.Checksum: description: |- ICMP checksum @@ -21817,6 +25674,35 @@ components: minimum: 0 maximum: 65535 x-field-uid: 3 + Pattern.Flow.Icmp.NextFields.Identifier.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Icmp.NextFields.Identifier.Counter: description: |- integer counter pattern @@ -21876,17 +25762,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Icmp.NextFields.Identifier.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Icmp.NextFields.Identifier.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Icmp.NextFields.Identifier.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Icmp.NextFields.SequenceNumber.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Icmp.NextFields.SequenceNumber.Counter: description: |- integer counter pattern @@ -21946,17 +25863,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Icmp.NextFields.SequenceNumber.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Icmp.NextFields.SequenceNumber.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Icmp.NextFields.SequenceNumber.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Icmpv6.Echo.Type.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.Icmpv6.Echo.Type.Counter: description: |- integer counter pattern @@ -22019,20 +25967,51 @@ components: - 128 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Type.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Type.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Type.Counter' - x-field-uid: 6 + x-field-uid: 7 x-constants: request: 128 reply: 129 + Pattern.Flow.Icmpv6.Echo.Code.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.Icmpv6.Echo.Code.Counter: description: |- integer counter pattern @@ -22092,17 +26071,48 @@ components: - 0 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Code.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Code.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Code.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Icmpv6.Echo.Identifier.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Icmpv6.Echo.Identifier.Counter: description: |- integer counter pattern @@ -22162,17 +26172,48 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Identifier.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Identifier.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.Identifier.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Icmpv6.Echo.SequenceNumber.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Icmpv6.Echo.SequenceNumber.Counter: description: |- integer counter pattern @@ -22232,17 +26273,19 @@ components: - 0 minimum: 0 maximum: 65535 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.SequenceNumber.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.SequenceNumber.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Icmpv6.Echo.SequenceNumber.Counter' - x-field-uid: 6 + x-field-uid: 7 Pattern.Flow.Icmpv6.Echo.Checksum: description: |- ICMPv6 checksum @@ -22323,6 +26366,35 @@ components: minimum: 0 maximum: 65535 x-field-uid: 3 + Pattern.Flow.Ppp.Address.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.Ppp.Address.Counter: description: |- integer counter pattern @@ -22384,19 +26456,50 @@ components: - 255 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ppp.Address.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ppp.Address.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ppp.Address.Counter' - x-field-uid: 6 + x-field-uid: 7 x-constants: standard_address: 255 + Pattern.Flow.Ppp.Control.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.Ppp.Control.Counter: description: |- integer counter pattern @@ -22458,19 +26561,50 @@ components: - 3 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ppp.Control.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Ppp.Control.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Ppp.Control.Counter' - x-field-uid: 6 + x-field-uid: 7 x-constants: unnumbered_data: 3 + Pattern.Flow.Ppp.ProtocolType.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 15 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 16 + minimum: 1 + maximum: 16 + x-field-uid: 3 Pattern.Flow.Ppp.ProtocolType.Counter: description: |- integer counter pattern @@ -22535,25 +26669,56 @@ components: maximum: 65535 auto: description: |- - The OTG implementation can provide a system generated - value for this property. If the OTG is unable to generate a value - the default value must be used. + The OTG implementation can provide a system generated + value for this property. If the OTG is unable to generate a value + the default value must be used. + type: integer + x-field-uid: 4 + default: 33 + minimum: 0 + maximum: 65535 + metric_tags: + description: |- + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Ppp.ProtocolType.MetricTag' + x-field-uid: 6 + increment: + $ref: '#/components/schemas/Pattern.Flow.Ppp.ProtocolType.Counter' + x-field-uid: 7 + decrement: + $ref: '#/components/schemas/Pattern.Flow.Ppp.ProtocolType.Counter' + x-field-uid: 8 + Pattern.Flow.Igmpv1.Version.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field type: integer - x-field-uid: 4 - default: 33 + default: 0 minimum: 0 - maximum: 65535 - metric_group: + maximum: 3 + x-field-uid: 2 + length: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 5 - increment: - $ref: '#/components/schemas/Pattern.Flow.Ppp.ProtocolType.Counter' - x-field-uid: 6 - decrement: - $ref: '#/components/schemas/Pattern.Flow.Ppp.ProtocolType.Counter' - x-field-uid: 7 + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 4 + minimum: 1 + maximum: 4 + x-field-uid: 3 Pattern.Flow.Igmpv1.Version.Counter: description: |- integer counter pattern @@ -22613,17 +26778,48 @@ components: - 1 minimum: 0 maximum: 15 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Version.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Version.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Version.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Igmpv1.Type.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 3 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 4 + minimum: 1 + maximum: 4 + x-field-uid: 3 Pattern.Flow.Igmpv1.Type.Counter: description: |- integer counter pattern @@ -22686,20 +26882,51 @@ components: - 1 minimum: 0 maximum: 15 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Type.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Type.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Type.Counter' - x-field-uid: 6 + x-field-uid: 7 x-constants: query: 1 report: 2 + Pattern.Flow.Igmpv1.Unused.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.Igmpv1.Unused.Counter: description: |- integer counter pattern @@ -22759,17 +26986,19 @@ components: - 0 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Unused.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Unused.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Igmpv1.Unused.Counter' - x-field-uid: 6 + x-field-uid: 7 Pattern.Flow.Igmpv1.Checksum: description: |- Checksum @@ -22810,6 +27039,35 @@ components: minimum: 0 maximum: 65535 x-field-uid: 3 + Pattern.Flow.Igmpv1.GroupAddress.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 31 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 32 + minimum: 1 + maximum: 32 + x-field-uid: 3 Pattern.Flow.Igmpv1.GroupAddress.Counter: description: |- ipv4 counter pattern @@ -22865,17 +27123,48 @@ components: default: - 0.0.0.0 format: ipv4 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Igmpv1.GroupAddress.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Igmpv1.GroupAddress.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Igmpv1.GroupAddress.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Mpls.Label.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 19 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 20 + minimum: 1 + maximum: 20 + x-field-uid: 3 Pattern.Flow.Mpls.Label.Counter: description: |- integer counter pattern @@ -22948,17 +27237,48 @@ components: default: 16 minimum: 0 maximum: 1048575 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 5 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Mpls.Label.MetricTag' + x-field-uid: 6 increment: $ref: '#/components/schemas/Pattern.Flow.Mpls.Label.Counter' - x-field-uid: 6 + x-field-uid: 7 decrement: $ref: '#/components/schemas/Pattern.Flow.Mpls.Label.Counter' - x-field-uid: 7 + x-field-uid: 8 + Pattern.Flow.Mpls.TrafficClass.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 2 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 3 + minimum: 1 + maximum: 3 + x-field-uid: 3 Pattern.Flow.Mpls.TrafficClass.Counter: description: |- integer counter pattern @@ -23018,17 +27338,48 @@ components: - 0 minimum: 0 maximum: 7 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Mpls.TrafficClass.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Mpls.TrafficClass.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Mpls.TrafficClass.Counter' - x-field-uid: 6 + x-field-uid: 7 + Pattern.Flow.Mpls.BottomOfStack.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 0 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 1 + minimum: 1 + maximum: 1 + x-field-uid: 3 Pattern.Flow.Mpls.BottomOfStack.Counter: description: |- integer counter pattern @@ -23101,17 +27452,48 @@ components: default: 1 minimum: 0 maximum: 1 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 5 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Mpls.BottomOfStack.MetricTag' + x-field-uid: 6 increment: $ref: '#/components/schemas/Pattern.Flow.Mpls.BottomOfStack.Counter' - x-field-uid: 6 + x-field-uid: 7 decrement: $ref: '#/components/schemas/Pattern.Flow.Mpls.BottomOfStack.Counter' - x-field-uid: 7 + x-field-uid: 8 + Pattern.Flow.Mpls.TimeToLive.MetricTag: + description: |- + Metric tag can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: object + required: + - name + properties: + name: + description: |- + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field + type: string + pattern: ^[\sa-zA-Z0-9-_()><\[\]]+$ + x-field-uid: 1 + offset: + description: |- + Offset in bits relative to start of corresponding header field + type: integer + default: 0 + minimum: 0 + maximum: 7 + x-field-uid: 2 + length: + description: |- + Number of bits to track for metrics starting from configured offset of corresponding header field + type: integer + default: 8 + minimum: 1 + maximum: 8 + x-field-uid: 3 Pattern.Flow.Mpls.TimeToLive.Counter: description: |- integer counter pattern @@ -23171,17 +27553,19 @@ components: - 64 minimum: 0 maximum: 255 - metric_group: + metric_tags: description: |- - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. - type: string - x-field-uid: 4 + One or more metric tags can be used to enable tracking portion of or all bits in a corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + type: array + items: + $ref: '#/components/schemas/Pattern.Flow.Mpls.TimeToLive.MetricTag' + x-field-uid: 5 increment: $ref: '#/components/schemas/Pattern.Flow.Mpls.TimeToLive.Counter' - x-field-uid: 5 + x-field-uid: 6 decrement: $ref: '#/components/schemas/Pattern.Flow.Mpls.TimeToLive.Counter' - x-field-uid: 6 + x-field-uid: 7 Version: description: |- Version details diff --git a/snappi/otg_pb2.py b/snappi/otg_pb2.py index e481fabe..157cd34c 100644 --- a/snappi/otg_pb2.py +++ b/snappi/otg_pb2.py @@ -16,7 +16,7 @@ from google.protobuf import empty_pb2 as google_dot_protobuf_dot_empty__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\totg.proto\x12\x03otg\x1a google/protobuf/descriptor.proto\x1a\x1bgoogle/protobuf/empty.proto\"\xaa\x02\n\x06\x43onfig\x12\x18\n\x05ports\x18\x01 \x03(\x0b\x32\t.otg.Port\x12\x16\n\x04lags\x18\x02 \x03(\x0b\x32\x08.otg.Lag\x12\x1b\n\x06layer1\x18\x03 \x03(\x0b\x32\x0b.otg.Layer1\x12\x1e\n\x08\x63\x61ptures\x18\x04 \x03(\x0b\x32\x0c.otg.Capture\x12\x1c\n\x07\x64\x65vices\x18\x05 \x03(\x0b\x32\x0b.otg.Device\x12\x18\n\x05\x66lows\x18\x06 \x03(\x0b\x32\t.otg.Flow\x12\x1f\n\x06\x65vents\x18\x07 \x01(\x0b\x32\n.otg.EventH\x00\x88\x01\x01\x12(\n\x07options\x18\x08 \x01(\x0b\x32\x12.otg.ConfigOptionsH\x01\x88\x01\x01\x12\x17\n\x04lldp\x18\t \x03(\x0b\x32\t.otg.LldpB\t\n\x07_eventsB\n\n\x08_options\"\x97\x01\n\rConfigOptions\x12+\n\x0cport_options\x18\x01 \x01(\x0b\x32\x10.otg.PortOptionsH\x00\x88\x01\x01\x12\x33\n\x10protocol_options\x18\x02 \x01(\x0b\x32\x14.otg.ProtocolOptionsH\x01\x88\x01\x01\x42\x0f\n\r_port_optionsB\x13\n\x11_protocol_options\"8\n\x04Port\x12\x15\n\x08location\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\tB\x0b\n\t_location\"G\n\x0bPortOptions\x12 \n\x13location_preemption\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x16\n\x14_location_preemption\"\x8c\x01\n\x03Lag\x12\x1b\n\x05ports\x18\x01 \x03(\x0b\x32\x0c.otg.LagPort\x12\'\n\x08protocol\x18\x02 \x01(\x0b\x32\x10.otg.LagProtocolH\x00\x88\x01\x01\x12\x16\n\tmin_links\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x04 \x01(\tB\x0b\n\t_protocolB\x0c\n\n_min_links\"u\n\x07LagPort\x12\x11\n\tport_name\x18\x01 \x01(\t\x12#\n\x04lacp\x18\x02 \x01(\x0b\x32\x10.otg.LagPortLacpH\x00\x88\x01\x01\x12)\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x17.otg.DeviceEthernetBaseB\x07\n\x05_lacp\"\xee\x01\n\x0bLagProtocol\x12\x31\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1c.otg.LagProtocol.Choice.EnumH\x00\x88\x01\x01\x12\'\n\x04lacp\x18\x02 \x01(\x0b\x32\x14.otg.LagProtocolLacpH\x01\x88\x01\x01\x12+\n\x06static\x18\x03 \x01(\x0b\x32\x16.otg.LagProtocolStaticH\x02\x88\x01\x01\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04lacp\x10\x01\x12\n\n\x06static\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_lacpB\t\n\x07_static\"3\n\x11LagProtocolStatic\x12\x13\n\x06lag_id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x42\t\n\x07_lag_id\"\xa7\x01\n\x0fLagProtocolLacp\x12\x1c\n\x0f\x61\x63tor_system_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x15\x61\x63tor_system_priority\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x16\n\tactor_key\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x12\n\x10_actor_system_idB\x18\n\x16_actor_system_priorityB\x0c\n\n_actor_key\"\x93\x03\n\x0bLagPortLacp\x12\x1e\n\x11\x61\x63tor_port_number\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12 \n\x13\x61\x63tor_port_priority\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12@\n\x0e\x61\x63tor_activity\x18\x03 \x01(\x0e\x32#.otg.LagPortLacp.ActorActivity.EnumH\x02\x88\x01\x01\x12*\n\x1dlacpdu_periodic_time_interval\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x1b\n\x0elacpdu_timeout\x18\x05 \x01(\x05H\x04\x88\x01\x01\x1a\x41\n\rActorActivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07passive\x10\x01\x12\n\n\x06\x61\x63tive\x10\x02\x42\x14\n\x12_actor_port_numberB\x16\n\x14_actor_port_priorityB\x11\n\x0f_actor_activityB \n\x1e_lacpdu_periodic_time_intervalB\x11\n\x0f_lacpdu_timeout\"i\n\x12\x44\x65viceEthernetBase\x12\x0b\n\x03mac\x18\x01 \x01(\t\x12\x10\n\x03mtu\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x1e\n\x05vlans\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x0c\n\x04name\x18\x04 \x01(\tB\x06\n\x04_mtu\"\x9e\x02\n\x0e\x44\x65viceEthernet\x12\x16\n\tport_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x30\n\nconnection\x18\x02 \x01(\x0b\x32\x17.otg.EthernetConnectionH\x01\x88\x01\x01\x12\'\n\x0eipv4_addresses\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceIpv4\x12\'\n\x0eipv6_addresses\x18\x04 \x03(\x0b\x32\x0f.otg.DeviceIpv6\x12\x0b\n\x03mac\x18\x05 \x01(\t\x12\x10\n\x03mtu\x18\x06 \x01(\x05H\x02\x88\x01\x01\x12\x1e\n\x05vlans\x18\x07 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x0c\n\x04name\x18\x08 \x01(\tB\x0c\n\n_port_nameB\r\n\x0b_connectionB\x06\n\x04_mtu\"\x9b\x02\n\x12\x45thernetConnection\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.EthernetConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08lag_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nvxlan_name\x18\x04 \x01(\tH\x03\x88\x01\x01\x1aN\n\x06\x43hoice\"D\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x12\x0c\n\x08lag_name\x10\x02\x12\x0e\n\nvxlan_name\x10\x03\x42\t\n\x07_choiceB\x0c\n\n_port_nameB\x0b\n\t_lag_nameB\r\n\x0b_vxlan_name\"\xe5\x01\n\nDeviceVlan\x12,\n\x04tpid\x18\x01 \x01(\x0e\x32\x19.otg.DeviceVlan.Tpid.EnumH\x00\x88\x01\x01\x12\x15\n\x08priority\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0f\n\x02id\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x04 \x01(\t\x1aV\n\x04Tpid\"N\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05x8100\x10\x01\x12\t\n\x05x88a8\x10\x02\x12\t\n\x05x9100\x10\x03\x12\t\n\x05x9200\x10\x04\x12\t\n\x05x9300\x10\x05\x42\x07\n\x05_tpidB\x0b\n\t_priorityB\x05\n\x03_id\"\xa1\x01\n\nDeviceIpv4\x12\x0f\n\x07gateway\x18\x01 \x01(\t\x12\x33\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv4GatewayMACH\x00\x88\x01\x01\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12\x13\n\x06prefix\x18\x04 \x01(\x05H\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\tB\x0e\n\x0c_gateway_macB\t\n\x07_prefix\"V\n\x12\x44\x65viceIpv4Loopback\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x03 \x01(\tB\n\n\x08_address\"\xcf\x01\n\x14\x44\x65viceIpv4GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv4GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xa1\x01\n\nDeviceIpv6\x12\x0f\n\x07gateway\x18\x01 \x01(\t\x12\x33\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv6GatewayMACH\x00\x88\x01\x01\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12\x13\n\x06prefix\x18\x04 \x01(\x05H\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\tB\x0e\n\x0c_gateway_macB\t\n\x07_prefix\"V\n\x12\x44\x65viceIpv6Loopback\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x03 \x01(\tB\n\n\x08_address\"\xcf\x01\n\x14\x44\x65viceIpv6GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv6GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xb4\x06\n\x06Layer1\x12\x12\n\nport_names\x18\x01 \x03(\t\x12*\n\x05speed\x18\x02 \x01(\x0e\x32\x16.otg.Layer1.Speed.EnumH\x00\x88\x01\x01\x12*\n\x05media\x18\x03 \x01(\x0e\x32\x16.otg.Layer1.Media.EnumH\x01\x88\x01\x01\x12\x18\n\x0bpromiscuous\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03mtu\x18\x05 \x01(\x05H\x03\x88\x01\x01\x12 \n\x13ieee_media_defaults\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x1b\n\x0e\x61uto_negotiate\x18\x07 \x01(\x08H\x05\x88\x01\x01\x12\x39\n\x10\x61uto_negotiation\x18\x08 \x01(\x0b\x32\x1a.otg.Layer1AutoNegotiationH\x06\x88\x01\x01\x12\x31\n\x0c\x66low_control\x18\t \x01(\x0b\x32\x16.otg.Layer1FlowControlH\x07\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x1a\x95\x02\n\x05Speed\"\x8b\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10speed_10_fd_mbps\x10\x01\x12\x14\n\x10speed_10_hd_mbps\x10\x02\x12\x15\n\x11speed_100_fd_mbps\x10\x03\x12\x15\n\x11speed_100_hd_mbps\x10\x04\x12\x10\n\x0cspeed_1_gbps\x10\x05\x12\x11\n\rspeed_10_gbps\x10\x06\x12\x11\n\rspeed_25_gbps\x10\x07\x12\x11\n\rspeed_40_gbps\x10\x08\x12\x11\n\rspeed_50_gbps\x10\t\x12\x12\n\x0espeed_100_gbps\x10\n\x12\x12\n\x0espeed_200_gbps\x10\x0b\x12\x12\n\x0espeed_400_gbps\x10\x0c\x1a\x42\n\x05Media\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63opper\x10\x01\x12\t\n\x05\x66iber\x10\x02\x12\t\n\x05sgmii\x10\x03\x42\x08\n\x06_speedB\x08\n\x06_mediaB\x0e\n\x0c_promiscuousB\x06\n\x04_mtuB\x16\n\x14_ieee_media_defaultsB\x11\n\x0f_auto_negotiateB\x13\n\x11_auto_negotiationB\x0f\n\r_flow_control\"\x93\x03\n\x15Layer1AutoNegotiation\x12 \n\x13\x61\x64vertise_1000_mbps\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_fd_mbps\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_hd_mbps\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_fd_mbps\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_hd_mbps\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rlink_training\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06rs_fec\x18\x07 \x01(\x08H\x06\x88\x01\x01\x42\x16\n\x14_advertise_1000_mbpsB\x18\n\x16_advertise_100_fd_mbpsB\x18\n\x16_advertise_100_hd_mbpsB\x17\n\x15_advertise_10_fd_mbpsB\x17\n\x15_advertise_10_hd_mbpsB\x10\n\x0e_link_trainingB\t\n\x07_rs_fec\"\xd8\x02\n\x11Layer1FlowControl\x12\x1d\n\x10\x64irected_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x06\x63hoice\x18\x02 \x01(\x0e\x32\".otg.Layer1FlowControl.Choice.EnumH\x01\x88\x01\x01\x12\x32\n\rieee_802_1qbb\x18\x03 \x01(\x0b\x32\x16.otg.Layer1Ieee8021qbbH\x02\x88\x01\x01\x12.\n\x0bieee_802_3x\x18\x04 \x01(\x0b\x32\x14.otg.Layer1Ieee8023xH\x03\x88\x01\x01\x1a\x45\n\x06\x43hoice\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rieee_802_1qbb\x10\x01\x12\x0f\n\x0bieee_802_3x\x10\x02\x42\x13\n\x11_directed_addressB\t\n\x07_choiceB\x10\n\x0e_ieee_802_1qbbB\x0e\n\x0c_ieee_802_3x\"\x11\n\x0fLayer1Ieee8023x\"\x89\x03\n\x11Layer1Ieee8021qbb\x12\x16\n\tpfc_delay\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x18\n\x0bpfc_class_0\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x18\n\x0bpfc_class_1\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x18\n\x0bpfc_class_2\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x18\n\x0bpfc_class_3\x18\x05 \x01(\x05H\x04\x88\x01\x01\x12\x18\n\x0bpfc_class_4\x18\x06 \x01(\x05H\x05\x88\x01\x01\x12\x18\n\x0bpfc_class_5\x18\x07 \x01(\x05H\x06\x88\x01\x01\x12\x18\n\x0bpfc_class_6\x18\x08 \x01(\x05H\x07\x88\x01\x01\x12\x18\n\x0bpfc_class_7\x18\t \x01(\x05H\x08\x88\x01\x01\x42\x0c\n\n_pfc_delayB\x0e\n\x0c_pfc_class_0B\x0e\n\x0c_pfc_class_1B\x0e\n\x0c_pfc_class_2B\x0e\n\x0c_pfc_class_3B\x0e\n\x0c_pfc_class_4B\x0e\n\x0c_pfc_class_5B\x0e\n\x0c_pfc_class_6B\x0e\n\x0c_pfc_class_7\"\x93\x02\n\x07\x43\x61pture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12#\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x12.otg.CaptureFilter\x12\x16\n\toverwrite\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bpacket_size\x18\x04 \x01(\x05H\x01\x88\x01\x01\x12-\n\x06\x66ormat\x18\x05 \x01(\x0e\x32\x18.otg.Capture.Format.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x06 \x01(\t\x1a\x37\n\x06\x46ormat\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04pcap\x10\x01\x12\n\n\x06pcapng\x10\x02\x42\x0c\n\n_overwriteB\x0e\n\x0c_packet_sizeB\t\n\x07_format\"\xa2\x03\n\rCaptureFilter\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.CaptureFilter.Choice.EnumH\x00\x88\x01\x01\x12\'\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x12.otg.CaptureCustomH\x01\x88\x01\x01\x12+\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x14.otg.CaptureEthernetH\x02\x88\x01\x01\x12#\n\x04vlan\x18\x04 \x01(\x0b\x32\x10.otg.CaptureVlanH\x03\x88\x01\x01\x12#\n\x04ipv4\x18\x05 \x01(\x0b\x32\x10.otg.CaptureIpv4H\x04\x88\x01\x01\x12#\n\x04ipv6\x18\x06 \x01(\x0b\x32\x10.otg.CaptureIpv6H\x05\x88\x01\x01\x1aY\n\x06\x43hoice\"O\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\x08\n\x04ipv4\x10\x04\x12\x08\n\x04ipv6\x10\x05\x42\t\n\x07_choiceB\t\n\x07_customB\x0b\n\t_ethernetB\x07\n\x05_vlanB\x07\n\x05_ipv4B\x07\n\x05_ipv6\"\xb1\x01\n\rCaptureCustom\x12\x13\n\x06offset\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x17\n\nbit_length\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x11\n\x04mask\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06negate\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_offsetB\r\n\x0b_bit_lengthB\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"h\n\x0c\x43\x61ptureField\x12\x12\n\x05value\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04mask\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06negate\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"\xdf\x01\n\x0f\x43\x61ptureEthernet\x12#\n\x03src\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12#\n\x03\x64st\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12*\n\nether_type\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12)\n\tpfc_queue\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x42\x06\n\x04_srcB\x06\n\x04_dstB\r\n\x0b_ether_typeB\x0c\n\n_pfc_queue\"\xd3\x01\n\x0b\x43\x61ptureVlan\x12(\n\x08priority\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12#\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12\"\n\x02id\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12(\n\x08protocol\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x42\x0b\n\t_priorityB\x06\n\x04_cfiB\x05\n\x03_idB\x0b\n\t_protocol\"\xd1\x06\n\x0b\x43\x61ptureIpv4\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12-\n\rheader_length\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12(\n\x08priority\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12,\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x12.\n\x0eidentification\x18\x05 \x01(\x0b\x32\x11.otg.CaptureFieldH\x04\x88\x01\x01\x12(\n\x08reserved\x18\x06 \x01(\x0b\x32\x11.otg.CaptureFieldH\x05\x88\x01\x01\x12-\n\rdont_fragment\x18\x07 \x01(\x0b\x32\x11.otg.CaptureFieldH\x06\x88\x01\x01\x12.\n\x0emore_fragments\x18\x08 \x01(\x0b\x32\x11.otg.CaptureFieldH\x07\x88\x01\x01\x12/\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\x11.otg.CaptureFieldH\x08\x88\x01\x01\x12,\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x11.otg.CaptureFieldH\t\x88\x01\x01\x12(\n\x08protocol\x18\x0b \x01(\x0b\x32\x11.otg.CaptureFieldH\n\x88\x01\x01\x12/\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\x11.otg.CaptureFieldH\x0b\x88\x01\x01\x12#\n\x03src\x18\r \x01(\x0b\x32\x11.otg.CaptureFieldH\x0c\x88\x01\x01\x12#\n\x03\x64st\x18\x0e \x01(\x0b\x32\x11.otg.CaptureFieldH\r\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_header_lengthB\x0b\n\t_priorityB\x0f\n\r_total_lengthB\x11\n\x0f_identificationB\x0b\n\t_reservedB\x10\n\x0e_dont_fragmentB\x11\n\x0f_more_fragmentsB\x12\n\x10_fragment_offsetB\x0f\n\r_time_to_liveB\x0b\n\t_protocolB\x12\n\x10_header_checksumB\x06\n\x04_srcB\x06\n\x04_dst\"\xd1\x03\n\x0b\x43\x61ptureIpv6\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12-\n\rtraffic_class\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12*\n\nflow_label\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12.\n\x0epayload_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x12+\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x11.otg.CaptureFieldH\x04\x88\x01\x01\x12)\n\thop_limit\x18\x06 \x01(\x0b\x32\x11.otg.CaptureFieldH\x05\x88\x01\x01\x12#\n\x03src\x18\x07 \x01(\x0b\x32\x11.otg.CaptureFieldH\x06\x88\x01\x01\x12#\n\x03\x64st\x18\x08 \x01(\x0b\x32\x11.otg.CaptureFieldH\x07\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_traffic_classB\r\n\x0b_flow_labelB\x11\n\x0f_payload_lengthB\x0e\n\x0c_next_headerB\x0c\n\n_hop_limitB\x06\n\x04_srcB\x06\n\x04_dst\"\xe0\x02\n\x06\x44\x65vice\x12&\n\tethernets\x18\x01 \x03(\x0b\x32\x13.otg.DeviceEthernet\x12/\n\x0eipv4_loopbacks\x18\x02 \x03(\x0b\x32\x17.otg.DeviceIpv4Loopback\x12/\n\x0eipv6_loopbacks\x18\x03 \x03(\x0b\x32\x17.otg.DeviceIpv6Loopback\x12(\n\x04isis\x18\x04 \x01(\x0b\x32\x15.otg.DeviceIsisRouterH\x00\x88\x01\x01\x12&\n\x03\x62gp\x18\x05 \x01(\x0b\x32\x14.otg.DeviceBgpRouterH\x01\x88\x01\x01\x12$\n\x05vxlan\x18\x06 \x01(\x0b\x32\x10.otg.DeviceVxlanH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\t\x12\"\n\x04rsvp\x18\x08 \x01(\x0b\x32\x0f.otg.DeviceRsvpH\x03\x88\x01\x01\x42\x07\n\x05_isisB\x06\n\x04_bgpB\x08\n\x06_vxlanB\x07\n\x05_rsvp\"A\n\x0fProtocolOptions\x12\x1b\n\x0e\x61uto_start_all\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x11\n\x0f_auto_start_all\"\x99\x03\n\x10\x44\x65viceIsisRouter\x12\x33\n\x08instance\x18\x01 \x01(\x0b\x32\x1c.otg.DeviceIsisMultiInstanceH\x00\x88\x01\x01\x12\x11\n\tsystem_id\x18\x02 \x01(\t\x12&\n\ninterfaces\x18\x03 \x03(\x0b\x32\x12.otg.IsisInterface\x12\"\n\x05\x62\x61sic\x18\x04 \x01(\x0b\x32\x0e.otg.IsisBasicH\x01\x88\x01\x01\x12(\n\x08\x61\x64vanced\x18\x05 \x01(\x0b\x32\x11.otg.IsisAdvancedH\x02\x88\x01\x01\x12\x31\n\x0brouter_auth\x18\x06 \x01(\x0b\x32\x17.otg.IsisAuthenticationH\x03\x88\x01\x01\x12(\n\tv4_routes\x18\x07 \x03(\x0b\x32\x15.otg.IsisV4RouteRange\x12(\n\tv6_routes\x18\x08 \x03(\x0b\x32\x15.otg.IsisV6RouteRange\x12\x0c\n\x04name\x18\t \x01(\tB\x0b\n\t_instanceB\x08\n\x06_basicB\x0b\n\t_advancedB\x0e\n\x0c_router_auth\"B\n\x17\x44\x65viceIsisMultiInstance\x12\x10\n\x03iid\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05itids\x18\x02 \x03(\x05\x42\x06\n\x04_iid\"\xde\x06\n\rIsisInterface\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x13\n\x06metric\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12>\n\x0cnetwork_type\x18\x03 \x01(\x0e\x32#.otg.IsisInterface.NetworkType.EnumH\x01\x88\x01\x01\x12:\n\nlevel_type\x18\x04 \x01(\x0e\x32!.otg.IsisInterface.LevelType.EnumH\x02\x88\x01\x01\x12\x31\n\x0bl1_settings\x18\x05 \x01(\x0b\x32\x17.otg.IsisInterfaceLevelH\x03\x88\x01\x01\x12\x31\n\x0bl2_settings\x18\x06 \x01(\x0b\x32\x17.otg.IsisInterfaceLevelH\x04\x88\x01\x01\x12\'\n\x12multi_topology_ids\x18\x07 \x03(\x0b\x32\x0b.otg.IsisMT\x12-\n\x13traffic_engineering\x18\x08 \x03(\x0b\x32\x10.otg.LinkStateTE\x12=\n\x0e\x61uthentication\x18\t \x01(\x0b\x32 .otg.IsisInterfaceAuthenticationH\x05\x88\x01\x01\x12\x31\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x1a.otg.IsisInterfaceAdvancedH\x06\x88\x01\x01\x12>\n\x0flink_protection\x18\x0b \x01(\x0b\x32 .otg.IsisInterfaceLinkProtectionH\x07\x88\x01\x01\x12\x13\n\x0bsrlg_values\x18\x0c \x03(\x05\x12\x0c\n\x04name\x18\r \x01(\t\x1aI\n\x0bNetworkType\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tbroadcast\x10\x01\x12\x12\n\x0epoint_to_point\x10\x02\x1aM\n\tLevelType\"@\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x12\r\n\tlevel_1_2\x10\x03\x42\t\n\x07_metricB\x0f\n\r_network_typeB\r\n\x0b_level_typeB\x0e\n\x0c_l1_settingsB\x0e\n\x0c_l2_settingsB\x11\n\x0f_authenticationB\x0b\n\t_advancedB\x12\n\x10_link_protection\"\x96\x01\n\x12IsisInterfaceLevel\x12\x15\n\x08priority\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x1a\n\rdead_interval\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x0b\n\t_priorityB\x11\n\x0f_hello_intervalB\x10\n\x0e_dead_interval\"P\n\x06IsisMT\x12\x12\n\x05mt_id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x18\n\x0blink_metric\x18\x02 \x01(\x05H\x01\x88\x01\x01\x42\x08\n\x06_mt_idB\x0e\n\x0c_link_metric\"\xc1\x02\n\x0bLinkStateTE\x12!\n\x14\x61\x64ministrative_group\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cmetric_level\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x19\n\x0cmax_bandwith\x18\x03 \x01(\x03H\x02\x88\x01\x01\x12%\n\x18max_reservable_bandwidth\x18\x04 \x01(\x03H\x03\x88\x01\x01\x12\x42\n\x13priority_bandwidths\x18\x05 \x01(\x0b\x32 .otg.LinkStatepriorityBandwidthsH\x04\x88\x01\x01\x42\x17\n\x15_administrative_groupB\x0f\n\r_metric_levelB\x0f\n\r_max_bandwithB\x1b\n\x19_max_reservable_bandwidthB\x16\n\x14_priority_bandwidths\"\xed\x01\n\x1bLinkStatepriorityBandwidths\x12\x10\n\x03pb0\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x10\n\x03pb1\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x10\n\x03pb2\x18\x03 \x01(\x03H\x02\x88\x01\x01\x12\x10\n\x03pb3\x18\x04 \x01(\x03H\x03\x88\x01\x01\x12\x10\n\x03pb4\x18\x05 \x01(\x03H\x04\x88\x01\x01\x12\x10\n\x03pb5\x18\x06 \x01(\x03H\x05\x88\x01\x01\x12\x10\n\x03pb6\x18\x07 \x01(\x03H\x06\x88\x01\x01\x12\x10\n\x03pb7\x18\x08 \x01(\x03H\x07\x88\x01\x01\x42\x06\n\x04_pb0B\x06\n\x04_pb1B\x06\n\x04_pb2B\x06\n\x04_pb3B\x06\n\x04_pb4B\x06\n\x04_pb5B\x06\n\x04_pb6B\x06\n\x04_pb7\"\xda\x01\n\x1bIsisInterfaceAuthentication\x12\x41\n\tauth_type\x18\x01 \x01(\x0e\x32..otg.IsisInterfaceAuthentication.AuthType.Enum\x12\x10\n\x03md5\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x01\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x06\n\x04_md5B\x0b\n\t_password\"\xd3\x02\n\x15IsisInterfaceAdvanced\x12\x1c\n\x0f\x61uto_adjust_mtu\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1d\n\x10\x61uto_adjust_area\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12,\n\x1f\x61uto_adjust_supported_protocols\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\"\n\x15\x65nable_3way_handshake\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12&\n\x19p2p_hellos_to_unicast_mac\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\x12\n\x10_auto_adjust_mtuB\x13\n\x11_auto_adjust_areaB\"\n _auto_adjust_supported_protocolsB\x18\n\x16_enable_3way_handshakeB\x1c\n\x1a_p2p_hellos_to_unicast_mac\"\xf9\x02\n\x1bIsisInterfaceLinkProtection\x12\x1a\n\rextra_traffic\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bunprotected\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06shared\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1d\n\x10\x64\x65\x64icated_1_to_1\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1f\n\x12\x64\x65\x64icated_1_plus_1\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08\x65nhanced\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x18\n\x0breserved_40\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x18\n\x0breserved_80\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x10\n\x0e_extra_trafficB\x0e\n\x0c_unprotectedB\t\n\x07_sharedB\x13\n\x11_dedicated_1_to_1B\x15\n\x13_dedicated_1_plus_1B\x0b\n\t_enhancedB\x0e\n\x0c_reserved_40B\x0e\n\x0c_reserved_80\"\xd5\x01\n\tIsisBasic\x12\x1e\n\x11ipv4_te_router_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08hostname\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12\x65nable_wide_metric\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1f\n\x12learned_lsp_filter\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\x14\n\x12_ipv4_te_router_idB\x0b\n\t_hostnameB\x15\n\x13_enable_wide_metricB\x15\n\x13_learned_lsp_filter\"\x8a\x04\n\x0cIsisAdvanced\x12!\n\x14\x65nable_hello_padding\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1f\n\x12max_area_addresses\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x16\n\x0e\x61rea_addresses\x18\x03 \x03(\t\x12\x1d\n\x10lsp_refresh_rate\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x19\n\x0clsp_lifetime\x18\x05 \x01(\x05H\x03\x88\x01\x01\x12\x1a\n\rpsnp_interval\x18\x06 \x01(\x05H\x04\x88\x01\x01\x12\x1a\n\rcsnp_interval\x18\x07 \x01(\x05H\x05\x88\x01\x01\x12\x19\n\x0cmax_lsp_size\x18\x08 \x01(\x05H\x06\x88\x01\x01\x12*\n\x1dlsp_mgroup_min_trans_interval\x18\t \x01(\x05H\x07\x88\x01\x01\x12 \n\x13\x65nable_attached_bit\x18\n \x01(\x08H\x08\x88\x01\x01\x42\x17\n\x15_enable_hello_paddingB\x15\n\x13_max_area_addressesB\x13\n\x11_lsp_refresh_rateB\x0f\n\r_lsp_lifetimeB\x10\n\x0e_psnp_intervalB\x10\n\x0e_csnp_intervalB\x0f\n\r_max_lsp_sizeB \n\x1e_lsp_mgroup_min_trans_intervalB\x16\n\x14_enable_attached_bit\"\xd6\x01\n\x12IsisAuthentication\x12\x1f\n\x12ignore_receive_md5\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x33\n\tarea_auth\x18\x02 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBaseH\x01\x88\x01\x01\x12\x35\n\x0b\x64omain_auth\x18\x03 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBaseH\x02\x88\x01\x01\x42\x15\n\x13_ignore_receive_md5B\x0c\n\n_area_authB\x0e\n\x0c_domain_auth\"\xd0\x01\n\x16IsisAuthenticationBase\x12<\n\tauth_type\x18\x01 \x01(\x0e\x32).otg.IsisAuthenticationBase.AuthType.Enum\x12\x10\n\x03md5\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x01\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x06\n\x04_md5B\x0b\n\t_password\"\xca\x04\n\x10IsisV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV4RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV4RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\t\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x06\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"{\n\x0eV4RouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\x05H\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"{\n\x0eV6RouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\x05H\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"|\n\x0fMACRouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\x05H\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"\xca\x04\n\x10IsisV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV6RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV6RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\t\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x06\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"\x80\x01\n\x0f\x44\x65viceBgpRouter\x12\x11\n\trouter_id\x18\x01 \x01(\t\x12,\n\x0fipv4_interfaces\x18\x02 \x03(\x0b\x32\x13.otg.BgpV4Interface\x12,\n\x0fipv6_interfaces\x18\x03 \x03(\x0b\x32\x13.otg.BgpV6Interface\"\x90\x02\n\x1b\x44\x65viceBgpMessageHeaderError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpMessageHeaderError.Subcode.EnumH\x00\x88\x01\x01\x1a\x9f\x01\n\x07Subcode\"\x93\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12.\n*connection_not_synchronized_code1_subcode1\x10\x01\x12%\n!bad_message_length_code1_subcode2\x10\x02\x12#\n\x1f\x62\x61\x64_message_type_code1_subcode3\x10\x03\x42\n\n\x08_subcode\"\xaa\x03\n\x19\x44\x65viceBgpOpenMessageError\x12\x41\n\x07subcode\x18\x01 \x01(\x0e\x32+.otg.DeviceBgpOpenMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xbd\x02\n\x07Subcode\"\xb1\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12-\n)unsupported_version_number_code2_subcode1\x10\x01\x12 \n\x1c\x65rror_peer_as_code2_subcode2\x10\x02\x12\x1f\n\x1b\x65rror_bgp_id_code2_subcode3\x10\x03\x12\x31\n-unsupported_optional_parameter_code2_subcode4\x10\x04\x12\x1e\n\x1a\x61uth_failed_code2_subcode5\x10\x05\x12(\n$unsupported_hold_time_code2_subcode6\x10\x06\x12)\n%unsupported_capability_code2_subcode7\x10\x07\x42\n\n\x08_subcode\"\xdc\x04\n\x1b\x44\x65viceBgpUpdateMessageError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpUpdateMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xeb\x03\n\x07Subcode\"\xdf\x03\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12(\n$malformed_attrib_list_code3_subcode1\x10\x01\x12\x30\n,unrecognized_wellknown_attrib_code3_subcode2\x10\x02\x12+\n\'wellknown_attrib_missing_code3_subcode3\x10\x03\x12%\n!attrib_flags_error_code3_subcode4\x10\x04\x12&\n\"attrib_length_error_code3_subcode5\x10\x05\x12(\n$invalid_origin_attrib_code3_subcode6\x10\x06\x12\"\n\x1e\x61s_routing_loop_code3_subcode7\x10\x07\x12&\n\"invalid_nhop_attrib_code3_subcode8\x10\x08\x12(\n$error_optional_attrib_code3_subcode9\x10\t\x12)\n%invalid_network_field_code3_subcode10\x10\n\x12#\n\x1f\x61\x62normal_aspath_code3_subcode11\x10\x0b\x42\n\n\x08_subcode\"\x1b\n\x19\x44\x65viceBgpHoldTimerExpired\"\"\n DeviceBgpFiniteStateMachineError\"\xe3\x03\n\x13\x44\x65viceBgpCeaseError\x12;\n\x07subcode\x18\x01 \x01(\x0e\x32%.otg.DeviceBgpCeaseError.Subcode.EnumH\x00\x88\x01\x01\x1a\x82\x03\n\x07Subcode\"\xf6\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12,\n(max_number_prefix_reached_code6_subcode1\x10\x01\x12!\n\x1d\x61\x64min_shutdown_code6_subcode2\x10\x02\x12\x1f\n\x1bpeer_deleted_code6_subcode3\x10\x03\x12\x1e\n\x1a\x61\x64min_reset_code6_subcode4\x10\x04\x12$\n connection_reject_code6_subcode5\x10\x05\x12\'\n#other_config_changes_code6_subcode6\x10\x06\x12\x32\n.connection_collision_resolution_code6_subcode7\x10\x07\x12#\n\x1fout_of_resources_code6_subcode8\x10\x08\x12#\n\x1f\x62\x66\x64_session_down_code6_subcode9\x10\tB\n\n\x08_subcode\"T\n\x14\x44\x65viceBgpCustomError\x12\x11\n\x04\x63ode\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x14\n\x07subcode\x18\x02 \x01(\x05H\x01\x88\x01\x01\x42\x07\n\x05_codeB\n\n\x08_subcode\"\xce\x06\n\tBgpV4Peer\x12\x14\n\x0cpeer_address\x18\x01 \x01(\t\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x02 \x03(\x0b\x32\x19.otg.BgpV4EthernetSegment\x12+\n\x07\x61s_type\x18\x03 \x01(\x0e\x32\x1a.otg.BgpV4Peer.AsType.Enum\x12\x11\n\tas_number\x18\x04 \x01(\x05\x12?\n\x0f\x61s_number_width\x18\x05 \x01(\x0e\x32!.otg.BgpV4Peer.AsNumberWidth.EnumH\x00\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x10.otg.BgpAdvancedH\x01\x88\x01\x01\x12+\n\ncapability\x18\x07 \x01(\x0b\x32\x12.otg.BgpCapabilityH\x02\x88\x01\x01\x12I\n\x1alearned_information_filter\x18\x08 \x01(\x0b\x32 .otg.BgpLearnedInformationFilterH\x03\x88\x01\x01\x12\'\n\tv4_routes\x18\t \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0b \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x0c\n\x04name\x18\r \x01(\t\x12\x36\n\x10graceful_restart\x18\x0e \x01(\x0b\x32\x17.otg.BgpGracefulRestartH\x04\x88\x01\x01\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x12\n\x10_as_number_widthB\x0b\n\t_advancedB\r\n\x0b_capabilityB\x1d\n\x1b_learned_information_filterB\x13\n\x11_graceful_restart\"B\n\x0e\x42gpV4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV4Peer\"\xa8\x04\n\x14\x42gpV4EthernetSegment\x12;\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElectionH\x00\x88\x01\x01\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV4EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV4EthernetSegment.ActiveMode.EnumH\x02\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\x05H\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x0e\n\x0c_df_electionB\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_labelB\x0b\n\t_advancedB\n\n\x08_as_path\"N\n\x1c\x42gpEthernetSegmentDfElection\x12\x1b\n\x0e\x65lection_timer\x18\x01 \x01(\x05H\x00\x88\x01\x01\x42\x11\n\x0f_election_timer\"\xda\x03\n\x10\x42gpRouteAdvanced\x12-\n include_multi_exit_discriminator\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\x01 \x01(\x05H\x01\x88\x01\x01\x12\x1b\n\x0einclude_origin\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x36\n\x06origin\x18\x02 \x01(\x0e\x32!.otg.BgpRouteAdvanced.Origin.EnumH\x03\x88\x01\x01\x12%\n\x18include_local_preference\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1d\n\x10local_preference\x18\x06 \x01(\x05H\x05\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42#\n!_include_multi_exit_discriminatorB\x1b\n\x19_multi_exit_discriminatorB\x11\n\x0f_include_originB\t\n\x07_originB\x1b\n\x19_include_local_preferenceB\x13\n\x11_local_preference\"\xa4\x02\n\x0c\x42gpCommunity\x12.\n\x04type\x18\x01 \x01(\x0e\x32\x1b.otg.BgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\x05H\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"\xf9\x03\n\x0f\x42gpExtCommunity\x12\x31\n\x04type\x18\x01 \x01(\x0e\x32\x1e.otg.BgpExtCommunity.Type.EnumH\x00\x88\x01\x01\x12\x37\n\x07subtype\x18\x02 \x01(\x0e\x32!.otg.BgpExtCommunity.Subtype.EnumH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\xbc\x01\n\x04Type\"\xb3\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x61\x64ministrator_as_2octet\x10\x01\x12\x1e\n\x1a\x61\x64ministrator_ipv4_address\x10\x02\x12\x1b\n\x17\x61\x64ministrator_as_4octet\x10\x03\x12\n\n\x06opaque\x10\x04\x12\x08\n\x04\x65vpn\x10\x05\x12*\n&administrator_as_2octet_link_bandwidth\x10\x06\x1a\x87\x01\n\x07Subtype\"|\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0croute_target\x10\x01\x12\n\n\x06origin\x10\x02\x12\x16\n\x12\x65xtended_bandwidth\x10\x03\x12\t\n\x05\x63olor\x10\x04\x12\x11\n\rencapsulation\x10\x05\x12\x0f\n\x0bmac_address\x10\x06\x42\x07\n\x05_typeB\n\n\x08_subtypeB\x08\n\x06_value\"\xbe\x02\n\tBgpAsPath\x12\x37\n\x0b\x61s_set_mode\x18\x01 \x01(\x0e\x32\x1d.otg.BgpAsPath.AsSetMode.EnumH\x00\x88\x01\x01\x12\'\n\x08segments\x18\x02 \x03(\x0b\x32\x15.otg.BgpAsPathSegment\x1a\xbe\x01\n\tAsSetMode\"\xb0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x64o_not_include_local_as\x10\x01\x12\x12\n\x0einclude_as_seq\x10\x02\x12\x12\n\x0einclude_as_set\x10\x03\x12\x19\n\x15include_as_confed_seq\x10\x04\x12\x19\n\x15include_as_confed_set\x10\x05\x12\x1c\n\x18prepend_to_first_segment\x10\x06\x42\x0e\n\x0c_as_set_mode\"\xc2\x01\n\x10\x42gpAsPathSegment\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\x03\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"\xbb\x01\n\rBgpV4EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV4EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12*\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV4EviVxlanH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_evi_vxlan\"\xa3\x06\n\rBgpV4EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV4EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV4EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12<\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisherH\x03\x88\x01\x01\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12,\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_labelB\x16\n\x14_route_distinguisherB\x0b\n\t_advancedB\n\n\x08_as_path\"\xb4\x01\n\x1c\x42gpV4EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\x03H\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"\xae\x04\n\x0e\x42gpCMacIpRange\x12\x30\n\rmac_addresses\x18\x01 \x01(\x0b\x32\x14.otg.MACRouteAddressH\x00\x88\x01\x01\x12\x12\n\x05l2vni\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x30\n\x0eipv4_addresses\x18\x03 \x01(\x0b\x32\x13.otg.V4RouteAddressH\x02\x88\x01\x01\x12\x30\n\x0eipv6_addresses\x18\x04 \x01(\x0b\x32\x13.otg.V6RouteAddressH\x03\x88\x01\x01\x12\x12\n\x05l3vni\x18\x05 \x01(\x05H\x04\x88\x01\x01\x12$\n\x17include_default_gateway\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x08 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\t \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x07\x88\x01\x01\x12\x0c\n\x04name\x18\x0b \x01(\tB\x10\n\x0e_mac_addressesB\x08\n\x06_l2vniB\x11\n\x0f_ipv4_addressesB\x11\n\x0f_ipv6_addressesB\x08\n\x06_l3vniB\x1a\n\x18_include_default_gatewayB\x0b\n\t_advancedB\n\n\x08_as_path\"\x98\x02\n\x15\x42gpRouteDistinguisher\x12<\n\x07rd_type\x18\x01 \x01(\x0e\x32&.otg.BgpRouteDistinguisher.RdType.EnumH\x00\x88\x01\x01\x12#\n\x16\x61uto_config_rd_ip_addr\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x15\n\x08rd_value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1aQ\n\x06RdType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rd_typeB\x19\n\x17_auto_config_rd_ip_addrB\x0b\n\t_rd_value\"\xca\x01\n\x0e\x42gpRouteTarget\x12\x35\n\x07rt_type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpRouteTarget.RtType.EnumH\x00\x88\x01\x01\x12\x15\n\x08rt_value\x18\x02 \x01(\tH\x01\x88\x01\x01\x1aQ\n\x06RtType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rt_typeB\x0b\n\t_rt_value\"\xff\x01\n\x0b\x42gpAdvanced\x12\x1f\n\x12hold_time_interval\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12 \n\x13keep_alive_interval\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x1c\n\x0fupdate_interval\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x14\n\x07md5_key\x18\x05 \x01(\tH\x04\x88\x01\x01\x42\x15\n\x13_hold_time_intervalB\x16\n\x14_keep_alive_intervalB\x12\n\x10_update_intervalB\x0f\n\r_time_to_liveB\n\n\x08_md5_key\"\x91\n\n\rBgpCapability\x12\x19\n\x0cipv4_unicast\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0eipv4_multicast\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0cipv6_unicast\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0eipv6_multicast\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x11\n\x04vpls\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rroute_refresh\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10route_constraint\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x1f\n\x12link_state_non_vpn\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12\x1b\n\x0elink_state_vpn\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x11\n\x04\x65vpn\x18\n \x01(\x08H\t\x88\x01\x01\x12\'\n\x1a\x65xtended_next_hop_encoding\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x1f\n\x12ipv4_multicast_vpn\x18\x0c \x01(\x08H\x0b\x88\x01\x01\x12\x1a\n\ripv4_mpls_vpn\x18\r \x01(\x08H\x0c\x88\x01\x01\x12\x15\n\x08ipv4_mdt\x18\x0e \x01(\x08H\r\x88\x01\x01\x12$\n\x17ipv4_multicast_mpls_vpn\x18\x0f \x01(\x08H\x0e\x88\x01\x01\x12#\n\x16ipv4_unicast_flow_spec\x18\x10 \x01(\x08H\x0f\x88\x01\x01\x12\x1e\n\x11ipv4_sr_te_policy\x18\x11 \x01(\x08H\x10\x88\x01\x01\x12\"\n\x15ipv4_unicast_add_path\x18\x12 \x01(\x08H\x11\x88\x01\x01\x12\x1f\n\x12ipv6_multicast_vpn\x18\x13 \x01(\x08H\x12\x88\x01\x01\x12\x1a\n\ripv6_mpls_vpn\x18\x14 \x01(\x08H\x13\x88\x01\x01\x12\x15\n\x08ipv6_mdt\x18\x15 \x01(\x08H\x14\x88\x01\x01\x12$\n\x17ipv6_multicast_mpls_vpn\x18\x16 \x01(\x08H\x15\x88\x01\x01\x12#\n\x16ipv6_unicast_flow_spec\x18\x17 \x01(\x08H\x16\x88\x01\x01\x12\x1e\n\x11ipv6_sr_te_policy\x18\x18 \x01(\x08H\x17\x88\x01\x01\x12\"\n\x15ipv6_unicast_add_path\x18\x19 \x01(\x08H\x18\x88\x01\x01\x42\x0f\n\r_ipv4_unicastB\x11\n\x0f_ipv4_multicastB\x0f\n\r_ipv6_unicastB\x11\n\x0f_ipv6_multicastB\x07\n\x05_vplsB\x10\n\x0e_route_refreshB\x13\n\x11_route_constraintB\x15\n\x13_link_state_non_vpnB\x11\n\x0f_link_state_vpnB\x07\n\x05_evpnB\x1d\n\x1b_extended_next_hop_encodingB\x15\n\x13_ipv4_multicast_vpnB\x10\n\x0e_ipv4_mpls_vpnB\x0b\n\t_ipv4_mdtB\x1a\n\x18_ipv4_multicast_mpls_vpnB\x19\n\x17_ipv4_unicast_flow_specB\x14\n\x12_ipv4_sr_te_policyB\x18\n\x16_ipv4_unicast_add_pathB\x15\n\x13_ipv6_multicast_vpnB\x10\n\x0e_ipv6_mpls_vpnB\x0b\n\t_ipv6_mdtB\x1a\n\x18_ipv6_multicast_mpls_vpnB\x19\n\x17_ipv6_unicast_flow_specB\x14\n\x12_ipv6_sr_te_policyB\x18\n\x16_ipv6_unicast_add_path\"\x91\x01\n\x1b\x42gpLearnedInformationFilter\x12 \n\x13unicast_ipv4_prefix\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12 \n\x13unicast_ipv6_prefix\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x16\n\x14_unicast_ipv4_prefixB\x16\n\x14_unicast_ipv6_prefix\"\x82\x06\n\x0f\x42gpV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV4RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV4RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12$\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x06\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\n\n\x08_as_pathB\x0b\n\t_add_path\".\n\nBgpAddPath\x12\x14\n\x07path_id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x42\n\n\x08_path_id\"\x82\x06\n\x0f\x42gpV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV6RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV6RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12$\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x06\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\n\n\x08_as_pathB\x0b\n\t_add_path\"\x8b\x07\n\x0f\x42gpSrteV4Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x15\n\ripv4_endpoint\x18\x03 \x01(\t\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV4Policy.NextHopMode.EnumH\x02\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV4Policy.NextHopAddressType.EnumH\x03\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x07\x88\x01\x01\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x08\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV4TunnelTlv\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\t\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\x0b\n\t_add_pathB\n\n\x08_as_pathB\t\n\x07_active\"\xff\x05\n\x12\x42gpSrteV4TunnelTlv\x12\x46\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlvH\x00\x88\x01\x01\x12\x33\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlvH\x01\x88\x01\x01\x12\x37\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlvH\x02\x88\x01\x01\x12=\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlvH\x03\x88\x01\x01\x12\x46\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlvH\x04\x88\x01\x01\x12>\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlvH\x05\x88\x01\x01\x12Z\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlvH\x06\x88\x01\x01\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x0c\n\x04name\x18\t \x01(\t\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x07\x88\x01\x01\x42\x1a\n\x18_remote_endpoint_sub_tlvB\x10\n\x0e_color_sub_tlvB\x12\n\x10_binding_sub_tlvB\x15\n\x13_preference_sub_tlvB\x1a\n\x18_policy_priority_sub_tlvB\x16\n\x14_policy_name_sub_tlvB%\n#_explicit_null_label_policy_sub_tlvB\t\n\x07_active\"\xbe\x02\n\x1b\x42gpSrteRemoteEndpointSubTlv\x12\x16\n\tas_number\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12P\n\x0e\x61\x64\x64ress_family\x18\x02 \x01(\x0e\x32\x33.otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.EnumH\x01\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cipv6_address\x18\x04 \x01(\tH\x03\x88\x01\x01\x1a<\n\rAddressFamily\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x0c\n\n_as_numberB\x11\n\x0f_address_familyB\x0f\n\r_ipv4_addressB\x0f\n\r_ipv6_address\"2\n\x12\x42gpSrteColorSubTlv\x12\x12\n\x05\x63olor\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_color\"\xea\x02\n\x14\x42gpSrteBindingSubTlv\x12L\n\x10\x62inding_sid_type\x18\x01 \x01(\x0e\x32-.otg.BgpSrteBindingSubTlv.BindingSidType.EnumH\x00\x88\x01\x01\x12\x1b\n\x0e\x66our_octet_sid\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x15\n\x08ipv6_sid\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06s_flag\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06i_flag\x18\x05 \x01(\x08H\x04\x88\x01\x01\x1a[\n\x0e\x42indingSidType\"I\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nno_binding\x10\x01\x12\x12\n\x0e\x66our_octet_sid\x10\x02\x12\x0c\n\x08ipv6_sid\x10\x03\x42\x13\n\x11_binding_sid_typeB\x11\n\x0f_four_octet_sidB\x0b\n\t_ipv6_sidB\t\n\x07_s_flagB\t\n\x07_i_flag\"A\n\x17\x42gpSrtePreferenceSubTlv\x12\x17\n\npreference\x18\x01 \x01(\x03H\x00\x88\x01\x01\x42\r\n\x0b_preference\"O\n\x1b\x42gpSrtePolicyPrioritySubTlv\x12\x1c\n\x0fpolicy_priority\x18\x01 \x01(\x05H\x00\x88\x01\x01\x42\x12\n\x10_policy_priority\"C\n\x17\x42gpSrtePolicyNameSubTlv\x12\x18\n\x0bpolicy_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_policy_name\"\xd6\x02\n$BgpSrteExplicitNullLabelPolicySubTlv\x12o\n\x1a\x65xplicit_null_label_policy\x18\x01 \x01(\x0e\x32\x46.otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.EnumH\x00\x88\x01\x01\x1a\x9d\x01\n\x17\x45xplicitNullLabelPolicy\"\x81\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rreserved_enlp\x10\x01\x12\x12\n\x0epush_ipv4_enlp\x10\x02\x12\x12\n\x0epush_ipv6_enlp\x10\x03\x12\x17\n\x13push_ipv4_ipv6_enlp\x10\x04\x12\x14\n\x10\x64o_not_push_enlp\x10\x05\x42\x1d\n\x1b_explicit_null_label_policy\"\x89\x01\n\x12\x42gpSrteSegmentList\x12\x13\n\x06weight\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12%\n\x08segments\x18\x02 \x03(\x0b\x32\x13.otg.BgpSrteSegment\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x04 \x01(\x08H\x01\x88\x01\x01\x42\t\n\x07_weightB\t\n\x07_active\"\xe8\x07\n\x0e\x42gpSrteSegment\x12:\n\x0csegment_type\x18\x01 \x01(\x0e\x32$.otg.BgpSrteSegment.SegmentType.Enum\x12\x33\n\x06type_a\x18\x02 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentATypeSubTlvH\x00\x88\x01\x01\x12\x33\n\x06type_b\x18\x03 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentBTypeSubTlvH\x01\x88\x01\x01\x12\x33\n\x06type_c\x18\x04 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentCTypeSubTlvH\x02\x88\x01\x01\x12\x33\n\x06type_d\x18\x05 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentDTypeSubTlvH\x03\x88\x01\x01\x12\x33\n\x06type_e\x18\x06 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentETypeSubTlvH\x04\x88\x01\x01\x12\x33\n\x06type_f\x18\x07 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentFTypeSubTlvH\x05\x88\x01\x01\x12\x33\n\x06type_g\x18\x08 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentGTypeSubTlvH\x06\x88\x01\x01\x12\x33\n\x06type_h\x18\t \x01(\x0b\x32\x1e.otg.BgpSrteSegmentHTypeSubTlvH\x07\x88\x01\x01\x12\x33\n\x06type_i\x18\n \x01(\x0b\x32\x1e.otg.BgpSrteSegmentITypeSubTlvH\x08\x88\x01\x01\x12\x33\n\x06type_j\x18\x0b \x01(\x0b\x32\x1e.otg.BgpSrteSegmentJTypeSubTlvH\t\x88\x01\x01\x12\x33\n\x06type_k\x18\x0c \x01(\x0b\x32\x1e.otg.BgpSrteSegmentKTypeSubTlvH\n\x88\x01\x01\x12\x0c\n\x04name\x18\r \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0e \x01(\x08H\x0b\x88\x01\x01\x1a\xab\x01\n\x0bSegmentType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06type_a\x10\x01\x12\n\n\x06type_b\x10\x02\x12\n\n\x06type_c\x10\x03\x12\n\n\x06type_d\x10\x04\x12\n\n\x06type_e\x10\x05\x12\n\n\x06type_f\x10\x06\x12\n\n\x06type_g\x10\x07\x12\n\n\x06type_h\x10\x08\x12\n\n\x06type_i\x10\t\x12\n\n\x06type_j\x10\n\x12\n\n\x06type_k\x10\x0b\x42\t\n\x07_type_aB\t\n\x07_type_bB\t\n\x07_type_cB\t\n\x07_type_dB\t\n\x07_type_eB\t\n\x07_type_fB\t\n\x07_type_gB\t\n\x07_type_hB\t\n\x07_type_iB\t\n\x07_type_jB\t\n\x07_type_kB\t\n\x07_active\"\x80\x01\n\x10\x42gpSrteSrMplsSid\x12\x12\n\x05label\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x0f\n\x02tc\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05s_bit\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03ttl\x18\x04 \x01(\x05H\x03\x88\x01\x01\x42\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xca\x01\n*BgpSrteSRv6SIDEndpointBehaviorAndStructure\x12\x16\n\tlb_length\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x16\n\tln_length\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x18\n\x0b\x66unc_length\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x17\n\narg_length\x18\x04 \x01(\x05H\x03\x88\x01\x01\x42\x0c\n\n_lb_lengthB\x0c\n\n_ln_lengthB\x0e\n\x0c_func_lengthB\r\n\x0b_arg_length\"\xa7\x01\n\x19\x42gpSrteSegmentATypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05label\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0f\n\x02tc\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x12\n\x05s_bit\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x10\n\x03ttl\x18\x05 \x01(\x05H\x04\x88\x01\x01\x42\x08\n\x06_flagsB\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xc4\x01\n\x19\x42gpSrteSegmentBTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08srv6_sid\x18\x02 \x01(\t\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x03 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xc1\x01\n\x19\x42gpSrteSegmentCTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x19\n\x11ipv4_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0e\n\x0c_sr_mpls_sid\"\xc1\x01\n\x19\x42gpSrteSegmentDTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x19\n\x11ipv6_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0e\n\x0c_sr_mpls_sid\"\xcd\x01\n\x19\x42gpSrteSegmentETypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x19\n\x11ipv4_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x0e\n\x0c_sr_mpls_sid\"\xb3\x01\n\x19\x42gpSrteSegmentFTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\x12local_ipv4_address\x18\x02 \x01(\t\x12\x1b\n\x13remote_ipv4_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x0e\n\x0c_sr_mpls_sid\"\xaf\x02\n\x19\x42gpSrteSegmentGTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x1f\n\x17local_ipv6_node_address\x18\x03 \x01(\t\x12 \n\x13remote_interface_id\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12 \n\x18remote_ipv6_node_address\x18\x05 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x06 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x16\n\x14_remote_interface_idB\x0e\n\x0c_sr_mpls_sid\"\xb3\x01\n\x19\x42gpSrteSegmentHTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\x12local_ipv6_address\x18\x02 \x01(\t\x12\x1b\n\x13remote_ipv6_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x0e\n\x0c_sr_mpls_sid\"\xf1\x01\n\x19\x42gpSrteSegmentITypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x11ipv6_node_address\x18\x02 \x01(\t\x12\x15\n\x08srv6_sid\x18\x03 \x01(\tH\x01\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x04 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xb7\x03\n\x19\x42gpSrteSegmentJTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x1f\n\x17local_ipv6_node_address\x18\x04 \x01(\t\x12 \n\x13remote_interface_id\x18\x05 \x01(\x05H\x03\x88\x01\x01\x12 \n\x18remote_ipv6_node_address\x18\x06 \x01(\t\x12\x15\n\x08srv6_sid\x18\x07 \x01(\tH\x04\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x08 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x05\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x15\n\x13_local_interface_idB\x16\n\x14_remote_interface_idB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xbb\x02\n\x19\x42gpSrteSegmentKTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x1a\n\x12local_ipv6_address\x18\x03 \x01(\t\x12\x1b\n\x13remote_ipv6_address\x18\x04 \x01(\t\x12\x15\n\x08srv6_sid\x18\x05 \x01(\tH\x02\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x06 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\x8a\x07\n\x0f\x42gpSrteV6Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x15\n\ripv6_endpoint\x18\x03 \x01(\t\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV6Policy.NextHopMode.EnumH\x02\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV6Policy.NextHopAddressType.EnumH\x03\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x07\x88\x01\x01\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x08\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12,\n\x0e\x65xtcommunities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV6TunnelTlv\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\t\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\x0b\n\t_add_pathB\n\n\x08_as_pathB\t\n\x07_active\"\xff\x05\n\x12\x42gpSrteV6TunnelTlv\x12\x46\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlvH\x00\x88\x01\x01\x12\x33\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlvH\x01\x88\x01\x01\x12\x37\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlvH\x02\x88\x01\x01\x12=\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlvH\x03\x88\x01\x01\x12\x46\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlvH\x04\x88\x01\x01\x12>\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlvH\x05\x88\x01\x01\x12Z\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlvH\x06\x88\x01\x01\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x0c\n\x04name\x18\t \x01(\t\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x07\x88\x01\x01\x42\x1a\n\x18_remote_endpoint_sub_tlvB\x10\n\x0e_color_sub_tlvB\x12\n\x10_binding_sub_tlvB\x15\n\x13_preference_sub_tlvB\x1a\n\x18_policy_priority_sub_tlvB\x16\n\x14_policy_name_sub_tlvB%\n#_explicit_null_label_policy_sub_tlvB\t\n\x07_active\"\xb8\x01\n\x12\x42gpGracefulRestart\x12\x16\n\tenable_gr\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0crestart_time\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0b\x65nable_llgr\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x17\n\nstale_time\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0c\n\n_enable_grB\x0f\n\r_restart_timeB\x0e\n\x0c_enable_llgrB\r\n\x0b_stale_time\"\x9a\x07\n\tBgpV6Peer\x12\x14\n\x0cpeer_address\x18\x01 \x01(\t\x12\x36\n\x0fsegment_routing\x18\x02 \x01(\x0b\x32\x18.otg.BgpV6SegmentRoutingH\x00\x88\x01\x01\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x03 \x03(\x0b\x32\x19.otg.BgpV6EthernetSegment\x12+\n\x07\x61s_type\x18\x04 \x01(\x0e\x32\x1a.otg.BgpV6Peer.AsType.Enum\x12\x11\n\tas_number\x18\x05 \x01(\x05\x12?\n\x0f\x61s_number_width\x18\x06 \x01(\x0e\x32!.otg.BgpV6Peer.AsNumberWidth.EnumH\x01\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x10.otg.BgpAdvancedH\x02\x88\x01\x01\x12+\n\ncapability\x18\x08 \x01(\x0b\x32\x12.otg.BgpCapabilityH\x03\x88\x01\x01\x12I\n\x1alearned_information_filter\x18\t \x01(\x0b\x32 .otg.BgpLearnedInformationFilterH\x04\x88\x01\x01\x12\'\n\tv4_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\x0b \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\r \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x36\n\x10graceful_restart\x18\x0f \x01(\x0b\x32\x17.otg.BgpGracefulRestartH\x05\x88\x01\x01\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x12\n\x10_segment_routingB\x12\n\x10_as_number_widthB\x0b\n\t_advancedB\r\n\x0b_capabilityB\x1d\n\x1b_learned_information_filterB\x13\n\x11_graceful_restart\"B\n\x0e\x42gpV6Interface\x12\x11\n\tipv6_name\x18\x01 \x01(\t\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV6Peer\"\xf1\x03\n\x13\x42gpV6SegmentRouting\x12!\n\x14ingress_supports_vpn\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15reduced_encapsulation\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1e\n\x11\x63opy_time_to_live\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x1d\n\x10max_sids_per_srh\x18\x05 \x01(\x05H\x04\x88\x01\x01\x12-\n auto_generate_segment_left_value\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1f\n\x12segment_left_value\x18\x07 \x01(\x05H\x06\x88\x01\x01\x12#\n\x16\x61\x64vertise_sr_te_policy\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x17\n\x15_ingress_supports_vpnB\x18\n\x16_reduced_encapsulationB\x14\n\x12_copy_time_to_liveB\x0f\n\r_time_to_liveB\x13\n\x11_max_sids_per_srhB#\n!_auto_generate_segment_left_valueB\x15\n\x13_segment_left_valueB\x19\n\x17_advertise_sr_te_policy\"\xa8\x04\n\x14\x42gpV6EthernetSegment\x12;\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElectionH\x00\x88\x01\x01\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV6EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV6EthernetSegment.ActiveMode.EnumH\x02\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\x05H\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x0e\n\x0c_df_electionB\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_labelB\x0b\n\t_advancedB\n\n\x08_as_path\"\xbb\x01\n\rBgpV6EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV6EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12*\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV6EviVxlanH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_evi_vxlan\"\xa3\x06\n\rBgpV6EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV6EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV6EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12<\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisherH\x03\x88\x01\x01\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12,\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_labelB\x16\n\x14_route_distinguisherB\x0b\n\t_advancedB\n\n\x08_as_path\"\xb4\x01\n\x1c\x42gpV6EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\x03H\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"]\n\x0b\x44\x65viceVxlan\x12&\n\nv4_tunnels\x18\x01 \x03(\x0b\x32\x12.otg.VxlanV4Tunnel\x12&\n\nv6_tunnels\x18\x02 \x03(\x0b\x32\x12.otg.VxlanV6Tunnel\"\xa3\x01\n\rVxlanV4Tunnel\x12\x18\n\x10source_interface\x18\x01 \x01(\t\x12\x45\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV4TunnelDestinationIPModeH\x00\x88\x01\x01\x12\x0b\n\x03vni\x18\x03 \x01(\x05\x12\x0c\n\x04name\x18\x04 \x01(\tB\x16\n\x14_destination_ip_mode\"\xa3\x01\n\rVxlanV6Tunnel\x12\x18\n\x10source_interface\x18\x01 \x01(\t\x12\x45\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV6TunnelDestinationIPModeH\x00\x88\x01\x01\x12\x0b\n\x03vni\x18\x03 \x01(\x05\x12\x0c\n\x04name\x18\x04 \x01(\tB\x16\n\x14_destination_ip_mode\"\xd2\x02\n\x1eVxlanV4TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV4TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12@\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV4TunnelDestinationIPModeUnicastH\x01\x88\x01\x01\x12\x44\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV4TunnelDestinationIPModeMulticastH\x02\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choiceB\n\n\x08_unicastB\x0c\n\n_multicast\"\xd2\x02\n\x1eVxlanV6TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV6TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12@\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV6TunnelDestinationIPModeUnicastH\x01\x88\x01\x01\x12\x44\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV6TunnelDestinationIPModeMulticastH\x02\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choiceB\n\n\x08_unicastB\x0c\n\n_multicast\"f\n%VxlanV4TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV4TunnelDestinationIPModeUnicastVtep\"f\n%VxlanV6TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV6TunnelDestinationIPModeUnicastVtep\"\x96\x01\n6VxlanTunnelDestinationIPModeUnicastArpSuppressionCache\x12\x1a\n\rremote_vm_mac\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0eremote_vm_ipv4\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_remote_vm_macB\x11\n\x0f_remote_vm_ipv4\"\xc1\x01\n)VxlanV4TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"\xc1\x01\n)VxlanV6TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"K\n\'VxlanV4TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"K\n\'VxlanV6TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"\x91\x01\n\nDeviceRsvp\x12/\n\x0fipv4_interfaces\x18\x01 \x03(\x0b\x32\x16.otg.RsvpIpv4Interface\x12\x36\n\x13lsp_ipv4_interfaces\x18\x02 \x03(\x0b\x32\x19.otg.RsvpLspIpv4Interface\x12\x11\n\x04name\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\"\x9d\x04\n\x11RsvpIpv4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12\x13\n\x0bneighbor_ip\x18\x02 \x01(\t\x12\x1e\n\x11label_space_start\x18\x03 \x01(\x05H\x00\x88\x01\x01\x12\x1c\n\x0flabel_space_end\x18\x04 \x01(\x05H\x01\x88\x01\x01\x12%\n\x18\x65nable_refresh_reduction\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12%\n\x18summary_refresh_interval\x18\x06 \x01(\x05H\x03\x88\x01\x01\x12\x18\n\x0bsend_bundle\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x1d\n\x10\x62undle_threshold\x18\x08 \x01(\x05H\x05\x88\x01\x01\x12\x19\n\x0c\x65nable_hello\x18\t \x01(\x08H\x06\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\n \x01(\x05H\x07\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x0b \x01(\x05H\x08\x88\x01\x01\x42\x14\n\x12_label_space_startB\x12\n\x10_label_space_endB\x1b\n\x19_enable_refresh_reductionB\x1b\n\x19_summary_refresh_intervalB\x0e\n\x0c_send_bundleB\x13\n\x11_bundle_thresholdB\x0f\n\r_enable_helloB\x11\n\x0f_hello_intervalB\x15\n\x13_timeout_multiplier\"\xdb\x01\n\x14RsvpLspIpv4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12L\n\x14p2p_egress_ipv4_lsps\x18\x02 \x01(\x0b\x32).otg.RsvpLspIpv4InterfaceP2PEgressIpv4LspH\x00\x88\x01\x01\x12I\n\x15p2p_ingress_ipv4_lsps\x18\x03 \x03(\x0b\x32*.otg.RsvpLspIpv4InterfaceP2PIngressIpv4LspB\x17\n\x15_p2p_egress_ipv4_lsps\"\xe3\x03\n$RsvpLspIpv4InterfaceP2PEgressIpv4Lsp\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1d\n\x10refresh_interval\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12_\n\x11reservation_style\x18\x04 \x01(\x0e\x32?.otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.EnumH\x02\x88\x01\x01\x12\x1f\n\x12\x65nable_fixed_label\x18\x05 \x01(\x08H\x03\x88\x01\x01\x12\x1e\n\x11\x66ixed_label_value\x18\x06 \x01(\x05H\x04\x88\x01\x01\x1a\\\n\x10ReservationStyle\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0fshared_explicit\x10\x01\x12\x10\n\x0c\x66ixed_filter\x10\x02\x12\x08\n\x04\x61uto\x10\x03\x42\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x14\n\x12_reservation_styleB\x15\n\x13_enable_fixed_labelB\x14\n\x12_fixed_label_value\"\xd2\x04\n%RsvpLspIpv4InterfaceP2PIngressIpv4Lsp\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x16\n\x0eremote_address\x18\x02 \x01(\t\x12\x16\n\ttunnel_id\x18\x03 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x04 \x01(\x05H\x01\x88\x01\x01\x12\x1d\n\x10refresh_interval\x18\x05 \x01(\x05H\x02\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x06 \x01(\x05H\x03\x88\x01\x01\x12\x1a\n\rbackup_lsp_id\x18\x07 \x01(\x05H\x04\x88\x01\x01\x12!\n\x14lsp_switchover_delay\x18\x08 \x01(\x05H\x05\x88\x01\x01\x12\x39\n\x11session_attribute\x18\t \x01(\x0b\x32\x19.otg.RsvpSessionAttributeH\x06\x88\x01\x01\x12\"\n\x05tspec\x18\n \x01(\x0b\x32\x0e.otg.RsvpTspecH\x07\x88\x01\x01\x12/\n\x0c\x66\x61st_reroute\x18\x0b \x01(\x0b\x32\x14.otg.RsvpFastRerouteH\x08\x88\x01\x01\x12\x1e\n\x03\x65ro\x18\x0c \x01(\x0b\x32\x0c.otg.RsvpEroH\t\x88\x01\x01\x42\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x10\n\x0e_backup_lsp_idB\x17\n\x15_lsp_switchover_delayB\x14\n\x12_session_attributeB\x08\n\x06_tspecB\x0f\n\r_fast_rerouteB\x06\n\x04_ero\"\x8d\x05\n\x14RsvpSessionAttribute\x12\'\n\x1a\x61uto_generate_session_name\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0csession_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0esetup_priority\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12%\n\x18local_protection_desired\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12$\n\x17label_recording_desired\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10se_style_desired\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12)\n\x1c\x62\x61ndwidth_protection_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17node_protection_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x12=\n\x13resource_affinities\x18\n \x01(\x0b\x32\x1b.otg.RsvpResourceAffinitiesH\t\x88\x01\x01\x42\x1d\n\x1b_auto_generate_session_nameB\x0f\n\r_session_nameB\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x1b\n\x19_local_protection_desiredB\x1a\n\x18_label_recording_desiredB\x13\n\x11_se_style_desiredB\x1f\n\x1d_bandwidth_protection_desiredB\x1a\n\x18_node_protection_desiredB\x16\n\x14_resource_affinities\"\x96\x01\n\x16RsvpResourceAffinities\x12\x18\n\x0b\x65xclude_any\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_all\"\x9f\x02\n\tRsvpTspec\x12\x1e\n\x11token_bucket_rate\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x1e\n\x11token_bucket_size\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x1b\n\x0epeak_data_rate\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12!\n\x14minimum_policed_unit\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12!\n\x14maximum_policed_unit\x18\x05 \x01(\x05H\x04\x88\x01\x01\x42\x14\n\x12_token_bucket_rateB\x14\n\x12_token_bucket_sizeB\x11\n\x0f_peak_data_rateB\x17\n\x15_minimum_policed_unitB\x17\n\x15_maximum_policed_unit\"\xc7\x03\n\x0fRsvpFastReroute\x12\x1b\n\x0esetup_priority\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x16\n\thop_limit\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x16\n\tbandwidth\x18\x04 \x01(\x02H\x03\x88\x01\x01\x12\x18\n\x0b\x65xclude_any\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x07 \x01(\tH\x06\x88\x01\x01\x12&\n\x19one_to_one_backup_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17\x66\x61\x63ility_backup_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x42\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x0c\n\n_hop_limitB\x0c\n\n_bandwidthB\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_allB\x1c\n\x1a_one_to_one_backup_desiredB\x1a\n\x18_facility_backup_desired\"\xa8\x02\n\x07RsvpEro\x12\x45\n\x13prepend_neighbor_ip\x18\x01 \x01(\x0e\x32#.otg.RsvpEro.PrependNeighborIp.EnumH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12)\n\nsubobjects\x18\x03 \x03(\x0b\x32\x15.otg.RsvpEroSubobject\x1a\x65\n\x11PrependNeighborIp\"P\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x64ont_prepend\x10\x01\x12\x11\n\rprepend_loose\x10\x02\x12\x12\n\x0eprepend_strict\x10\x03\x42\x16\n\x14_prepend_neighbor_ipB\x10\n\x0e_prefix_length\"\x8c\x03\n\x10RsvpEroSubobject\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.RsvpEroSubobject.Type.EnumH\x00\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x16\n\tas_number\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x39\n\x08hop_type\x18\x05 \x01(\x0e\x32\".otg.RsvpEroSubobject.HopType.EnumH\x04\x88\x01\x01\x1a\x38\n\x04Type\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\r\n\tas_number\x10\x02\x1a\x39\n\x07HopType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06strict\x10\x01\x12\t\n\x05loose\x10\x02\x42\x07\n\x05_typeB\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x0c\n\n_as_numberB\x0b\n\t_hop_type\"\x94\x02\n\x04\x46low\x12\x1c\n\x05tx_rx\x18\x01 \x01(\x0b\x32\r.otg.FlowTxRx\x12\x1f\n\x06packet\x18\x02 \x03(\x0b\x32\x0f.otg.FlowHeader\x12 \n\x04size\x18\x03 \x01(\x0b\x32\r.otg.FlowSizeH\x00\x88\x01\x01\x12 \n\x04rate\x18\x04 \x01(\x0b\x32\r.otg.FlowRateH\x01\x88\x01\x01\x12(\n\x08\x64uration\x18\x05 \x01(\x0b\x32\x11.otg.FlowDurationH\x02\x88\x01\x01\x12&\n\x07metrics\x18\x06 \x01(\x0b\x32\x10.otg.FlowMetricsH\x03\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\tB\x07\n\x05_sizeB\x07\n\x05_rateB\x0b\n\t_durationB\n\n\x08_metrics\"\xda\x01\n\x08\x46lowTxRx\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowTxRx.Choice.EnumH\x00\x88\x01\x01\x12 \n\x04port\x18\x02 \x01(\x0b\x32\r.otg.FlowPortH\x01\x88\x01\x01\x12$\n\x06\x64\x65vice\x18\x03 \x01(\x0b\x32\x0f.otg.FlowRouterH\x02\x88\x01\x01\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\n\n\x06\x64\x65vice\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_portB\t\n\x07_device\"=\n\x08\x46lowPort\x12\x0f\n\x07tx_name\x18\x01 \x01(\t\x12\x14\n\x07rx_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_rx_name\"\xa2\x01\n\nFlowRouter\x12,\n\x04mode\x18\x01 \x01(\x0e\x32\x19.otg.FlowRouter.Mode.EnumH\x00\x88\x01\x01\x12\x10\n\x08tx_names\x18\x02 \x03(\t\x12\x10\n\x08rx_names\x18\x03 \x03(\t\x1a\x39\n\x04Mode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04mesh\x10\x01\x12\x0e\n\none_to_one\x10\x02\x42\x07\n\x05_mode\"\xb1\t\n\nFlowHeader\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowHeader.Choice.EnumH\x00\x88\x01\x01\x12$\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x0f.otg.FlowCustomH\x01\x88\x01\x01\x12(\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x11.otg.FlowEthernetH\x02\x88\x01\x01\x12 \n\x04vlan\x18\x04 \x01(\x0b\x32\r.otg.FlowVlanH\x03\x88\x01\x01\x12\"\n\x05vxlan\x18\x05 \x01(\x0b\x32\x0e.otg.FlowVxlanH\x04\x88\x01\x01\x12 \n\x04ipv4\x18\x06 \x01(\x0b\x32\r.otg.FlowIpv4H\x05\x88\x01\x01\x12 \n\x04ipv6\x18\x07 \x01(\x0b\x32\r.otg.FlowIpv6H\x06\x88\x01\x01\x12(\n\x08pfcpause\x18\x08 \x01(\x0b\x32\x11.otg.FlowPfcPauseH\x07\x88\x01\x01\x12\x32\n\rethernetpause\x18\t \x01(\x0b\x32\x16.otg.FlowEthernetPauseH\x08\x88\x01\x01\x12\x1e\n\x03tcp\x18\n \x01(\x0b\x32\x0c.otg.FlowTcpH\t\x88\x01\x01\x12\x1e\n\x03udp\x18\x0b \x01(\x0b\x32\x0c.otg.FlowUdpH\n\x88\x01\x01\x12\x1e\n\x03gre\x18\x0c \x01(\x0b\x32\x0c.otg.FlowGreH\x0b\x88\x01\x01\x12\"\n\x05gtpv1\x18\r \x01(\x0b\x32\x0e.otg.FlowGtpv1H\x0c\x88\x01\x01\x12\"\n\x05gtpv2\x18\x0e \x01(\x0b\x32\x0e.otg.FlowGtpv2H\r\x88\x01\x01\x12\x1e\n\x03\x61rp\x18\x0f \x01(\x0b\x32\x0c.otg.FlowArpH\x0e\x88\x01\x01\x12 \n\x04icmp\x18\x10 \x01(\x0b\x32\r.otg.FlowIcmpH\x0f\x88\x01\x01\x12$\n\x06icmpv6\x18\x11 \x01(\x0b\x32\x0f.otg.FlowIcmpv6H\x10\x88\x01\x01\x12\x1e\n\x03ppp\x18\x12 \x01(\x0b\x32\x0c.otg.FlowPppH\x11\x88\x01\x01\x12$\n\x06igmpv1\x18\x13 \x01(\x0b\x32\x0f.otg.FlowIgmpv1H\x12\x88\x01\x01\x12 \n\x04mpls\x18\x14 \x01(\x0b\x32\r.otg.FlowMplsH\x13\x88\x01\x01\x1a\xf5\x01\n\x06\x43hoice\"\xea\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\t\n\x05vxlan\x10\x04\x12\x08\n\x04ipv4\x10\x05\x12\x08\n\x04ipv6\x10\x06\x12\x0c\n\x08pfcpause\x10\x07\x12\x11\n\rethernetpause\x10\x08\x12\x07\n\x03tcp\x10\t\x12\x07\n\x03udp\x10\n\x12\x07\n\x03gre\x10\x0b\x12\t\n\x05gtpv1\x10\x0c\x12\t\n\x05gtpv2\x10\r\x12\x07\n\x03\x61rp\x10\x0e\x12\x08\n\x04icmp\x10\x0f\x12\n\n\x06icmpv6\x10\x10\x12\x07\n\x03ppp\x10\x11\x12\n\n\x06igmpv1\x10\x12\x12\x08\n\x04mpls\x10\x13\x42\t\n\x07_choiceB\t\n\x07_customB\x0b\n\t_ethernetB\x07\n\x05_vlanB\x08\n\x06_vxlanB\x07\n\x05_ipv4B\x07\n\x05_ipv6B\x0b\n\t_pfcpauseB\x10\n\x0e_ethernetpauseB\x06\n\x04_tcpB\x06\n\x04_udpB\x06\n\x04_greB\x08\n\x06_gtpv1B\x08\n\x06_gtpv2B\x06\n\x04_arpB\x07\n\x05_icmpB\t\n\x07_icmpv6B\x06\n\x04_pppB\t\n\x07_igmpv1B\x07\n\x05_mpls\"\x1b\n\nFlowCustom\x12\r\n\x05\x62ytes\x18\x01 \x01(\t\"\x8f\x02\n\x0c\x46lowEthernet\x12-\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetDstH\x00\x88\x01\x01\x12-\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetSrcH\x01\x88\x01\x01\x12:\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowEthernetEtherTypeH\x02\x88\x01\x01\x12\x38\n\tpfc_queue\x18\x04 \x01(\x0b\x32 .otg.PatternFlowEthernetPfcQueueH\x03\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x0c\n\n_pfc_queue\"\xe5\x01\n\x08\x46lowVlan\x12\x33\n\x08priority\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowVlanPriorityH\x00\x88\x01\x01\x12)\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x17.otg.PatternFlowVlanCfiH\x01\x88\x01\x01\x12\'\n\x02id\x18\x03 \x01(\x0b\x32\x16.otg.PatternFlowVlanIdH\x02\x88\x01\x01\x12+\n\x04tpid\x18\x04 \x01(\x0b\x32\x18.otg.PatternFlowVlanTpidH\x03\x88\x01\x01\x42\x0b\n\t_priorityB\x06\n\x04_cfiB\x05\n\x03_idB\x07\n\x05_tpid\"\x85\x02\n\tFlowVxlan\x12.\n\x05\x66lags\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowVxlanFlagsH\x00\x88\x01\x01\x12\x36\n\treserved0\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved0H\x01\x88\x01\x01\x12*\n\x03vni\x18\x03 \x01(\x0b\x32\x18.otg.PatternFlowVxlanVniH\x02\x88\x01\x01\x12\x36\n\treserved1\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved1H\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x0c\n\n_reserved0B\x06\n\x04_vniB\x0c\n\n_reserved1\"\xfa\x07\n\x08\x46lowIpv4\x12\x31\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4VersionH\x00\x88\x01\x01\x12<\n\rheader_length\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv4HeaderLengthH\x01\x88\x01\x01\x12,\n\x08priority\x18\x03 \x01(\x0b\x32\x15.otg.FlowIpv4PriorityH\x02\x88\x01\x01\x12:\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TotalLengthH\x03\x88\x01\x01\x12?\n\x0eidentification\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4IdentificationH\x04\x88\x01\x01\x12\x33\n\x08reserved\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4ReservedH\x05\x88\x01\x01\x12<\n\rdont_fragment\x18\x07 \x01(\x0b\x32 .otg.PatternFlowIpv4DontFragmentH\x06\x88\x01\x01\x12>\n\x0emore_fragments\x18\x08 \x01(\x0b\x32!.otg.PatternFlowIpv4MoreFragmentsH\x07\x88\x01\x01\x12@\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\".otg.PatternFlowIpv4FragmentOffsetH\x08\x88\x01\x01\x12\x39\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x1e.otg.PatternFlowIpv4TimeToLiveH\t\x88\x01\x01\x12\x33\n\x08protocol\x18\x0b \x01(\x0b\x32\x1c.otg.PatternFlowIpv4ProtocolH\n\x88\x01\x01\x12@\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\".otg.PatternFlowIpv4HeaderChecksumH\x0b\x88\x01\x01\x12)\n\x03src\x18\r \x01(\x0b\x32\x17.otg.PatternFlowIpv4SrcH\x0c\x88\x01\x01\x12)\n\x03\x64st\x18\x0e \x01(\x0b\x32\x17.otg.PatternFlowIpv4DstH\r\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_header_lengthB\x0b\n\t_priorityB\x0f\n\r_total_lengthB\x11\n\x0f_identificationB\x0b\n\t_reservedB\x10\n\x0e_dont_fragmentB\x11\n\x0f_more_fragmentsB\x12\n\x10_fragment_offsetB\x0f\n\r_time_to_liveB\x0b\n\t_protocolB\x12\n\x10_header_checksumB\x06\n\x04_srcB\x06\n\x04_dst\"\xaa\x02\n\x10\x46lowIpv4Priority\x12\x36\n\x06\x63hoice\x18\x01 \x01(\x0e\x32!.otg.FlowIpv4Priority.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\x03raw\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4PriorityRawH\x01\x88\x01\x01\x12\"\n\x03tos\x18\x03 \x01(\x0b\x32\x10.otg.FlowIpv4TosH\x02\x88\x01\x01\x12$\n\x04\x64scp\x18\x04 \x01(\x0b\x32\x11.otg.FlowIpv4DscpH\x03\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03raw\x10\x01\x12\x07\n\x03tos\x10\x02\x12\x08\n\x04\x64scp\x10\x03\x42\t\n\x07_choiceB\x06\n\x04_rawB\x06\n\x04_tosB\x07\n\x05_dscp\"|\n\x0c\x46lowIpv4Dscp\x12-\n\x03phb\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpPhbH\x00\x88\x01\x01\x12-\n\x03\x65\x63n\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpEcnH\x01\x88\x01\x01\x42\x06\n\x04_phbB\x06\n\x04_ecn\"\xb1\x03\n\x0b\x46lowIpv4Tos\x12:\n\nprecedence\x18\x01 \x01(\x0b\x32!.otg.PatternFlowIpv4TosPrecedenceH\x00\x88\x01\x01\x12\x30\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4TosDelayH\x01\x88\x01\x01\x12:\n\nthroughput\x18\x03 \x01(\x0b\x32!.otg.PatternFlowIpv4TosThroughputH\x02\x88\x01\x01\x12<\n\x0breliability\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIpv4TosReliabilityH\x03\x88\x01\x01\x12\x36\n\x08monetary\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TosMonetaryH\x04\x88\x01\x01\x12\x32\n\x06unused\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowIpv4TosUnusedH\x05\x88\x01\x01\x42\r\n\x0b_precedenceB\x08\n\x06_delayB\r\n\x0b_throughputB\x0e\n\x0c_reliabilityB\x0b\n\t_monetaryB\t\n\x07_unused\"\xa7\x04\n\x08\x46lowIpv6\x12\x31\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv6VersionH\x00\x88\x01\x01\x12<\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv6TrafficClassH\x01\x88\x01\x01\x12\x36\n\nflow_label\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowIpv6FlowLabelH\x02\x88\x01\x01\x12>\n\x0epayload_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowIpv6PayloadLengthH\x03\x88\x01\x01\x12\x38\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6NextHeaderH\x04\x88\x01\x01\x12\x34\n\thop_limit\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv6HopLimitH\x05\x88\x01\x01\x12)\n\x03src\x18\x07 \x01(\x0b\x32\x17.otg.PatternFlowIpv6SrcH\x06\x88\x01\x01\x12)\n\x03\x64st\x18\x08 \x01(\x0b\x32\x17.otg.PatternFlowIpv6DstH\x07\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_traffic_classB\r\n\x0b_flow_labelB\x11\n\x0f_payload_lengthB\x0e\n\x0c_next_headerB\x0c\n\n_hop_limitB\x06\n\x04_srcB\x06\n\x04_dst\"\x9d\x08\n\x0c\x46lowPfcPause\x12-\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseDstH\x00\x88\x01\x01\x12-\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseSrcH\x01\x88\x01\x01\x12:\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowPfcPauseEtherTypeH\x02\x88\x01\x01\x12\x43\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32%.otg.PatternFlowPfcPauseControlOpCodeH\x03\x88\x01\x01\x12K\n\x13\x63lass_enable_vector\x18\x05 \x01(\x0b\x32).otg.PatternFlowPfcPauseClassEnableVectorH\x04\x88\x01\x01\x12?\n\rpause_class_0\x18\x06 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass0H\x05\x88\x01\x01\x12?\n\rpause_class_1\x18\x07 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass1H\x06\x88\x01\x01\x12?\n\rpause_class_2\x18\x08 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass2H\x07\x88\x01\x01\x12?\n\rpause_class_3\x18\t \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass3H\x08\x88\x01\x01\x12?\n\rpause_class_4\x18\n \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass4H\t\x88\x01\x01\x12?\n\rpause_class_5\x18\x0b \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass5H\n\x88\x01\x01\x12?\n\rpause_class_6\x18\x0c \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass6H\x0b\x88\x01\x01\x12?\n\rpause_class_7\x18\r \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass7H\x0c\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x12\n\x10_control_op_codeB\x16\n\x14_class_enable_vectorB\x10\n\x0e_pause_class_0B\x10\n\x0e_pause_class_1B\x10\n\x0e_pause_class_2B\x10\n\x0e_pause_class_3B\x10\n\x0e_pause_class_4B\x10\n\x0e_pause_class_5B\x10\n\x0e_pause_class_6B\x10\n\x0e_pause_class_7\"\xf8\x02\n\x11\x46lowEthernetPause\x12\x32\n\x03\x64st\x18\x01 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseDstH\x00\x88\x01\x01\x12\x32\n\x03src\x18\x02 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseSrcH\x01\x88\x01\x01\x12?\n\nether_type\x18\x03 \x01(\x0b\x32&.otg.PatternFlowEthernetPauseEtherTypeH\x02\x88\x01\x01\x12H\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32*.otg.PatternFlowEthernetPauseControlOpCodeH\x03\x88\x01\x01\x12\x34\n\x04time\x18\x05 \x01(\x0b\x32!.otg.PatternFlowEthernetPauseTimeH\x04\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x12\n\x10_control_op_codeB\x07\n\x05_time\"\xac\x07\n\x07\x46lowTcp\x12\x31\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowTcpSrcPortH\x00\x88\x01\x01\x12\x31\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowTcpDstPortH\x01\x88\x01\x01\x12/\n\x07seq_num\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowTcpSeqNumH\x02\x88\x01\x01\x12/\n\x07\x61\x63k_num\x18\x04 \x01(\x0b\x32\x19.otg.PatternFlowTcpAckNumH\x03\x88\x01\x01\x12\x37\n\x0b\x64\x61ta_offset\x18\x05 \x01(\x0b\x32\x1d.otg.PatternFlowTcpDataOffsetH\x04\x88\x01\x01\x12-\n\x06\x65\x63n_ns\x18\x06 \x01(\x0b\x32\x18.otg.PatternFlowTcpEcnNsH\x05\x88\x01\x01\x12/\n\x07\x65\x63n_cwr\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowTcpEcnCwrH\x06\x88\x01\x01\x12\x31\n\x08\x65\x63n_echo\x18\x08 \x01(\x0b\x32\x1a.otg.PatternFlowTcpEcnEchoH\x07\x88\x01\x01\x12/\n\x07\x63tl_urg\x18\t \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlUrgH\x08\x88\x01\x01\x12/\n\x07\x63tl_ack\x18\n \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlAckH\t\x88\x01\x01\x12/\n\x07\x63tl_psh\x18\x0b \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlPshH\n\x88\x01\x01\x12/\n\x07\x63tl_rst\x18\x0c \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlRstH\x0b\x88\x01\x01\x12/\n\x07\x63tl_syn\x18\r \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlSynH\x0c\x88\x01\x01\x12/\n\x07\x63tl_fin\x18\x0e \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlFinH\r\x88\x01\x01\x12.\n\x06window\x18\x0f \x01(\x0b\x32\x19.otg.PatternFlowTcpWindowH\x0e\x88\x01\x01\x42\x0b\n\t_src_portB\x0b\n\t_dst_portB\n\n\x08_seq_numB\n\n\x08_ack_numB\x0e\n\x0c_data_offsetB\t\n\x07_ecn_nsB\n\n\x08_ecn_cwrB\x0b\n\t_ecn_echoB\n\n\x08_ctl_urgB\n\n\x08_ctl_ackB\n\n\x08_ctl_pshB\n\n\x08_ctl_rstB\n\n\x08_ctl_synB\n\n\x08_ctl_finB\t\n\x07_window\"\x85\x02\n\x07\x46lowUdp\x12\x31\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowUdpSrcPortH\x00\x88\x01\x01\x12\x31\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowUdpDstPortH\x01\x88\x01\x01\x12.\n\x06length\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowUdpLengthH\x02\x88\x01\x01\x12\x32\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowUdpChecksumH\x03\x88\x01\x01\x42\x0b\n\t_src_portB\x0b\n\t_dst_portB\t\n\x07_lengthB\x0b\n\t_checksum\"\xa9\x03\n\x07\x46lowGre\x12\x41\n\x10\x63hecksum_present\x18\x01 \x01(\x0b\x32\".otg.PatternFlowGreChecksumPresentH\x00\x88\x01\x01\x12\x34\n\treserved0\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved0H\x01\x88\x01\x01\x12\x30\n\x07version\x18\x03 \x01(\x0b\x32\x1a.otg.PatternFlowGreVersionH\x02\x88\x01\x01\x12\x32\n\x08protocol\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGreProtocolH\x03\x88\x01\x01\x12\x32\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\x1b.otg.PatternFlowGreChecksumH\x04\x88\x01\x01\x12\x34\n\treserved1\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved1H\x05\x88\x01\x01\x42\x13\n\x11_checksum_presentB\x0c\n\n_reserved0B\n\n\x08_versionB\x0b\n\t_protocolB\x0b\n\t_checksumB\x0c\n\n_reserved1\"\xb8\x07\n\tFlowGtpv1\x12\x32\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv1VersionH\x00\x88\x01\x01\x12=\n\rprotocol_type\x18\x02 \x01(\x0b\x32!.otg.PatternFlowGtpv1ProtocolTypeH\x01\x88\x01\x01\x12\x34\n\x08reserved\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv1ReservedH\x02\x88\x01\x01\x12/\n\x06\x65_flag\x18\x04 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1EFlagH\x03\x88\x01\x01\x12/\n\x06s_flag\x18\x05 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1SFlagH\x04\x88\x01\x01\x12\x31\n\x07pn_flag\x18\x06 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv1PnFlagH\x05\x88\x01\x01\x12;\n\x0cmessage_type\x18\x07 \x01(\x0b\x32 .otg.PatternFlowGtpv1MessageTypeH\x06\x88\x01\x01\x12?\n\x0emessage_length\x18\x08 \x01(\x0b\x32\".otg.PatternFlowGtpv1MessageLengthH\x07\x88\x01\x01\x12,\n\x04teid\x18\t \x01(\x0b\x32\x19.otg.PatternFlowGtpv1TeidH\x08\x88\x01\x01\x12?\n\x0esquence_number\x18\n \x01(\x0b\x32\".otg.PatternFlowGtpv1SquenceNumberH\t\x88\x01\x01\x12:\n\x0cn_pdu_number\x18\x0b \x01(\x0b\x32\x1f.otg.PatternFlowGtpv1NPduNumberH\n\x88\x01\x01\x12U\n\x1anext_extension_header_type\x18\x0c \x01(\x0b\x32,.otg.PatternFlowGtpv1NextExtensionHeaderTypeH\x0b\x88\x01\x01\x12\x30\n\x11\x65xtension_headers\x18\r \x03(\x0b\x32\x15.otg.FlowGtpExtensionB\n\n\x08_versionB\x10\n\x0e_protocol_typeB\x0b\n\t_reservedB\t\n\x07_e_flagB\t\n\x07_s_flagB\n\n\x08_pn_flagB\x0f\n\r_message_typeB\x11\n\x0f_message_lengthB\x07\n\x05_teidB\x11\n\x0f_squence_numberB\x0f\n\r_n_pdu_numberB\x1d\n\x1b_next_extension_header_type\"\xac\x02\n\x10\x46lowGtpExtension\x12J\n\x10\x65xtension_length\x18\x01 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionExtensionLengthH\x00\x88\x01\x01\x12;\n\x08\x63ontents\x18\x02 \x01(\x0b\x32$.otg.PatternFlowGtpExtensionContentsH\x01\x88\x01\x01\x12S\n\x15next_extension_header\x18\x03 \x01(\x0b\x32/.otg.PatternFlowGtpExtensionNextExtensionHeaderH\x02\x88\x01\x01\x42\x13\n\x11_extension_lengthB\x0b\n\t_contentsB\x18\n\x16_next_extension_header\"\x97\x05\n\tFlowGtpv2\x12\x32\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv2VersionH\x00\x88\x01\x01\x12\x45\n\x11piggybacking_flag\x18\x02 \x01(\x0b\x32%.otg.PatternFlowGtpv2PiggybackingFlagH\x01\x88\x01\x01\x12\x35\n\tteid_flag\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv2TeidFlagH\x02\x88\x01\x01\x12\x30\n\x06spare1\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare1H\x03\x88\x01\x01\x12;\n\x0cmessage_type\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv2MessageTypeH\x04\x88\x01\x01\x12?\n\x0emessage_length\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2MessageLengthH\x05\x88\x01\x01\x12,\n\x04teid\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowGtpv2TeidH\x06\x88\x01\x01\x12\x41\n\x0fsequence_number\x18\x08 \x01(\x0b\x32#.otg.PatternFlowGtpv2SequenceNumberH\x07\x88\x01\x01\x12\x30\n\x06spare2\x18\t \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare2H\x08\x88\x01\x01\x42\n\n\x08_versionB\x14\n\x12_piggybacking_flagB\x0c\n\n_teid_flagB\t\n\x07_spare1B\x0f\n\r_message_typeB\x11\n\x0f_message_lengthB\x07\n\x05_teidB\x12\n\x10_sequence_numberB\t\n\x07_spare2\"\xa1\x06\n\x07\x46lowArp\x12;\n\rhardware_type\x18\x01 \x01(\x0b\x32\x1f.otg.PatternFlowArpHardwareTypeH\x00\x88\x01\x01\x12;\n\rprotocol_type\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowArpProtocolTypeH\x01\x88\x01\x01\x12?\n\x0fhardware_length\x18\x03 \x01(\x0b\x32!.otg.PatternFlowArpHardwareLengthH\x02\x88\x01\x01\x12?\n\x0fprotocol_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowArpProtocolLengthH\x03\x88\x01\x01\x12\x34\n\toperation\x18\x05 \x01(\x0b\x32\x1c.otg.PatternFlowArpOperationH\x04\x88\x01\x01\x12H\n\x14sender_hardware_addr\x18\x06 \x01(\x0b\x32%.otg.PatternFlowArpSenderHardwareAddrH\x05\x88\x01\x01\x12H\n\x14sender_protocol_addr\x18\x07 \x01(\x0b\x32%.otg.PatternFlowArpSenderProtocolAddrH\x06\x88\x01\x01\x12H\n\x14target_hardware_addr\x18\x08 \x01(\x0b\x32%.otg.PatternFlowArpTargetHardwareAddrH\x07\x88\x01\x01\x12H\n\x14target_protocol_addr\x18\t \x01(\x0b\x32%.otg.PatternFlowArpTargetProtocolAddrH\x08\x88\x01\x01\x42\x10\n\x0e_hardware_typeB\x10\n\x0e_protocol_typeB\x12\n\x10_hardware_lengthB\x12\n\x10_protocol_lengthB\x0c\n\n_operationB\x17\n\x15_sender_hardware_addrB\x17\n\x15_sender_protocol_addrB\x17\n\x15_target_hardware_addrB\x17\n\x15_target_protocol_addr\"\xa1\x01\n\x08\x46lowIcmp\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowIcmp.Choice.EnumH\x00\x88\x01\x01\x12$\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x11.otg.FlowIcmpEchoH\x01\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choiceB\x07\n\x05_echo\"\xee\x02\n\x0c\x46lowIcmpEcho\x12/\n\x04type\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoTypeH\x00\x88\x01\x01\x12/\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoCodeH\x01\x88\x01\x01\x12\x37\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .otg.PatternFlowIcmpEchoChecksumH\x02\x88\x01\x01\x12;\n\nidentifier\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIcmpEchoIdentifierH\x03\x88\x01\x01\x12\x44\n\x0fsequence_number\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIcmpEchoSequenceNumberH\x04\x88\x01\x01\x42\x07\n\x05_typeB\x07\n\x05_codeB\x0b\n\t_checksumB\r\n\x0b_identifierB\x12\n\x10_sequence_number\"\xa7\x01\n\nFlowIcmpv6\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowIcmpv6.Choice.EnumH\x00\x88\x01\x01\x12&\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x13.otg.FlowIcmpv6EchoH\x01\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choiceB\x07\n\x05_echo\"\xfa\x02\n\x0e\x46lowIcmpv6Echo\x12\x31\n\x04type\x18\x01 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoTypeH\x00\x88\x01\x01\x12\x31\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoCodeH\x01\x88\x01\x01\x12=\n\nidentifier\x18\x03 \x01(\x0b\x32$.otg.PatternFlowIcmpv6EchoIdentifierH\x02\x88\x01\x01\x12\x46\n\x0fsequence_number\x18\x04 \x01(\x0b\x32(.otg.PatternFlowIcmpv6EchoSequenceNumberH\x03\x88\x01\x01\x12\x39\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIcmpv6EchoChecksumH\x04\x88\x01\x01\x42\x07\n\x05_typeB\x07\n\x05_codeB\r\n\x0b_identifierB\x12\n\x10_sequence_numberB\x0b\n\t_checksum\"\xd4\x01\n\x07\x46lowPpp\x12\x30\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowPppAddressH\x00\x88\x01\x01\x12\x30\n\x07\x63ontrol\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowPppControlH\x01\x88\x01\x01\x12;\n\rprotocol_type\x18\x03 \x01(\x0b\x32\x1f.otg.PatternFlowPppProtocolTypeH\x02\x88\x01\x01\x42\n\n\x08_addressB\n\n\x08_controlB\x10\n\x0e_protocol_type\"\xd9\x02\n\nFlowIgmpv1\x12\x33\n\x07version\x18\x01 \x01(\x0b\x32\x1d.otg.PatternFlowIgmpv1VersionH\x00\x88\x01\x01\x12-\n\x04type\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowIgmpv1TypeH\x01\x88\x01\x01\x12\x31\n\x06unused\x18\x03 \x01(\x0b\x32\x1c.otg.PatternFlowIgmpv1UnusedH\x02\x88\x01\x01\x12\x35\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowIgmpv1ChecksumH\x03\x88\x01\x01\x12>\n\rgroup_address\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIgmpv1GroupAddressH\x04\x88\x01\x01\x42\n\n\x08_versionB\x07\n\x05_typeB\t\n\x07_unusedB\x0b\n\t_checksumB\x10\n\x0e_group_address\"\xb4\x02\n\x08\x46lowMpls\x12-\n\x05label\x18\x01 \x01(\x0b\x32\x19.otg.PatternFlowMplsLabelH\x00\x88\x01\x01\x12<\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowMplsTrafficClassH\x01\x88\x01\x01\x12?\n\x0f\x62ottom_of_stack\x18\x03 \x01(\x0b\x32!.otg.PatternFlowMplsBottomOfStackH\x02\x88\x01\x01\x12\x39\n\x0ctime_to_live\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowMplsTimeToLiveH\x03\x88\x01\x01\x42\x08\n\x06_labelB\x10\n\x0e_traffic_classB\x12\n\x10_bottom_of_stackB\x0f\n\r_time_to_live\"\x9f\x02\n\x08\x46lowSize\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowSize.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x66ixed\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12.\n\tincrement\x18\x03 \x01(\x0b\x32\x16.otg.FlowSizeIncrementH\x02\x88\x01\x01\x12(\n\x06random\x18\x04 \x01(\x0b\x32\x13.otg.FlowSizeRandomH\x03\x88\x01\x01\x1aG\n\x06\x43hoice\"=\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66ixed\x10\x01\x12\r\n\tincrement\x10\x02\x12\n\n\x06random\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_fixedB\x0c\n\n_incrementB\t\n\x07_random\"g\n\x11\x46lowSizeIncrement\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x10\n\x03\x65nd\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x11\n\x04step\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x06\n\x04_endB\x07\n\x05_step\"D\n\x0e\x46lowSizeRandom\x12\x10\n\x03min\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\x05H\x01\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_max\"\xd8\x02\n\x08\x46lowRate\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowRate.Choice.EnumH\x00\x88\x01\x01\x12\x10\n\x03pps\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x10\n\x03\x62ps\x18\x03 \x01(\x03H\x02\x88\x01\x01\x12\x11\n\x04kbps\x18\x04 \x01(\x03H\x03\x88\x01\x01\x12\x11\n\x04mbps\x18\x05 \x01(\x03H\x04\x88\x01\x01\x12\x11\n\x04gbps\x18\x06 \x01(\x05H\x05\x88\x01\x01\x12\x17\n\npercentage\x18\x07 \x01(\x02H\x06\x88\x01\x01\x1a\x61\n\x06\x43hoice\"W\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03pps\x10\x01\x12\x07\n\x03\x62ps\x10\x02\x12\x08\n\x04kbps\x10\x03\x12\x08\n\x04mbps\x10\x04\x12\x08\n\x04gbps\x10\x05\x12\x0e\n\npercentage\x10\x06\x42\t\n\x07_choiceB\x06\n\x04_ppsB\x06\n\x04_bpsB\x07\n\x05_kbpsB\x07\n\x05_mbpsB\x07\n\x05_gbpsB\r\n\x0b_percentage\"\xa6\x03\n\x0c\x46lowDuration\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.FlowDuration.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\rfixed_packets\x18\x02 \x01(\x0b\x32\x15.otg.FlowFixedPacketsH\x01\x88\x01\x01\x12\x31\n\rfixed_seconds\x18\x03 \x01(\x0b\x32\x15.otg.FlowFixedSecondsH\x02\x88\x01\x01\x12\"\n\x05\x62urst\x18\x04 \x01(\x0b\x32\x0e.otg.FlowBurstH\x03\x88\x01\x01\x12,\n\ncontinuous\x18\x05 \x01(\x0b\x32\x13.otg.FlowContinuousH\x04\x88\x01\x01\x1a\x62\n\x06\x43hoice\"X\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rfixed_packets\x10\x01\x12\x11\n\rfixed_seconds\x10\x02\x12\t\n\x05\x62urst\x10\x03\x12\x0e\n\ncontinuous\x10\x04\x42\t\n\x07_choiceB\x10\n\x0e_fixed_packetsB\x10\n\x0e_fixed_secondsB\x08\n\x06_burstB\r\n\x0b_continuous\"X\n\x0e\x46lowContinuous\x12\x10\n\x03gap\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x0e.otg.FlowDelayH\x01\x88\x01\x01\x42\x06\n\x04_gapB\x08\n\x06_delay\"\x8c\x02\n\tFlowDelay\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.FlowDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x02H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"|\n\x10\x46lowFixedPackets\x12\x14\n\x07packets\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayH\x02\x88\x01\x01\x42\n\n\x08_packetsB\x06\n\x04_gapB\x08\n\x06_delay\"|\n\x10\x46lowFixedSeconds\x12\x14\n\x07seconds\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayH\x02\x88\x01\x01\x42\n\n\x08_secondsB\x06\n\x04_gapB\x08\n\x06_delay\"\xb9\x01\n\tFlowBurst\x12\x13\n\x06\x62ursts\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x14\n\x07packets\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x10\n\x03gap\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12<\n\x0finter_burst_gap\x18\x04 \x01(\x0b\x32\x1e.otg.FlowDurationInterBurstGapH\x03\x88\x01\x01\x42\t\n\x07_burstsB\n\n\x08_packetsB\x06\n\x04_gapB\x12\n\x10_inter_burst_gap\"\xac\x02\n\x19\x46lowDurationInterBurstGap\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.FlowDurationInterBurstGap.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x01H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"\xac\x01\n\x0b\x46lowMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x11\n\x04loss\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x17\n\ntimestamps\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12-\n\x07latency\x18\x04 \x01(\x0b\x32\x17.otg.FlowLatencyMetricsH\x03\x88\x01\x01\x42\t\n\x07_enableB\x07\n\x05_lossB\r\n\x0b_timestampsB\n\n\x08_latency\"\xb8\x01\n\x12\x46lowLatencyMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x34\n\x04mode\x18\x02 \x01(\x0e\x32!.otg.FlowLatencyMetrics.Mode.EnumH\x01\x88\x01\x01\x1a\x43\n\x04Mode\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rstore_forward\x10\x01\x12\x0f\n\x0b\x63ut_through\x10\x02\x42\t\n\x07_enableB\x07\n\x05_mode\"\x8a\x02\n\x05\x45vent\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12!\n\x04link\x18\x02 \x01(\x0b\x32\x0e.otg.EventLinkH\x01\x88\x01\x01\x12\x39\n\x11rx_rate_threshold\x18\x03 \x01(\x0b\x32\x19.otg.EventRxRateThresholdH\x02\x88\x01\x01\x12G\n\x18route_advertise_withdraw\x18\x04 \x01(\x0b\x32 .otg.EventRouteAdvertiseWithdrawH\x03\x88\x01\x01\x42\t\n\x07_enableB\x07\n\x05_linkB\x14\n\x12_rx_rate_thresholdB\x1b\n\x19_route_advertise_withdraw\"\\\n\x14\x45ventRxRateThreshold\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x16\n\tthreshold\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\t\n\x07_enableB\x0c\n\n_threshold\"+\n\tEventLink\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"=\n\x1b\x45ventRouteAdvertiseWithdraw\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"\xf5\x01\n\x0c\x45ventRequest\x12)\n\x04type\x18\x01 \x03(\x0e\x32\x1b.otg.EventRequest.Type.Enum\x12\x0e\n\x06source\x18\x02 \x03(\t\x1a\xa9\x01\n\x04Type\"\xa0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tlink_down\x10\x01\x12\x0b\n\x07link_up\x10\x02\x12\x12\n\x0eroute_withdraw\x10\x03\x12\x13\n\x0froute_advertise\x10\x04\x12 \n\x1c\x66low_rx_rate_above_threshold\x10\x05\x12 \n\x1c\x66low_rx_rate_below_threshold\x10\x06\"r\n\x11\x45ventSubscription\x12&\n\x06\x65vents\x18\x01 \x01(\x0b\x32\x11.otg.EventRequestH\x00\x88\x01\x01\x12\x19\n\x0c\x63\x61llback_url\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\t\n\x07_eventsB\x0f\n\r_callback_url\"\xd1\x02\n\x04Lldp\x12\'\n\nconnection\x18\x01 \x01(\x0b\x32\x13.otg.LldpConnection\x12+\n\nchassis_id\x18\x02 \x01(\x0b\x32\x12.otg.LldpChassisIdH\x00\x88\x01\x01\x12%\n\x07port_id\x18\x03 \x01(\x0b\x32\x0f.otg.LldpPortIdH\x01\x88\x01\x01\x12-\n\x0bsystem_name\x18\x04 \x01(\x0b\x32\x13.otg.LldpSystemNameH\x02\x88\x01\x01\x12\x16\n\thold_time\x18\x05 \x01(\x05H\x03\x88\x01\x01\x12#\n\x16\x61\x64vertisement_interval\x18\x06 \x01(\x05H\x04\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\tB\r\n\x0b_chassis_idB\n\n\x08_port_idB\x0e\n\x0c_system_nameB\x0c\n\n_hold_timeB\x19\n\x17_advertisement_interval\"\xa9\x01\n\x0eLldpConnection\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_port_name\"\xfe\x02\n\rLldpChassisId\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.LldpChassisId.Choice.EnumH\x00\x88\x01\x01\x12<\n\x13mac_address_subtype\x18\x02 \x01(\x0b\x32\x1a.otg.LldpChassisMacSubTypeH\x01\x88\x01\x01\x12#\n\x16interface_name_subtype\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x03\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x16\n\x14_mac_address_subtypeB\x19\n\x17_interface_name_subtypeB\x10\n\x0e_local_subtype\"\xff\x02\n\nLldpPortId\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.LldpPortId.Choice.EnumH\x00\x88\x01\x01\x12 \n\x13mac_address_subtype\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x46\n\x16interface_name_subtype\x18\x03 \x01(\x0b\x32!.otg.LldpPortInterfaceNameSubTypeH\x02\x88\x01\x01\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x03\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x16\n\x14_mac_address_subtypeB\x19\n\x17_interface_name_subtypeB\x10\n\x0e_local_subtype\"\xd1\x01\n\x15LldpChassisMacSubType\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.LldpChassisMacSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xdf\x01\n\x1cLldpPortInterfaceNameSubType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.LldpPortInterfaceNameSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xc3\x01\n\x0eLldpSystemName\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpSystemName.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\x96\x01\n\x05\x45rror\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\'\n\x04kind\x18\x02 \x01(\x0e\x32\x14.otg.Error.Kind.EnumH\x00\x88\x01\x01\x12\x0e\n\x06\x65rrors\x18\x03 \x03(\t\x1a=\n\x04Kind\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nvalidation\x10\x01\x12\x0c\n\x08internal\x10\x02\x42\x07\n\x05_kind\"\x1b\n\x07Warning\x12\x10\n\x08warnings\x18\x01 \x03(\t\"\xab\x01\n\x0c\x43onfigUpdate\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ConfigUpdate.Choice.EnumH\x00\x88\x01\x01\x12$\n\x05\x66lows\x18\x02 \x01(\x0b\x32\x10.otg.FlowsUpdateH\x01\x88\x01\x01\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66lows\x10\x01\x42\t\n\x07_choiceB\x08\n\x06_flows\"\xa2\x01\n\x0b\x46lowsUpdate\x12;\n\x0eproperty_names\x18\x01 \x03(\x0e\x32#.otg.FlowsUpdate.PropertyNames.Enum\x12\x18\n\x05\x66lows\x18\x02 \x03(\x0b\x32\t.otg.Flow\x1a<\n\rPropertyNames\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04rate\x10\x01\x12\x08\n\x04size\x10\x02\"\x9e\x02\n\x0c\x43ontrolState\x12-\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ControlState.Choice.Enum\x12!\n\x04port\x18\x02 \x01(\x0b\x32\x0e.otg.StatePortH\x00\x88\x01\x01\x12)\n\x08protocol\x18\x03 \x01(\x0b\x32\x12.otg.StateProtocolH\x01\x88\x01\x01\x12\'\n\x07traffic\x18\x04 \x01(\x0b\x32\x11.otg.StateTrafficH\x02\x88\x01\x01\x1a\x46\n\x06\x43hoice\"<\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x0c\n\x08protocol\x10\x02\x12\x0b\n\x07traffic\x10\x03\x42\x07\n\x05_portB\x0b\n\t_protocolB\n\n\x08_traffic\"\xda\x01\n\tStatePort\x12*\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.StatePort.Choice.Enum\x12%\n\x04link\x18\x02 \x01(\x0b\x32\x12.otg.StatePortLinkH\x00\x88\x01\x01\x12+\n\x07\x63\x61pture\x18\x03 \x01(\x0b\x32\x15.otg.StatePortCaptureH\x01\x88\x01\x01\x1a\x38\n\x06\x43hoice\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04link\x10\x01\x12\x0b\n\x07\x63\x61pture\x10\x02\x42\x07\n\x05_linkB\n\n\x08_capture\"\xc0\x01\n\x0cStateTraffic\x12-\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.StateTraffic.Choice.Enum\x12\x39\n\rflow_transmit\x18\x02 \x01(\x0b\x32\x1d.otg.StateTrafficFlowTransmitH\x00\x88\x01\x01\x1a\x34\n\x06\x43hoice\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rflow_transmit\x10\x01\x42\x10\n\x0e_flow_transmit\"\x9c\x02\n\rStateProtocol\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StateProtocol.Choice.Enum\x12\'\n\x03\x61ll\x18\x02 \x01(\x0b\x32\x15.otg.StateProtocolAllH\x00\x88\x01\x01\x12+\n\x05route\x18\x03 \x01(\x0b\x32\x17.otg.StateProtocolRouteH\x01\x88\x01\x01\x12)\n\x04lacp\x18\x04 \x01(\x0b\x32\x16.otg.StateProtocolLacpH\x02\x88\x01\x01\x1a?\n\x06\x43hoice\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03\x61ll\x10\x01\x12\t\n\x05route\x10\x02\x12\x08\n\x04lacp\x10\x03\x42\x06\n\x04_allB\x08\n\x06_routeB\x07\n\x05_lacp\"}\n\tLinkState\x12\x12\n\nport_names\x18\x01 \x03(\t\x12(\n\x05state\x18\x02 \x01(\x0e\x32\x19.otg.LinkState.State.Enum\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\"\x9f\x01\n\rTransmitState\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12,\n\x05state\x18\x02 \x01(\x0e\x32\x1d.otg.TransmitState.State.Enum\x1aL\n\x05State\"C\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\x12\t\n\x05pause\x10\x03\x12\n\n\x06resume\x10\x04\"\x86\x01\n\x0c\x43\x61ptureState\x12\x12\n\nport_names\x18\x01 \x03(\t\x12+\n\x05state\x18\x02 \x01(\x0e\x32\x1c.otg.CaptureState.State.Enum\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\"\x85\x01\n\nRouteState\x12\r\n\x05names\x18\x01 \x03(\t\x12)\n\x05state\x18\x02 \x01(\x0e\x32\x1a.otg.RouteState.State.Enum\x1a=\n\x05State\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08withdraw\x10\x01\x12\r\n\tadvertise\x10\x02\"t\n\rProtocolState\x12,\n\x05state\x18\x01 \x01(\x0e\x32\x1d.otg.ProtocolState.State.Enum\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\"\xd1\x01\n\x0b\x44\x65viceState\x12\x31\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1c.otg.DeviceState.Choice.EnumH\x00\x88\x01\x01\x12\x34\n\x11lacp_member_state\x18\x02 \x01(\x0b\x32\x14.otg.LacpMemberStateH\x01\x88\x01\x01\x1a\x38\n\x06\x43hoice\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x15\n\x11lacp_member_state\x10\x01\x42\t\n\x07_choiceB\x14\n\x12_lacp_member_state\"\x85\x01\n\rStatePortLink\x12\x12\n\nport_names\x18\x01 \x03(\t\x12,\n\x05state\x18\x02 \x01(\x0e\x32\x1d.otg.StatePortLink.State.Enum\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\"\x8e\x01\n\x10StatePortCapture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12/\n\x05state\x18\x02 \x01(\x0e\x32 .otg.StatePortCapture.State.Enum\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\"\xc4\x01\n\x18StateTrafficFlowTransmit\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12<\n\x05state\x18\x02 \x01(\x0e\x32(.otg.StateTrafficFlowTransmit.State.EnumH\x00\x88\x01\x01\x1aL\n\x05State\"C\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\x12\t\n\x05pause\x10\x03\x12\n\n\x06resume\x10\x04\x42\x08\n\x06_state\"z\n\x10StateProtocolAll\x12/\n\x05state\x18\x01 \x01(\x0e\x32 .otg.StateProtocolAll.State.Enum\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\"\x95\x01\n\x12StateProtocolRoute\x12\r\n\x05names\x18\x01 \x03(\t\x12\x31\n\x05state\x18\x02 \x01(\x0e\x32\".otg.StateProtocolRoute.State.Enum\x1a=\n\x05State\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08withdraw\x10\x01\x12\r\n\tadvertise\x10\x02\"\xb0\x01\n\x11StateProtocolLacp\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.StateProtocolLacp.Choice.Enum\x12/\n\x05\x61\x64min\x18\x02 \x01(\x0b\x32\x1b.otg.StateProtocolLacpAdminH\x00\x88\x01\x01\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x61\x64min\x10\x01\x42\x08\n\x06_admin\"\xac\x01\n\x16StateProtocolLacpAdmin\x12\x18\n\x10lag_member_names\x18\x01 \x03(\t\x12:\n\x05state\x18\x02 \x01(\x0e\x32&.otg.StateProtocolLacpAdmin.State.EnumH\x00\x88\x01\x01\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x08\n\x06_state\"\x94\x01\n\x0fLacpMemberState\x12\x1d\n\x15lag_member_port_names\x18\x01 \x03(\t\x12.\n\x05state\x18\x02 \x01(\x0e\x32\x1f.otg.LacpMemberState.State.Enum\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\"\xa9\x01\n\rControlAction\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.ControlAction.Choice.Enum\x12*\n\x08protocol\x18\x02 \x01(\x0b\x32\x13.otg.ActionProtocolH\x00\x88\x01\x01\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\x0b\n\t_protocol\"b\n\x15\x43ontrolActionResponse\x12\x10\n\x08warnings\x18\x01 \x03(\t\x12*\n\x08response\x18\x02 \x01(\x0b\x32\x13.otg.ActionResponseH\x00\x88\x01\x01\x42\x0b\n\t_response\"\xb3\x01\n\x0e\x41\x63tionResponse\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionResponse.Choice.Enum\x12\x32\n\x08protocol\x18\x02 \x01(\x0b\x32\x1b.otg.ActionResponseProtocolH\x00\x88\x01\x01\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\x0b\n\t_protocol\"\x9d\x02\n\x0e\x41\x63tionProtocol\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionProtocol.Choice.Enum\x12*\n\x04ipv4\x18\x02 \x01(\x0b\x32\x17.otg.ActionProtocolIpv4H\x00\x88\x01\x01\x12*\n\x04ipv6\x18\x03 \x01(\x0b\x32\x17.otg.ActionProtocolIpv6H\x01\x88\x01\x01\x12(\n\x03\x62gp\x18\x04 \x01(\x0b\x32\x16.otg.ActionProtocolBgpH\x02\x88\x01\x01\x1a>\n\x06\x43hoice\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x62gp\x10\x03\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6B\x06\n\x04_bgp\"\x82\x02\n\x16\x41\x63tionResponseProtocol\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.ActionResponseProtocol.Choice.Enum\x12\x32\n\x04ipv4\x18\x02 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv4H\x00\x88\x01\x01\x12\x32\n\x04ipv6\x18\x03 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv6H\x01\x88\x01\x01\x1a\x35\n\x06\x43hoice\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6\"\xaf\x01\n\x12\x41\x63tionProtocolIpv4\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv4.Choice.Enum\x12.\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv4PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"\xc7\x01\n\x1a\x41\x63tionResponseProtocolIpv4\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv4.Choice.Enum\x12\x36\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv4PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"N\n\x16\x41\x63tionProtocolIpv4Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv4PingRequest\"c\n\x1d\x41\x63tionProtocolIpv4PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv4Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv4PingResponse\"\xd1\x01\n&ActionResponseProtocolIpv4PingResponse\x12\x10\n\x08src_name\x18\x01 \x01(\t\x12\x0e\n\x06\x64st_ip\x18\x02 \x01(\t\x12G\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv4PingResponse.Result.Enum\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\"\xaf\x01\n\x12\x41\x63tionProtocolIpv6\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv6.Choice.Enum\x12.\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv6PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"\xc7\x01\n\x1a\x41\x63tionResponseProtocolIpv6\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv6.Choice.Enum\x12\x36\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv6PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"N\n\x16\x41\x63tionProtocolIpv6Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv6PingRequest\"c\n\x1d\x41\x63tionProtocolIpv6PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv6Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv6PingResponse\"\xd1\x01\n&ActionResponseProtocolIpv6PingResponse\x12\x10\n\x08src_name\x18\x01 \x01(\t\x12\x0e\n\x06\x64st_ip\x18\x02 \x01(\t\x12G\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv6PingResponse.Result.Enum\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\"\xe0\x02\n\x11\x41\x63tionProtocolBgp\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.ActionProtocolBgp.Choice.Enum\x12=\n\x0cnotification\x18\x02 \x01(\x0b\x32\".otg.ActionProtocolBgpNotificationH\x00\x88\x01\x01\x12U\n\x19initiate_graceful_restart\x18\x03 \x01(\x0b\x32-.otg.ActionProtocolBgpInitiateGracefulRestartH\x01\x88\x01\x01\x1aR\n\x06\x43hoice\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cnotification\x10\x01\x12\x1d\n\x19initiate_graceful_restart\x10\x02\x42\x0f\n\r_notificationB\x1c\n\x1a_initiate_graceful_restart\"\x8c\x07\n\x1d\x41\x63tionProtocolBgpNotification\x12\r\n\x05names\x18\x01 \x03(\t\x12\x43\n\x06\x63hoice\x18\x02 \x01(\x0e\x32..otg.ActionProtocolBgpNotification.Choice.EnumH\x00\x88\x01\x01\x12,\n\x05\x63\x65\x61se\x18\x03 \x01(\x0b\x32\x18.otg.DeviceBgpCeaseErrorH\x01\x88\x01\x01\x12\x43\n\x14message_header_error\x18\x04 \x01(\x0b\x32 .otg.DeviceBgpMessageHeaderErrorH\x02\x88\x01\x01\x12?\n\x12open_message_error\x18\x05 \x01(\x0b\x32\x1e.otg.DeviceBgpOpenMessageErrorH\x03\x88\x01\x01\x12\x43\n\x14update_message_error\x18\x06 \x01(\x0b\x32 .otg.DeviceBgpUpdateMessageErrorH\x04\x88\x01\x01\x12?\n\x12hold_timer_expired\x18\x07 \x01(\x0b\x32\x1e.otg.DeviceBgpHoldTimerExpiredH\x05\x88\x01\x01\x12N\n\x1a\x66inite_state_machine_error\x18\x08 \x01(\x0b\x32%.otg.DeviceBgpFiniteStateMachineErrorH\x06\x88\x01\x01\x12.\n\x06\x63ustom\x18\t \x01(\x0b\x32\x19.otg.DeviceBgpCustomErrorH\x07\x88\x01\x01\x1a\xbd\x01\n\x06\x43hoice\"\xb2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x63\x65\x61se\x10\x01\x12\x18\n\x14message_header_error\x10\x02\x12\x16\n\x12open_message_error\x10\x03\x12\x18\n\x14update_message_error\x10\x04\x12\x16\n\x12hold_timer_expired\x10\x05\x12\x1e\n\x1a\x66inite_state_machine_error\x10\x06\x12\n\n\x06\x63ustom\x10\x07\x42\t\n\x07_choiceB\x08\n\x06_ceaseB\x17\n\x15_message_header_errorB\x15\n\x13_open_message_errorB\x17\n\x15_update_message_errorB\x15\n\x13_hold_timer_expiredB\x1d\n\x1b_finite_state_machine_errorB\t\n\x07_custom\"l\n(ActionProtocolBgpInitiateGracefulRestart\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12\x1a\n\rrestart_delay\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\x10\n\x0e_restart_delay\"\xca\x01\n\x04Ping\x12*\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x15.otg.Ping.Choice.EnumH\x00\x88\x01\x01\x12 \n\x04ipv4\x18\x02 \x01(\x0b\x32\r.otg.PingIpv4H\x01\x88\x01\x01\x12 \n\x04ipv6\x18\x03 \x01(\x0b\x32\r.otg.PingIpv6H\x02\x88\x01\x01\x1a\x35\n\x06\x43hoice\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_ipv4B\x07\n\x05_ipv6\"N\n\x08PingIpv4\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"N\n\x08PingIpv6\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"+\n\x0bPingRequest\x12\x1c\n\tendpoints\x18\x01 \x03(\x0b\x32\t.otg.Ping\"0\n\x0cPingResponse\x12 \n\tresponses\x18\x01 \x03(\x0b\x32\r.otg.Response\"\xc6\x01\n\x08Response\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x12.\n\x06result\x18\x03 \x01(\x0e\x32\x19.otg.Response.Result.EnumH\x02\x88\x01\x01\x1a;\n\x06Result\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07success\x10\x01\x12\x0b\n\x07\x66\x61ilure\x10\x02\x42\x0b\n\t_src_nameB\t\n\x07_dst_ipB\t\n\x07_result\"\xaf\x05\n\x0eMetricsRequest\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.MetricsRequest.Choice.EnumH\x00\x88\x01\x01\x12*\n\x04port\x18\x02 \x01(\x0b\x32\x17.otg.PortMetricsRequestH\x01\x88\x01\x01\x12*\n\x04\x66low\x18\x03 \x01(\x0b\x32\x17.otg.FlowMetricsRequestH\x02\x88\x01\x01\x12,\n\x05\x62gpv4\x18\x04 \x01(\x0b\x32\x18.otg.Bgpv4MetricsRequestH\x03\x88\x01\x01\x12,\n\x05\x62gpv6\x18\x05 \x01(\x0b\x32\x18.otg.Bgpv6MetricsRequestH\x04\x88\x01\x01\x12*\n\x04isis\x18\x06 \x01(\x0b\x32\x17.otg.IsisMetricsRequestH\x05\x88\x01\x01\x12(\n\x03lag\x18\x07 \x01(\x0b\x32\x16.otg.LagMetricsRequestH\x06\x88\x01\x01\x12*\n\x04lacp\x18\x08 \x01(\x0b\x32\x17.otg.LacpMetricsRequestH\x07\x88\x01\x01\x12*\n\x04lldp\x18\t \x01(\x0b\x32\x17.otg.LldpMetricsRequestH\x08\x88\x01\x01\x12*\n\x04rsvp\x18\n \x01(\x0b\x32\x17.otg.RsvpMetricsRequestH\t\x88\x01\x01\x1a|\n\x06\x43hoice\"r\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x08\n\x04\x66low\x10\x02\x12\t\n\x05\x62gpv4\x10\x03\x12\t\n\x05\x62gpv6\x10\x04\x12\x08\n\x04isis\x10\x05\x12\x07\n\x03lag\x10\x06\x12\x08\n\x04lacp\x10\x07\x12\x08\n\x04lldp\x10\x08\x12\x08\n\x04rsvp\x10\tB\t\n\x07_choiceB\x07\n\x05_portB\x07\n\x05_flowB\x08\n\x06_bgpv4B\x08\n\x06_bgpv6B\x07\n\x05_isisB\x06\n\x04_lagB\x07\n\x05_lacpB\x07\n\x05_lldpB\x07\n\x05_rsvp\"\xfc\x04\n\x0fMetricsResponse\x12\x35\n\x06\x63hoice\x18\x01 \x01(\x0e\x32 .otg.MetricsResponse.Choice.EnumH\x00\x88\x01\x01\x12%\n\x0cport_metrics\x18\x02 \x03(\x0b\x32\x0f.otg.PortMetric\x12%\n\x0c\x66low_metrics\x18\x03 \x03(\x0b\x32\x0f.otg.FlowMetric\x12\'\n\rbgpv4_metrics\x18\x04 \x03(\x0b\x32\x10.otg.Bgpv4Metric\x12\'\n\rbgpv6_metrics\x18\x05 \x03(\x0b\x32\x10.otg.Bgpv6Metric\x12%\n\x0cisis_metrics\x18\x06 \x03(\x0b\x32\x0f.otg.IsisMetric\x12#\n\x0blag_metrics\x18\x07 \x03(\x0b\x32\x0e.otg.LagMetric\x12%\n\x0clacp_metrics\x18\x08 \x03(\x0b\x32\x0f.otg.LacpMetric\x12%\n\x0clldp_metrics\x18\t \x03(\x0b\x32\x0f.otg.LldpMetric\x12%\n\x0crsvp_metrics\x18\n \x03(\x0b\x32\x0f.otg.RsvpMetric\x1a\xc5\x01\n\x06\x43hoice\"\xba\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x66low_metrics\x10\x01\x12\x10\n\x0cport_metrics\x10\x02\x12\x11\n\rbgpv4_metrics\x10\x03\x12\x11\n\rbgpv6_metrics\x10\x04\x12\x10\n\x0cisis_metrics\x10\x05\x12\x0f\n\x0blag_metrics\x10\x06\x12\x10\n\x0clacp_metrics\x10\x07\x12\x10\n\x0clldp_metrics\x10\x08\x12\x10\n\x0crsvp_metrics\x10\tB\t\n\x07_choice\"\xcd\x02\n\x12PortMetricsRequest\x12\x12\n\nport_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.PortMetricsRequest.ColumnNames.Enum\x1a\xe2\x01\n\x0b\x43olumnNames\"\xd2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\x0c\n\x08location\x10\x02\x12\x08\n\x04link\x10\x03\x12\x0b\n\x07\x63\x61pture\x10\x04\x12\r\n\tframes_tx\x10\x05\x12\r\n\tframes_rx\x10\x06\x12\x0c\n\x08\x62ytes_tx\x10\x07\x12\x0c\n\x08\x62ytes_rx\x10\x08\x12\x12\n\x0e\x66rames_tx_rate\x10\t\x12\x12\n\x0e\x66rames_rx_rate\x10\n\x12\x11\n\rbytes_tx_rate\x10\x0b\x12\x11\n\rbytes_rx_rate\x10\x0c\"\x86\x06\n\nPortMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08location\x18\x02 \x01(\tH\x01\x88\x01\x01\x12,\n\x04link\x18\x03 \x01(\x0e\x32\x19.otg.PortMetric.Link.EnumH\x02\x88\x01\x01\x12\x32\n\x07\x63\x61pture\x18\x04 \x01(\x0e\x32\x1c.otg.PortMetric.Capture.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x05 \x01(\x03H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x06 \x01(\x03H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x07 \x01(\x03H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x08 \x01(\x03H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0c \x01(\x02H\x0b\x88\x01\x01\x12\x34\n\x08transmit\x18\r \x01(\x0e\x32\x1d.otg.PortMetric.Transmit.EnumH\x0c\x88\x01\x01\x1a\x31\n\x04Link\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a<\n\x07\x43\x61pture\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x1a=\n\x08Transmit\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x42\x07\n\x05_nameB\x0b\n\t_locationB\x07\n\x05_linkB\n\n\x08_captureB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rateB\x0b\n\t_transmit\"\xcd\x02\n\x12\x46lowMetricsRequest\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12\x37\n\rmetric_groups\x18\x02 \x01(\x0b\x32\x1b.otg.FlowMetricGroupRequestH\x00\x88\x01\x01\x12>\n\x0cmetric_names\x18\x03 \x03(\x0e\x32(.otg.FlowMetricsRequest.MetricNames.Enum\x1a\x97\x01\n\x0bMetricNames\"\x87\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\r\n\tframes_rx\x10\x03\x12\x0c\n\x08\x62ytes_tx\x10\x04\x12\x0c\n\x08\x62ytes_rx\x10\x05\x12\x12\n\x0e\x66rames_tx_rate\x10\x06\x12\x12\n\x0e\x66rames_rx_rate\x10\x07\x42\x10\n\x0e_metric_groups\"\xbe\x01\n\x16\x46lowMetricGroupRequest\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.FlowMetricGroupRequest.Choice.EnumH\x00\x88\x01\x01\x12\x0f\n\x07ingress\x18\x02 \x03(\t\x12\x0e\n\x06\x65gress\x18\x03 \x03(\t\x1a:\n\x06\x43hoice\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07ingress\x10\x01\x12\n\n\x06\x65gress\x10\x02\x42\t\n\x07_choice\"\xab\x05\n\nFlowMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07port_tx\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07port_rx\x18\x03 \x01(\tH\x02\x88\x01\x01\x12+\n\rmetric_groups\x18\x04 \x03(\x0b\x32\x14.otg.FlowMetricGroup\x12\x34\n\x08transmit\x18\x05 \x01(\x0e\x32\x1d.otg.FlowMetric.Transmit.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x06 \x01(\x03H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x07 \x01(\x03H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x08 \x01(\x03H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\t \x01(\x03H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\n \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\x0b \x01(\x02H\t\x88\x01\x01\x12\x11\n\x04loss\x18\x0c \x01(\x02H\n\x88\x01\x01\x12-\n\ntimestamps\x18\r \x01(\x0b\x32\x14.otg.MetricTimestampH\x0b\x88\x01\x01\x12(\n\x07latency\x18\x0e \x01(\x0b\x32\x12.otg.MetricLatencyH\x0c\x88\x01\x01\x1aI\n\x08Transmit\"=\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x12\n\n\x06paused\x10\x03\x42\x07\n\x05_nameB\n\n\x08_port_txB\n\n\x08_port_rxB\x0b\n\t_transmitB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x07\n\x05_lossB\r\n\x0b_timestampsB\n\n\x08_latency\"K\n\x0f\x46lowMetricGroup\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_value\"\x7f\n\x0fMetricTimestamp\x12\x1f\n\x12\x66irst_timestamp_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x1e\n\x11last_timestamp_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x42\x15\n\x13_first_timestamp_nsB\x14\n\x12_last_timestamp_ns\"\x87\x01\n\rMetricLatency\x12\x17\n\nminimum_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x17\n\nmaximum_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x17\n\naverage_ns\x18\x03 \x01(\x01H\x02\x88\x01\x01\x42\r\n\x0b_minimum_nsB\r\n\x0b_maximum_nsB\r\n\x0b_average_ns\"\xe0\x03\n\x13\x42gpv4MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv4MetricsRequest.ColumnNames.Enum\x1a\xf3\x02\n\x0b\x43olumnNames\"\xe3\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\"\xb0\x08\n\x0b\x42gpv4Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv4Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x05H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x05H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x05H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x05H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x05H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x05H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x05H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x05H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x05H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x05H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x05H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv4Metric.FsmState.EnumH\x0f\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_state\"\xe0\x03\n\x13\x42gpv6MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv6MetricsRequest.ColumnNames.Enum\x1a\xf3\x02\n\x0b\x43olumnNames\"\xe3\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\"\xb0\x08\n\x0b\x42gpv6Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv6Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x05H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x05H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x05H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x05H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x05H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x05H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x05H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x05H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x05H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x05H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x05H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv6Metric.FsmState.EnumH\x0f\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_state\"\x92\x06\n\x12IsisMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.IsisMetricsRequest.ColumnNames.Enum\x1a\xa5\x05\n\x0b\x43olumnNames\"\x95\x05\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0el1_sessions_up\x10\x01\x12\x13\n\x0fl1_session_flap\x10\x02\x12\x14\n\x10l1_database_size\x10\x03\x12\x1c\n\x18l1_broadcast_hellos_sent\x10\x04\x12 \n\x1cl1_broadcast_hellos_received\x10\x05\x12!\n\x1dl1_point_to_point_hellos_sent\x10\x06\x12%\n!l1_point_to_point_hellos_received\x10\x07\x12\x10\n\x0cl1_psnp_sent\x10\x08\x12\x14\n\x10l1_psnp_received\x10\t\x12\x10\n\x0cl1_csnp_sent\x10\n\x12\x14\n\x10l1_csnp_received\x10\x0b\x12\x0f\n\x0bl1_lsp_sent\x10\x0c\x12\x13\n\x0fl1_lsp_received\x10\r\x12\x12\n\x0el2_sessions_up\x10\x0e\x12\x13\n\x0fl2_session_flap\x10\x0f\x12\x14\n\x10l2_database_size\x10\x10\x12\x1c\n\x18l2_broadcast_hellos_sent\x10\x11\x12 \n\x1cl2_broadcast_hellos_received\x10\x12\x12!\n\x1dl2_point_to_point_hellos_sent\x10\x13\x12%\n!l2_point_to_point_hellos_received\x10\x14\x12\x10\n\x0cl2_psnp_sent\x10\x15\x12\x14\n\x10l2_psnp_received\x10\x16\x12\x10\n\x0cl2_csnp_sent\x10\x17\x12\x14\n\x10l2_csnp_received\x10\x18\x12\x0f\n\x0bl2_lsp_sent\x10\x19\x12\x13\n\x0fl2_lsp_received\x10\x1a\"\xf4\x0b\n\nIsisMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0el1_sessions_up\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x1c\n\x0fl1_session_flap\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12%\n\x18l1_broadcast_hellos_sent\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12)\n\x1cl1_broadcast_hellos_received\x18\x05 \x01(\x05H\x04\x88\x01\x01\x12*\n\x1dl1_point_to_point_hellos_sent\x18\x06 \x01(\x05H\x05\x88\x01\x01\x12.\n!l1_point_to_point_hellos_received\x18\x07 \x01(\x05H\x06\x88\x01\x01\x12\x1d\n\x10l1_database_size\x18\x08 \x01(\x05H\x07\x88\x01\x01\x12\x19\n\x0cl1_psnp_sent\x18\t \x01(\x05H\x08\x88\x01\x01\x12\x1d\n\x10l1_psnp_received\x18\n \x01(\x05H\t\x88\x01\x01\x12\x19\n\x0cl1_csnp_sent\x18\x0b \x01(\x05H\n\x88\x01\x01\x12\x1d\n\x10l1_csnp_received\x18\x0c \x01(\x05H\x0b\x88\x01\x01\x12\x18\n\x0bl1_lsp_sent\x18\r \x01(\x05H\x0c\x88\x01\x01\x12\x1c\n\x0fl1_lsp_received\x18\x0e \x01(\x05H\r\x88\x01\x01\x12\x1b\n\x0el2_sessions_up\x18\x0f \x01(\x05H\x0e\x88\x01\x01\x12\x1c\n\x0fl2_session_flap\x18\x10 \x01(\x05H\x0f\x88\x01\x01\x12%\n\x18l2_broadcast_hellos_sent\x18\x11 \x01(\x05H\x10\x88\x01\x01\x12)\n\x1cl2_broadcast_hellos_received\x18\x12 \x01(\x05H\x11\x88\x01\x01\x12*\n\x1dl2_point_to_point_hellos_sent\x18\x13 \x01(\x05H\x12\x88\x01\x01\x12.\n!l2_point_to_point_hellos_received\x18\x14 \x01(\x05H\x13\x88\x01\x01\x12\x1d\n\x10l2_database_size\x18\x15 \x01(\x05H\x14\x88\x01\x01\x12\x19\n\x0cl2_psnp_sent\x18\x16 \x01(\x05H\x15\x88\x01\x01\x12\x1d\n\x10l2_psnp_received\x18\x17 \x01(\x05H\x16\x88\x01\x01\x12\x19\n\x0cl2_csnp_sent\x18\x18 \x01(\x05H\x17\x88\x01\x01\x12\x1d\n\x10l2_csnp_received\x18\x19 \x01(\x05H\x18\x88\x01\x01\x12\x18\n\x0bl2_lsp_sent\x18\x1a \x01(\x05H\x19\x88\x01\x01\x12\x1c\n\x0fl2_lsp_received\x18\x1b \x01(\x05H\x1a\x88\x01\x01\x42\x07\n\x05_nameB\x11\n\x0f_l1_sessions_upB\x12\n\x10_l1_session_flapB\x1b\n\x19_l1_broadcast_hellos_sentB\x1f\n\x1d_l1_broadcast_hellos_receivedB \n\x1e_l1_point_to_point_hellos_sentB$\n\"_l1_point_to_point_hellos_receivedB\x13\n\x11_l1_database_sizeB\x0f\n\r_l1_psnp_sentB\x13\n\x11_l1_psnp_receivedB\x0f\n\r_l1_csnp_sentB\x13\n\x11_l1_csnp_receivedB\x0e\n\x0c_l1_lsp_sentB\x12\n\x10_l1_lsp_receivedB\x11\n\x0f_l2_sessions_upB\x12\n\x10_l2_session_flapB\x1b\n\x19_l2_broadcast_hellos_sentB\x1f\n\x1d_l2_broadcast_hellos_receivedB \n\x1e_l2_point_to_point_hellos_sentB$\n\"_l2_point_to_point_hellos_receivedB\x13\n\x11_l2_database_sizeB\x0f\n\r_l2_psnp_sentB\x13\n\x11_l2_psnp_receivedB\x0f\n\r_l2_csnp_sentB\x13\n\x11_l2_csnp_receivedB\x0e\n\x0c_l2_lsp_sentB\x12\n\x10_l2_lsp_received\"\xbd\x02\n\x11LagMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12=\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32\'.otg.LagMetricsRequest.ColumnNames.Enum\x1a\xd5\x01\n\x0b\x43olumnNames\"\xc5\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0f\n\x0boper_status\x10\x01\x12\x13\n\x0fmember_ports_up\x10\x02\x12\r\n\tframes_tx\x10\x03\x12\r\n\tframes_rx\x10\x04\x12\x0c\n\x08\x62ytes_tx\x10\x05\x12\x0c\n\x08\x62ytes_rx\x10\x06\x12\x12\n\x0e\x66rames_tx_rate\x10\x07\x12\x12\n\x0e\x66rames_rx_rate\x10\x08\x12\x11\n\rbytes_tx_rate\x10\t\x12\x11\n\rbytes_rx_rate\x10\n\"\xac\x04\n\tLagMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x38\n\x0boper_status\x18\x02 \x01(\x0e\x32\x1e.otg.LagMetric.OperStatus.EnumH\x01\x88\x01\x01\x12\x1c\n\x0fmember_ports_up\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x16\n\tframes_tx\x18\x04 \x01(\x03H\x03\x88\x01\x01\x12\x16\n\tframes_rx\x18\x05 \x01(\x03H\x04\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x06 \x01(\x03H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x07 \x01(\x03H\x06\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\x08 \x01(\x02H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x1a\x37\n\nOperStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x07\n\x05_nameB\x0e\n\x0c_oper_statusB\x12\n\x10_member_ports_upB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rate\"\xb4\x03\n\x12LacpMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12\x1d\n\x15lag_member_port_names\x18\x02 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x03 \x03(\x0e\x32(.otg.LacpMetricsRequest.ColumnNames.Enum\x1a\xab\x02\n\x0b\x43olumnNames\"\x9b\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0flacp_packets_rx\x10\x01\x12\x13\n\x0flacp_packets_tx\x10\x02\x12\x12\n\x0elacp_rx_errors\x10\x03\x12\x0c\n\x08\x61\x63tivity\x10\x04\x12\x0b\n\x07timeout\x10\x05\x12\x13\n\x0fsynchronization\x10\x06\x12\x10\n\x0c\x61ggregatable\x10\x07\x12\x0e\n\ncollecting\x10\x08\x12\x10\n\x0c\x64istributing\x10\t\x12\r\n\tsystem_id\x10\n\x12\x0c\n\x08oper_key\x10\x0b\x12\x0e\n\npartner_id\x10\x0c\x12\x0f\n\x0bpartner_key\x10\r\x12\x0c\n\x08port_num\x10\x0e\x12\x14\n\x10partner_port_num\x10\x0f\"\x8d\x08\n\nLacpMetric\x12\x15\n\x08lag_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12!\n\x14lag_member_port_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0flacp_packets_rx\x18\x03 \x01(\x03H\x02\x88\x01\x01\x12\x1c\n\x0flacp_packets_tx\x18\x04 \x01(\x03H\x03\x88\x01\x01\x12\x1b\n\x0elacp_rx_errors\x18\x05 \x01(\x03H\x04\x88\x01\x01\x12\x34\n\x08\x61\x63tivity\x18\x06 \x01(\x0e\x32\x1d.otg.LacpMetric.Activity.EnumH\x05\x88\x01\x01\x12\x32\n\x07timeout\x18\x07 \x01(\x0e\x32\x1c.otg.LacpMetric.Timeout.EnumH\x06\x88\x01\x01\x12\x42\n\x0fsynchronization\x18\x08 \x01(\x0e\x32$.otg.LacpMetric.Synchronization.EnumH\x07\x88\x01\x01\x12\x19\n\x0c\x61ggregatable\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x17\n\ncollecting\x18\n \x01(\x08H\t\x88\x01\x01\x12\x19\n\x0c\x64istributing\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x16\n\tsystem_id\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x15\n\x08oper_key\x18\r \x01(\x05H\x0c\x88\x01\x01\x12\x17\n\npartner_id\x18\x0e \x01(\tH\r\x88\x01\x01\x12\x18\n\x0bpartner_key\x18\x0f \x01(\x05H\x0e\x88\x01\x01\x12\x15\n\x08port_num\x18\x10 \x01(\x05H\x0f\x88\x01\x01\x12\x1d\n\x10partner_port_num\x18\x11 \x01(\x05H\x10\x88\x01\x01\x1a<\n\x08\x41\x63tivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61\x63tive\x10\x01\x12\x0b\n\x07passive\x10\x02\x1a\x37\n\x07Timeout\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05short\x10\x01\x12\x08\n\x04long\x10\x02\x1a\x45\n\x0fSynchronization\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07in_sync\x10\x01\x12\x0c\n\x08out_sync\x10\x02\x42\x0b\n\t_lag_nameB\x17\n\x15_lag_member_port_nameB\x12\n\x10_lacp_packets_rxB\x12\n\x10_lacp_packets_txB\x11\n\x0f_lacp_rx_errorsB\x0b\n\t_activityB\n\n\x08_timeoutB\x12\n\x10_synchronizationB\x0f\n\r_aggregatableB\r\n\x0b_collectingB\x0f\n\r_distributingB\x0c\n\n_system_idB\x0b\n\t_oper_keyB\r\n\x0b_partner_idB\x0e\n\x0c_partner_keyB\x0b\n\t_port_numB\x13\n\x11_partner_port_num\"\xfd\x01\n\x12LldpMetricsRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.LldpMetricsRequest.ColumnNames.Enum\x1a\x92\x01\n\x0b\x43olumnNames\"\x82\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tframes_rx\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\x13\n\x0f\x66rames_error_rx\x10\x03\x12\x12\n\x0e\x66rames_discard\x10\x04\x12\x10\n\x0ctlvs_discard\x10\x05\x12\x10\n\x0ctlvs_unknown\x10\x06\"\xae\x02\n\nLldpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tframes_rx\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x16\n\tframes_tx\x18\x03 \x01(\x03H\x02\x88\x01\x01\x12\x1c\n\x0f\x66rames_error_rx\x18\x04 \x01(\x03H\x03\x88\x01\x01\x12\x1b\n\x0e\x66rames_discard\x18\x05 \x01(\x03H\x04\x88\x01\x01\x12\x19\n\x0ctlvs_discard\x18\x06 \x01(\x03H\x05\x88\x01\x01\x12\x19\n\x0ctlvs_unknown\x18\x07 \x01(\x03H\x06\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_frames_rxB\x0c\n\n_frames_txB\x12\n\x10_frames_error_rxB\x11\n\x0f_frames_discardB\x0f\n\r_tlvs_discardB\x0f\n\r_tlvs_unknown\"\xc2\x05\n\x12RsvpMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.RsvpMetricsRequest.ColumnNames.Enum\x1a\xd5\x04\n\x0b\x43olumnNames\"\xc5\x04\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1f\n\x1bingress_p2p_lsps_configured\x10\x01\x12\x17\n\x13ingress_p2p_lsps_up\x10\x02\x12\x16\n\x12\x65gress_p2p_lsps_up\x10\x03\x12\x12\n\x0elsp_flap_count\x10\x04\x12\x0c\n\x08paths_tx\x10\x05\x12\x0c\n\x08paths_rx\x10\x06\x12\x0c\n\x08resvs_tx\x10\x07\x12\x0c\n\x08resvs_rx\x10\x08\x12\x11\n\rpath_tears_tx\x10\t\x12\x11\n\rpath_tears_rx\x10\n\x12\x11\n\rresv_tears_tx\x10\x0b\x12\x11\n\rresv_tears_rx\x10\x0c\x12\x12\n\x0epath_errors_tx\x10\r\x12\x12\n\x0epath_errors_rx\x10\x0e\x12\x12\n\x0eresv_errors_tx\x10\x0f\x12\x12\n\x0eresv_errors_rx\x10\x10\x12\x10\n\x0cresv_conf_tx\x10\x11\x12\x10\n\x0cresv_conf_rx\x10\x12\x12\r\n\thellos_tx\x10\x13\x12\r\n\thellos_rx\x10\x14\x12\x0b\n\x07\x61\x63ks_tx\x10\x15\x12\x0b\n\x07\x61\x63ks_rx\x10\x16\x12\x0c\n\x08nacks_tx\x10\x17\x12\x0c\n\x08nacks_rx\x10\x18\x12\x0f\n\x0bsrefresh_tx\x10\x19\x12\x0f\n\x0bsrefresh_rx\x10\x1a\x12\r\n\tbundle_tx\x10\x1b\x12\r\n\tbundle_rx\x10\x1c\x12 \n\x1cpath_reevaluation_request_tx\x10\x1d\x12\x18\n\x14path_reoptimizations\x10\x1e\"\xf4\n\n\nRsvpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x1bingress_p2p_lsps_configured\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12 \n\x13ingress_p2p_lsps_up\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x1f\n\x12\x65gress_p2p_lsps_up\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x1b\n\x0elsp_flap_count\x18\x05 \x01(\x05H\x04\x88\x01\x01\x12\x15\n\x08paths_tx\x18\x06 \x01(\x05H\x05\x88\x01\x01\x12\x15\n\x08paths_rx\x18\x07 \x01(\x05H\x06\x88\x01\x01\x12\x15\n\x08resvs_tx\x18\x08 \x01(\x05H\x07\x88\x01\x01\x12\x15\n\x08resvs_rx\x18\t \x01(\x05H\x08\x88\x01\x01\x12\x1a\n\rpath_tears_tx\x18\n \x01(\x05H\t\x88\x01\x01\x12\x1a\n\rpath_tears_rx\x18\x0b \x01(\x05H\n\x88\x01\x01\x12\x1a\n\rresv_tears_tx\x18\x0c \x01(\x05H\x0b\x88\x01\x01\x12\x1a\n\rresv_tears_rx\x18\r \x01(\x05H\x0c\x88\x01\x01\x12\x1b\n\x0epath_errors_tx\x18\x0e \x01(\x05H\r\x88\x01\x01\x12\x1b\n\x0epath_errors_rx\x18\x0f \x01(\x05H\x0e\x88\x01\x01\x12\x1b\n\x0eresv_errors_tx\x18\x10 \x01(\x05H\x0f\x88\x01\x01\x12\x1b\n\x0eresv_errors_rx\x18\x11 \x01(\x05H\x10\x88\x01\x01\x12\x19\n\x0cresv_conf_tx\x18\x12 \x01(\x05H\x11\x88\x01\x01\x12\x19\n\x0cresv_conf_rx\x18\x13 \x01(\x05H\x12\x88\x01\x01\x12\x16\n\thellos_tx\x18\x14 \x01(\x05H\x13\x88\x01\x01\x12\x16\n\thellos_rx\x18\x15 \x01(\x05H\x14\x88\x01\x01\x12\x14\n\x07\x61\x63ks_tx\x18\x16 \x01(\x05H\x15\x88\x01\x01\x12\x14\n\x07\x61\x63ks_rx\x18\x17 \x01(\x05H\x16\x88\x01\x01\x12\x15\n\x08nacks_tx\x18\x18 \x01(\x05H\x17\x88\x01\x01\x12\x15\n\x08nacks_rx\x18\x19 \x01(\x05H\x18\x88\x01\x01\x12\x18\n\x0bsrefresh_tx\x18\x1a \x01(\x05H\x19\x88\x01\x01\x12\x18\n\x0bsrefresh_rx\x18\x1b \x01(\x05H\x1a\x88\x01\x01\x12\x16\n\tbundle_tx\x18\x1c \x01(\x05H\x1b\x88\x01\x01\x12\x16\n\tbundle_rx\x18\x1d \x01(\x05H\x1c\x88\x01\x01\x12)\n\x1cpath_reevaluation_request_tx\x18\x1e \x01(\x05H\x1d\x88\x01\x01\x12!\n\x14path_reoptimizations\x18\x1f \x01(\x05H\x1e\x88\x01\x01\x42\x07\n\x05_nameB\x1e\n\x1c_ingress_p2p_lsps_configuredB\x16\n\x14_ingress_p2p_lsps_upB\x15\n\x13_egress_p2p_lsps_upB\x11\n\x0f_lsp_flap_countB\x0b\n\t_paths_txB\x0b\n\t_paths_rxB\x0b\n\t_resvs_txB\x0b\n\t_resvs_rxB\x10\n\x0e_path_tears_txB\x10\n\x0e_path_tears_rxB\x10\n\x0e_resv_tears_txB\x10\n\x0e_resv_tears_rxB\x11\n\x0f_path_errors_txB\x11\n\x0f_path_errors_rxB\x11\n\x0f_resv_errors_txB\x11\n\x0f_resv_errors_rxB\x0f\n\r_resv_conf_txB\x0f\n\r_resv_conf_rxB\x0c\n\n_hellos_txB\x0c\n\n_hellos_rxB\n\n\x08_acks_txB\n\n\x08_acks_rxB\x0b\n\t_nacks_txB\x0b\n\t_nacks_rxB\x0e\n\x0c_srefresh_txB\x0e\n\x0c_srefresh_rxB\x0c\n\n_bundle_txB\x0c\n\n_bundle_rxB\x1f\n\x1d_path_reevaluation_request_txB\x17\n\x15_path_reoptimizations\"\x98\x05\n\rStatesRequest\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StatesRequest.Choice.EnumH\x00\x88\x01\x01\x12:\n\x0eipv4_neighbors\x18\x02 \x01(\x0b\x32\x1d.otg.Neighborsv4StatesRequestH\x01\x88\x01\x01\x12:\n\x0eipv6_neighbors\x18\x03 \x01(\x0b\x32\x1d.otg.Neighborsv6StatesRequestH\x02\x88\x01\x01\x12\x35\n\x0c\x62gp_prefixes\x18\x04 \x01(\x0b\x32\x1a.otg.BgpPrefixStateRequestH\x03\x88\x01\x01\x12\x31\n\tisis_lsps\x18\x05 \x01(\x0b\x32\x19.otg.IsisLspsStateRequestH\x04\x88\x01\x01\x12;\n\x0elldp_neighbors\x18\x06 \x01(\x0b\x32\x1e.otg.LldpNeighborsStateRequestH\x05\x88\x01\x01\x12\x31\n\trsvp_lsps\x18\x07 \x01(\x0b\x32\x19.otg.RsvpLspsStateRequestH\x06\x88\x01\x01\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choiceB\x11\n\x0f_ipv4_neighborsB\x11\n\x0f_ipv6_neighborsB\x0f\n\r_bgp_prefixesB\x0c\n\n_isis_lspsB\x11\n\x0f_lldp_neighborsB\x0c\n\n_rsvp_lsps\"\xec\x03\n\x0eStatesResponse\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.StatesResponse.Choice.EnumH\x00\x88\x01\x01\x12-\n\x0eipv4_neighbors\x18\x02 \x03(\x0b\x32\x15.otg.Neighborsv4State\x12-\n\x0eipv6_neighbors\x18\x03 \x03(\x0b\x32\x15.otg.Neighborsv6State\x12+\n\x0c\x62gp_prefixes\x18\x04 \x03(\x0b\x32\x15.otg.BgpPrefixesState\x12%\n\tisis_lsps\x18\x05 \x03(\x0b\x32\x12.otg.IsisLspsState\x12/\n\x0elldp_neighbors\x18\x06 \x03(\x0b\x32\x17.otg.LldpNeighborsState\x12%\n\trsvp_lsps\x18\x07 \x03(\x0b\x32\x12.otg.RsvpLspsState\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choice\"2\n\x18Neighborsv4StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"w\n\x10Neighborsv4State\x12\x15\n\rethernet_name\x18\x01 \x01(\t\x12\x14\n\x0cipv4_address\x18\x02 \x01(\t\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x15\n\x13_link_layer_address\"2\n\x18Neighborsv6StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"w\n\x10Neighborsv6State\x12\x15\n\rethernet_name\x18\x01 \x01(\t\x12\x14\n\x0cipv6_address\x18\x02 \x01(\t\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x15\n\x13_link_layer_address\"\xc2\x02\n\x15\x42gpPrefixStateRequest\x12\x16\n\x0e\x62gp_peer_names\x18\x01 \x03(\t\x12\x45\n\x0eprefix_filters\x18\x02 \x03(\x0e\x32-.otg.BgpPrefixStateRequest.PrefixFilters.Enum\x12=\n\x14ipv4_unicast_filters\x18\x03 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv4UnicastFilter\x12=\n\x14ipv6_unicast_filters\x18\x04 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv6UnicastFilter\x1aL\n\rPrefixFilters\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cipv4_unicast\x10\x01\x12\x10\n\x0cipv6_unicast\x10\x02\"\x91\x02\n\x1a\x42gpPrefixIpv4UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv4UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\x05H\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\x91\x02\n\x1a\x42gpPrefixIpv6UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv6UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\x05H\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\xbe\x01\n\x10\x42gpPrefixesState\x12\x1a\n\rbgp_peer_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12=\n\x15ipv4_unicast_prefixes\x18\x02 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv4UnicastState\x12=\n\x15ipv6_unicast_prefixes\x18\x03 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv6UnicastStateB\x10\n\x0e_bgp_peer_name\"\xea\x03\n\x19\x42gpPrefixIpv4UnicastState\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv4UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12*\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPathH\x06\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\n\n\x08_as_path\"\xea\x03\n\x19\x42gpPrefixIpv6UnicastState\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv6UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12*\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPathH\x06\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\n\n\x08_as_path\"\xb0\x02\n\x12ResultBgpCommunity\x12\x34\n\x04type\x18\x01 \x01(\x0e\x32!.otg.ResultBgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\x05H\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"@\n\x0fResultBgpAsPath\x12-\n\x08segments\x18\x01 \x03(\x0b\x32\x1b.otg.ResultBgpAsPathSegment\"\xce\x01\n\x16ResultBgpAsPathSegment\x12\x38\n\x04type\x18\x01 \x01(\x0e\x32%.otg.ResultBgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\x03\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"1\n\x14IsisLspsStateRequest\x12\x19\n\x11isis_router_names\x18\x01 \x03(\t\"d\n\rIsisLspsState\x12\x1d\n\x10isis_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x04lsps\x18\x02 \x03(\x0b\x32\x11.otg.IsisLspStateB\x13\n\x11_isis_router_name\"\xb3\x03\n\x0cIsisLspState\x12\x0e\n\x06lsp_id\x18\x01 \x01(\t\x12\x35\n\x08pdu_type\x18\x02 \x01(\x0e\x32\x1e.otg.IsisLspState.PduType.EnumH\x00\x88\x01\x01\x12\x1f\n\x12remaining_lifetime\x18\x03 \x01(\x03H\x01\x88\x01\x01\x12\x1c\n\x0fsequence_number\x18\x04 \x01(\x03H\x02\x88\x01\x01\x12\x17\n\npdu_length\x18\x05 \x01(\x05H\x03\x88\x01\x01\x12%\n\x05\x66lags\x18\x06 \x01(\x0b\x32\x11.otg.IsisLspFlagsH\x04\x88\x01\x01\x12\x14\n\x07is_type\x18\x07 \x01(\x05H\x05\x88\x01\x01\x12#\n\x04tlvs\x18\x08 \x01(\x0b\x32\x10.otg.IsisLspTlvsH\x06\x88\x01\x01\x1a<\n\x07PduType\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x42\x0b\n\t_pdu_typeB\x15\n\x13_remaining_lifetimeB\x12\n\x10_sequence_numberB\r\n\x0b_pdu_lengthB\x08\n\x06_flagsB\n\n\x08_is_typeB\x07\n\x05_tlvs\"\xfc\x03\n\x0bIsisLspTlvs\x12+\n\rhostname_tlvs\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspHostname\x12;\n\x14is_reachability_tlvs\x18\x02 \x03(\x0b\x32\x1d.otg.IsisLspIsReachabilityTlv\x12L\n\x1d\x65xtended_is_reachability_tlvs\x18\x03 \x03(\x0b\x32%.otg.IsisLspExtendedIsReachabilityTlv\x12P\n\x1fipv4_internal_reachability_tlvs\x18\x04 \x03(\x0b\x32\'.otg.IsisLspIpv4InternalReachabilityTlv\x12P\n\x1fipv4_external_reachability_tlvs\x18\x05 \x03(\x0b\x32\'.otg.IsisLspIpv4ExternalReachabilityTlv\x12P\n\x1f\x65xtended_ipv4_reachability_tlvs\x18\x06 \x03(\x0b\x32\'.otg.IsisLspExtendedIpv4ReachabilityTlv\x12?\n\x16ipv6_reachability_tlvs\x18\x07 \x03(\x0b\x32\x1f.otg.IsisLspIpv6ReachabilityTlv\"5\n\x0fIsisLspHostname\x12\x15\n\x08hostname\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_hostname\"\xae\x02\n\x0cIsisLspFlags\x12\x1d\n\x10partition_repair\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0e\x61ttached_error\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1d\n\x10\x61ttached_expense\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0e\x61ttached_delay\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1d\n\x10\x61ttached_default\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08overload\x18\x06 \x01(\x08H\x05\x88\x01\x01\x42\x13\n\x11_partition_repairB\x11\n\x0f_attached_errorB\x13\n\x11_attached_expenseB\x11\n\x0f_attached_delayB\x13\n\x11_attached_defaultB\x0b\n\t_overload\"C\n\x18IsisLspIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"K\n IsisLspExtendedIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"7\n\x0fIsisLspneighbor\x12\x16\n\tsystem_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_system_id\"L\n\"IsisLspIpv4InternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"L\n\"IsisLspIpv4ExternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"\xd7\x03\n\x0fIsisLspV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12N\n\x13redistribution_type\x18\x03 \x01(\x0e\x32,.otg.IsisLspV4Prefix.RedistributionType.EnumH\x02\x88\x01\x01\x12\x1b\n\x0e\x64\x65\x66\x61ult_metric\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV4Prefix.OriginType.EnumH\x04\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x16\n\x14_redistribution_typeB\x11\n\x0f_default_metricB\x0e\n\x0c_origin_type\"T\n\"IsisLspExtendedIpv4ReachabilityTlv\x12.\n\x08prefixes\x18\x01 \x03(\x0b\x32\x1c.otg.IsisLspExtendedV4Prefix\"\x98\x03\n\x17IsisLspExtendedV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12V\n\x13redistribution_type\x18\x04 \x01(\x0e\x32\x34.otg.IsisLspExtendedV4Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12<\n\x11prefix_attributes\x18\x05 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributesH\x04\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_typeB\x14\n\x12_prefix_attributes\"D\n\x1aIsisLspIpv6ReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV6Prefix\"\x9b\x04\n\x0fIsisLspV6Prefix\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12N\n\x13redistribution_type\x18\x04 \x01(\x0e\x32,.otg.IsisLspV6Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV6Prefix.OriginType.EnumH\x04\x88\x01\x01\x12<\n\x11prefix_attributes\x18\x06 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributesH\x05\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_typeB\x0e\n\x0c_origin_typeB\x14\n\x12_prefix_attributes\"y\n\x17IsisLspPrefixAttributes\x12\x13\n\x06x_flag\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x13\n\x06r_flag\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06n_flag\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"L\n\x19LldpNeighborsStateRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12\x1b\n\x13neighbor_id_filters\x18\x02 \x03(\t\"\x8b\t\n\x12LldpNeighborsState\x12\x16\n\tlldp_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bsystem_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12system_description\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nchassis_id\x18\x04 \x01(\tH\x03\x88\x01\x01\x12H\n\x0f\x63hassis_id_type\x18\x05 \x01(\x0e\x32*.otg.LldpNeighborsState.ChassisIdType.EnumH\x04\x88\x01\x01\x12\x18\n\x0bneighbor_id\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x10\n\x03\x61ge\x18\x07 \x01(\x03H\x06\x88\x01\x01\x12\x18\n\x0blast_update\x18\x08 \x01(\x03H\x07\x88\x01\x01\x12\x10\n\x03ttl\x18\t \x01(\x05H\x08\x88\x01\x01\x12\x14\n\x07port_id\x18\n \x01(\tH\t\x88\x01\x01\x12\x42\n\x0cport_id_type\x18\x0b \x01(\x0e\x32\'.otg.LldpNeighborsState.PortIdType.EnumH\n\x88\x01\x01\x12\x1d\n\x10port_description\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x1f\n\x12management_address\x18\r \x01(\tH\x0c\x88\x01\x01\x12$\n\x17management_address_type\x18\x0e \x01(\tH\r\x88\x01\x01\x12,\n\x0b\x63ustom_tlvs\x18\x0f \x03(\x0b\x32\x17.otg.LldpCustomTLVState\x12.\n\x0c\x63\x61pabilities\x18\x10 \x03(\x0b\x32\x18.otg.LldpCapabilityState\x1a\xae\x01\n\rChassisIdType\"\x9c\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x15\n\x11\x63hassis_component\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x1a\xaa\x01\n\nPortIdType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x14\n\x10\x61gent_circuit_id\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x42\x0c\n\n_lldp_nameB\x0e\n\x0c_system_nameB\x15\n\x13_system_descriptionB\r\n\x0b_chassis_idB\x12\n\x10_chassis_id_typeB\x0e\n\x0c_neighbor_idB\x06\n\x04_ageB\x0e\n\x0c_last_updateB\x06\n\x04_ttlB\n\n\x08_port_idB\x0f\n\r_port_id_typeB\x13\n\x11_port_descriptionB\x15\n\x13_management_addressB\x1a\n\x18_management_address_type\"\x82\x01\n\x12LldpCustomTLVState\x12\x18\n\x0b\x63ustom_type\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x10\n\x03oui\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0boui_subtype\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_custom_typeB\x06\n\x04_ouiB\x0e\n\x0c_oui_subtype\"\x90\x03\n\x13LldpCapabilityState\x12J\n\x0f\x63\x61pability_name\x18\x01 \x01(\x0e\x32,.otg.LldpCapabilityState.CapabilityName.EnumH\x00\x88\x01\x01\x12\x1f\n\x12\x63\x61pability_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x1a\xe0\x01\n\x0e\x43\x61pabilityName\"\xcd\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nmac_bridge\x10\x01\x12\x16\n\x12two_port_mac_relay\x10\x02\x12\x0c\n\x08repeater\x10\x03\x12\x17\n\x13\x64ocsis_cable_device\x10\x04\x12\n\n\x06s_vlan\x10\x05\x12\r\n\ttelephone\x10\x06\x12\t\n\x05other\x10\x07\x12\n\n\x06router\x10\x08\x12\n\n\x06\x63_vlan\x10\t\x12\x10\n\x0cstation_only\x10\n\x12\x15\n\x11wlan_access_point\x10\x0b\x42\x12\n\x10_capability_nameB\x15\n\x13_capability_enabled\"1\n\x14RsvpLspsStateRequest\x12\x19\n\x11rsvp_router_names\x18\x01 \x03(\t\"m\n\rRsvpLspsState\x12\x1d\n\x10rsvp_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\tipv4_lsps\x18\x02 \x03(\x0b\x32\x15.otg.RsvpIPv4LspStateB\x13\n\x11_rsvp_router_name\"\xef\x01\n\x10RsvpIPv4LspState\x12\x1b\n\x0esource_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12 \n\x13\x64\x65stination_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12#\n\x03lsp\x18\x03 \x01(\x0b\x32\x11.otg.RsvpLspStateH\x02\x88\x01\x01\x12!\n\x04rros\x18\x04 \x03(\x0b\x32\x13.otg.RsvpLspIpv4Rro\x12!\n\x04\x65ros\x18\x05 \x03(\x0b\x32\x13.otg.RsvpLspIpv4EroB\x11\n\x0f_source_addressB\x16\n\x14_destination_addressB\x06\n\x04_lsp\"\xb4\x04\n\x0cRsvpLspState\x12\x16\n\ttunnel_id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x19\n\x0csession_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x15\n\x08label_in\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x16\n\tlabel_out\x18\x05 \x01(\x05H\x04\x88\x01\x01\x12\x41\n\x0esession_status\x18\x06 \x01(\x0e\x32$.otg.RsvpLspState.SessionStatus.EnumH\x05\x88\x01\x01\x12\x44\n\x10last_flap_reason\x18\x07 \x01(\x0e\x32%.otg.RsvpLspState.LastFlapReason.EnumH\x06\x88\x01\x01\x12\x14\n\x07up_time\x18\x08 \x01(\x03H\x07\x88\x01\x01\x1a:\n\rSessionStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1aY\n\x0eLastFlapReason\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tresv_tear\x10\x01\x12\r\n\tpath_tear\x10\x02\x12\x10\n\x0cpath_timeout\x10\x03\x42\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x0f\n\r_session_nameB\x0b\n\t_label_inB\x0c\n\n_label_outB\x11\n\x0f_session_statusB\x13\n\x11_last_flap_reasonB\n\n\x08_up_time\"b\n\x0eRsvpLspIpv4Rro\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0ereported_label\x18\x02 \x01(\x05H\x01\x88\x01\x01\x42\n\n\x08_addressB\x11\n\x0f_reported_label\"\xf2\x01\n\x0eRsvpLspIpv4Ero\x12\x13\n\x06prefix\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03\x61sn\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x30\n\x04type\x18\x03 \x01(\x0e\x32\x1d.otg.RsvpLspIpv4Ero.Type.EnumH\x02\x88\x01\x01\x1ak\n\x04Type\"c\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x61sn\x10\x03\x12\x08\n\x04\x61sn4\x10\x04\x12\t\n\x05label\x10\x05\x12\x18\n\x14unnumbered_interface\x10\x06\x42\t\n\x07_prefixB\x06\n\x04_asnB\x07\n\x05_type\"#\n\x0e\x43\x61ptureRequest\x12\x11\n\tport_name\x18\x01 \x01(\t\"w\n\x1dPatternFlowEthernetDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xcd\x03\n\x16PatternFlowEthernetDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x11\n\x04\x61uto\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cmetric_group\x18\x05 \x01(\tH\x03\x88\x01\x01\x12:\n\tincrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounterH\x04\x88\x01\x01\x12:\n\tdecrement\x18\x07 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounterH\x05\x88\x01\x01\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowEthernetSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa7\x03\n\x16PatternFlowEthernetSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounterH\x03\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowEthernetEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xe5\x03\n\x1cPatternFlowEthernetEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x11\n\x04\x61uto\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x19\n\x0cmetric_group\x18\x05 \x01(\tH\x03\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounterH\x04\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounterH\x05\x88\x01\x01\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPfcQueueCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbb\x03\n\x1bPatternFlowEthernetPfcQueue\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPfcQueue.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounterH\x03\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowVlanPriorityCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xab\x03\n\x17PatternFlowVlanPriority\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowVlanPriority.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounterH\x03\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowVlanCfiCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x97\x03\n\x12PatternFlowVlanCfi\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowVlanCfi.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounterH\x03\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"r\n\x18PatternFlowVlanIdCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x93\x03\n\x11PatternFlowVlanId\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.PatternFlowVlanId.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x35\n\tincrement\x18\x05 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounterH\x03\x88\x01\x01\x12\x35\n\tdecrement\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowVlanTpidCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x9b\x03\n\x13PatternFlowVlanTpid\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVlanTpid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounterH\x03\x88\x01\x01\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowVxlanFlagsCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa3\x03\n\x15PatternFlowVxlanFlags\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowVxlanFlags.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounterH\x03\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowVxlanReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb3\x03\n\x19PatternFlowVxlanReserved0\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0CounterH\x03\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0CounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowVxlanVniCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc1\x03\n\x13PatternFlowVxlanVni\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVxlanVni.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x11\n\x04\x61uto\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x19\n\x0cmetric_group\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x37\n\tincrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounterH\x04\x88\x01\x01\x12\x37\n\tdecrement\x18\x07 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounterH\x05\x88\x01\x01\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowVxlanReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb3\x03\n\x19PatternFlowVxlanReserved1\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1CounterH\x03\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1CounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa7\x03\n\x16PatternFlowIpv4Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounterH\x03\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv4HeaderLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xe1\x03\n\x1bPatternFlowIpv4HeaderLength\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4HeaderLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x11\n\x04\x61uto\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x19\n\x0cmetric_group\x18\x05 \x01(\tH\x03\x88\x01\x01\x12?\n\tincrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounterH\x04\x88\x01\x01\x12?\n\tdecrement\x18\x07 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounterH\x05\x88\x01\x01\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4TotalLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xdd\x03\n\x1aPatternFlowIpv4TotalLength\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TotalLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x11\n\x04\x61uto\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x19\n\x0cmetric_group\x18\x05 \x01(\tH\x03\x88\x01\x01\x12>\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounterH\x04\x88\x01\x01\x12>\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounterH\x05\x88\x01\x01\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4IdentificationCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc3\x03\n\x1dPatternFlowIpv4Identification\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4Identification.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounterH\x03\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xab\x03\n\x17PatternFlowIpv4Reserved\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounterH\x03\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv4DontFragmentCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbb\x03\n\x1bPatternFlowIpv4DontFragment\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4DontFragment.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounterH\x03\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4MoreFragmentsCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbf\x03\n\x1cPatternFlowIpv4MoreFragments\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4MoreFragments.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4FragmentOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc3\x03\n\x1dPatternFlowIpv4FragmentOffset\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4FragmentOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounterH\x03\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIpv4TimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb3\x03\n\x19PatternFlowIpv4TimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv4TimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounterH\x03\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4ProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xd1\x03\n\x17PatternFlowIpv4Protocol\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Protocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x11\n\x04\x61uto\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x19\n\x0cmetric_group\x18\x05 \x01(\tH\x03\x88\x01\x01\x12;\n\tincrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounterH\x04\x88\x01\x01\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounterH\x05\x88\x01\x01\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIpv4HeaderChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4HeaderChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIpv4HeaderChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\x05H\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"s\n\x19PatternFlowIpv4SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x97\x03\n\x12PatternFlowIpv4Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounterH\x03\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv4DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x97\x03\n\x12PatternFlowIpv4Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounterH\x03\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4PriorityRawCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb7\x03\n\x1aPatternFlowIpv4PriorityRaw\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4PriorityRaw.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounterH\x03\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4DscpPhbCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa7\x03\n\x16PatternFlowIpv4DscpPhb\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpPhb.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounterH\x03\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv4DscpEcnCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa7\x03\n\x16PatternFlowIpv4DscpEcn\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpEcn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounterH\x03\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4TosPrecedenceCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbf\x03\n\x1cPatternFlowIpv4TosPrecedence\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosPrecedence.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv4TosDelayCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xab\x03\n\x17PatternFlowIpv4TosDelay\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4TosDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounterH\x03\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv4TosThroughputCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbf\x03\n\x1cPatternFlowIpv4TosThroughput\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosThroughput.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowIpv4TosReliabilityCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc3\x03\n\x1dPatternFlowIpv4TosReliability\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4TosReliability.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounterH\x03\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowIpv4TosMonetaryCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb7\x03\n\x1aPatternFlowIpv4TosMonetary\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TosMonetary.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounterH\x03\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIpv4TosUnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xaf\x03\n\x18PatternFlowIpv4TosUnused\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv4TosUnused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounterH\x03\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowIpv6VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa7\x03\n\x16PatternFlowIpv6Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv6Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounterH\x03\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowIpv6TrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbb\x03\n\x1bPatternFlowIpv6TrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv6TrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounterH\x03\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIpv6FlowLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xaf\x03\n\x18PatternFlowIpv6FlowLabel\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv6FlowLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounterH\x03\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowIpv6PayloadLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xe5\x03\n\x1cPatternFlowIpv6PayloadLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv6PayloadLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x11\n\x04\x61uto\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x19\n\x0cmetric_group\x18\x05 \x01(\tH\x03\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounterH\x04\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounterH\x05\x88\x01\x01\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIpv6NextHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xd9\x03\n\x19PatternFlowIpv6NextHeader\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv6NextHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x11\n\x04\x61uto\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x19\n\x0cmetric_group\x18\x05 \x01(\tH\x03\x88\x01\x01\x12=\n\tincrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounterH\x04\x88\x01\x01\x12=\n\tdecrement\x18\x07 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounterH\x05\x88\x01\x01\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIpv6HopLimitCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xab\x03\n\x17PatternFlowIpv6HopLimit\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv6HopLimit.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounterH\x03\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv6SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x97\x03\n\x12PatternFlowIpv6Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounterH\x03\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n\x19PatternFlowIpv6DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x97\x03\n\x12PatternFlowIpv6Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x36\n\tincrement\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounterH\x03\x88\x01\x01\x12\x36\n\tdecrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowPfcPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa7\x03\n\x16PatternFlowPfcPauseDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounterH\x03\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowPfcPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa7\x03\n\x16PatternFlowPfcPauseSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounterH\x03\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowPfcPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbf\x03\n\x1cPatternFlowPfcPauseEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowPfcPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowPfcPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xcf\x03\n PatternFlowPfcPauseControlOpCode\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowPfcPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounterH\x03\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x85\x01\n+PatternFlowPfcPauseClassEnableVectorCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xdf\x03\n$PatternFlowPfcPauseClassEnableVector\x12J\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x35.otg.PatternFlowPfcPauseClassEnableVector.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12H\n\tincrement\x18\x05 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounterH\x03\x88\x01\x01\x12H\n\tdecrement\x18\x06 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass0Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc7\x03\n\x1ePatternFlowPfcPausePauseClass0\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0CounterH\x03\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0CounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass1Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc7\x03\n\x1ePatternFlowPfcPausePauseClass1\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1CounterH\x03\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1CounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass2Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc7\x03\n\x1ePatternFlowPfcPausePauseClass2\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2CounterH\x03\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2CounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass3Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc7\x03\n\x1ePatternFlowPfcPausePauseClass3\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass3.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3CounterH\x03\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3CounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass4Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc7\x03\n\x1ePatternFlowPfcPausePauseClass4\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass4.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4CounterH\x03\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4CounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass5Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc7\x03\n\x1ePatternFlowPfcPausePauseClass5\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass5.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5CounterH\x03\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5CounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass6Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc7\x03\n\x1ePatternFlowPfcPausePauseClass6\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass6.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6CounterH\x03\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6CounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowPfcPausePauseClass7Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc7\x03\n\x1ePatternFlowPfcPausePauseClass7\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass7.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7CounterH\x03\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7CounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbb\x03\n\x1bPatternFlowEthernetPauseDst\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounterH\x03\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowEthernetPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbb\x03\n\x1bPatternFlowEthernetPauseSrc\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounterH\x03\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x82\x01\n(PatternFlowEthernetPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xd3\x03\n!PatternFlowEthernetPauseEtherType\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowEthernetPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x45\n\tincrement\x18\x05 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounterH\x03\x88\x01\x01\x12\x45\n\tdecrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x86\x01\n,PatternFlowEthernetPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xe3\x03\n%PatternFlowEthernetPauseControlOpCode\x12K\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x36.otg.PatternFlowEthernetPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12I\n\tincrement\x18\x05 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounterH\x03\x88\x01\x01\x12I\n\tdecrement\x18\x06 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowEthernetPauseTimeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbf\x03\n\x1cPatternFlowEthernetPauseTime\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetPauseTime.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa3\x03\n\x15PatternFlowTcpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounterH\x03\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa3\x03\n\x15PatternFlowTcpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounterH\x03\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpSeqNumCounter\x12\x12\n\x05start\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x9f\x03\n\x14PatternFlowTcpSeqNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpSeqNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x03\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounterH\x03\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpAckNumCounter\x12\x12\n\x05start\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x9f\x03\n\x14PatternFlowTcpAckNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpAckNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x03\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounterH\x03\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowTcpDataOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xaf\x03\n\x18PatternFlowTcpDataOffset\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowTcpDataOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounterH\x03\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n\x1aPatternFlowTcpEcnNsCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x9b\x03\n\x13PatternFlowTcpEcnNs\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowTcpEcnNs.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x37\n\tincrement\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounterH\x03\x88\x01\x01\x12\x37\n\tdecrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpEcnCwrCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x9f\x03\n\x14PatternFlowTcpEcnCwr\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpEcnCwr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounterH\x03\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowTcpEcnEchoCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa3\x03\n\x15PatternFlowTcpEcnEcho\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpEcnEcho.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounterH\x03\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlUrgCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x9f\x03\n\x14PatternFlowTcpCtlUrg\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlUrg.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounterH\x03\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlAckCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x9f\x03\n\x14PatternFlowTcpCtlAck\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlAck.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounterH\x03\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlPshCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x9f\x03\n\x14PatternFlowTcpCtlPsh\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlPsh.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounterH\x03\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlRstCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x9f\x03\n\x14PatternFlowTcpCtlRst\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlRst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounterH\x03\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlSynCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x9f\x03\n\x14PatternFlowTcpCtlSyn\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlSyn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounterH\x03\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpCtlFinCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x9f\x03\n\x14PatternFlowTcpCtlFin\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlFin.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounterH\x03\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowTcpWindowCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x9f\x03\n\x14PatternFlowTcpWindow\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpWindow.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounterH\x03\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowUdpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa3\x03\n\x15PatternFlowUdpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounterH\x03\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowUdpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa3\x03\n\x15PatternFlowUdpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounterH\x03\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowUdpLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x9f\x03\n\x14PatternFlowUdpLength\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowUdpLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounterH\x03\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xca\x02\n\x16PatternFlowUdpChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowUdpChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowUdpChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\x05H\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowGreChecksumPresentCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc3\x03\n\x1dPatternFlowGreChecksumPresent\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGreChecksumPresent.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounterH\x03\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGreReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xab\x03\n\x17PatternFlowGreReserved0\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGreReserved0CounterH\x03\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved0CounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGreVersionCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa3\x03\n\x15PatternFlowGreVersion\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGreVersion.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounterH\x03\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGreProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa7\x03\n\x16PatternFlowGreProtocol\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreProtocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounterH\x03\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xca\x02\n\x16PatternFlowGreChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowGreChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\x05H\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"x\n\x1ePatternFlowGreReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xab\x03\n\x17PatternFlowGreReserved1\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGreReserved1CounterH\x03\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved1CounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGtpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xab\x03\n\x17PatternFlowGtpv1Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounterH\x03\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowGtpv1ProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbf\x03\n\x1cPatternFlowGtpv1ProtocolType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowGtpv1ProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowGtpv1ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xaf\x03\n\x18PatternFlowGtpv1Reserved\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv1Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounterH\x03\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGtpv1EFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa3\x03\n\x15PatternFlowGtpv1EFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1EFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounterH\x03\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowGtpv1SFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa3\x03\n\x15PatternFlowGtpv1SFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1SFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounterH\x03\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv1PnFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa7\x03\n\x16PatternFlowGtpv1PnFlag\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv1PnFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounterH\x03\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowGtpv1MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbb\x03\n\x1bPatternFlowGtpv1MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv1MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounterH\x03\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv1MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc3\x03\n\x1dPatternFlowGtpv1MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounterH\x03\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowGtpv1TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x9f\x03\n\x14PatternFlowGtpv1Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv1Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x03\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounterH\x03\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv1SquenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc3\x03\n\x1dPatternFlowGtpv1SquenceNumber\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1SquenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounterH\x03\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowGtpv1NPduNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb7\x03\n\x1aPatternFlowGtpv1NPduNumber\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowGtpv1NPduNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounterH\x03\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x88\x01\n.PatternFlowGtpv1NextExtensionHeaderTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xeb\x03\n\'PatternFlowGtpv1NextExtensionHeaderType\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12K\n\tincrement\x18\x05 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounterH\x03\x88\x01\x01\x12K\n\tdecrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x87\x01\n-PatternFlowGtpExtensionExtensionLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xe7\x03\n&PatternFlowGtpExtensionExtensionLength\x12L\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x37.otg.PatternFlowGtpExtensionExtensionLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12J\n\tincrement\x18\x05 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounterH\x03\x88\x01\x01\x12J\n\tdecrement\x18\x06 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x80\x01\n&PatternFlowGtpExtensionContentsCounter\x12\x12\n\x05start\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xcb\x03\n\x1fPatternFlowGtpExtensionContents\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowGtpExtensionContents.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x03\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x43\n\tincrement\x18\x05 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounterH\x03\x88\x01\x01\x12\x43\n\tdecrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x8b\x01\n1PatternFlowGtpExtensionNextExtensionHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xf7\x03\n*PatternFlowGtpExtensionNextExtensionHeader\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12N\n\tincrement\x18\x05 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounterH\x03\x88\x01\x01\x12N\n\tdecrement\x18\x06 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowGtpv2VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xab\x03\n\x17PatternFlowGtpv2Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv2Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounterH\x03\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowGtpv2PiggybackingFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xcf\x03\n PatternFlowGtpv2PiggybackingFlag\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowGtpv2PiggybackingFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounterH\x03\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowGtpv2TeidFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xaf\x03\n\x18PatternFlowGtpv2TeidFlag\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv2TeidFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounterH\x03\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv2Spare1Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa7\x03\n\x16PatternFlowGtpv2Spare1\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1CounterH\x03\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1CounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowGtpv2MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbb\x03\n\x1bPatternFlowGtpv2MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv2MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounterH\x03\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n$PatternFlowGtpv2MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc3\x03\n\x1dPatternFlowGtpv2MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv2MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounterH\x03\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowGtpv2TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x9f\x03\n\x14PatternFlowGtpv2Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv2Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x03\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x38\n\tincrement\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounterH\x03\x88\x01\x01\x12\x38\n\tdecrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n%PatternFlowGtpv2SequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc7\x03\n\x1ePatternFlowGtpv2SequenceNumber\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowGtpv2SequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x42\n\tincrement\x18\x05 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounterH\x03\x88\x01\x01\x12\x42\n\tdecrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\x1dPatternFlowGtpv2Spare2Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa7\x03\n\x16PatternFlowGtpv2Spare2\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12:\n\tincrement\x18\x05 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2CounterH\x03\x88\x01\x01\x12:\n\tdecrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2CounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowArpHardwareTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb7\x03\n\x1aPatternFlowArpHardwareType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpHardwareType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounterH\x03\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowArpProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb7\x03\n\x1aPatternFlowArpProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12>\n\tincrement\x18\x05 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounterH\x03\x88\x01\x01\x12>\n\tdecrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowArpHardwareLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbf\x03\n\x1cPatternFlowArpHardwareLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpHardwareLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowArpProtocolLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbf\x03\n\x1cPatternFlowArpProtocolLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpProtocolLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12@\n\tincrement\x18\x05 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowArpOperationCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xab\x03\n\x17PatternFlowArpOperation\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowArpOperation.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounterH\x03\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpSenderHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xcf\x03\n PatternFlowArpSenderHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounterH\x03\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpSenderProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xcf\x03\n PatternFlowArpSenderProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounterH\x03\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpTargetHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xcf\x03\n PatternFlowArpTargetHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounterH\x03\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x81\x01\n\'PatternFlowArpTargetProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xcf\x03\n PatternFlowArpTargetProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x44\n\tincrement\x18\x05 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounterH\x03\x88\x01\x01\x12\x44\n\tdecrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIcmpEchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xab\x03\n\x17PatternFlowIcmpEchoType\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounterH\x03\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIcmpEchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xab\x03\n\x17PatternFlowIcmpEchoCode\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounterH\x03\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xd9\x02\n\x1bPatternFlowIcmpEchoChecksum\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIcmpEchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12G\n\tgenerated\x18\x02 \x01(\x0e\x32/.otg.PatternFlowIcmpEchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\x05H\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowIcmpEchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc3\x03\n\x1dPatternFlowIcmpEchoIdentifier\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpEchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounterH\x03\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x82\x01\n(PatternFlowIcmpEchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xd3\x03\n!PatternFlowIcmpEchoSequenceNumber\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowIcmpEchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x45\n\tincrement\x18\x05 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounterH\x03\x88\x01\x01\x12\x45\n\tdecrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIcmpCommonChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpCommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpCommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\x05H\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"\x84\x01\n*PatternFlowIcmpNextFieldsIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xdb\x03\n#PatternFlowIcmpNextFieldsIdentifier\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpNextFieldsIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12G\n\tincrement\x18\x05 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounterH\x03\x88\x01\x01\x12G\n\tdecrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x88\x01\n.PatternFlowIcmpNextFieldsSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xeb\x03\n\'PatternFlowIcmpNextFieldsSequenceNumber\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12K\n\tincrement\x18\x05 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounterH\x03\x88\x01\x01\x12K\n\tdecrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIcmpv6EchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb3\x03\n\x19PatternFlowIcmpv6EchoType\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounterH\x03\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowIcmpv6EchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb3\x03\n\x19PatternFlowIcmpv6EchoCode\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounterH\x03\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x80\x01\n&PatternFlowIcmpv6EchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xcb\x03\n\x1fPatternFlowIcmpv6EchoIdentifier\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6EchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x43\n\tincrement\x18\x05 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounterH\x03\x88\x01\x01\x12\x43\n\tdecrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x84\x01\n*PatternFlowIcmpv6EchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xdb\x03\n#PatternFlowIcmpv6EchoSequenceNumber\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12G\n\tincrement\x18\x05 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounterH\x03\x88\x01\x01\x12G\n\tdecrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIcmpv6EchoChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpv6EchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpv6EchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\x05H\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"\xe5\x02\n\x1fPatternFlowIcmpv6CommonChecksum\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6CommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12K\n\tgenerated\x18\x02 \x01(\x0e\x32\x33.otg.PatternFlowIcmpv6CommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\x05H\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"v\n\x1cPatternFlowPppAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa3\x03\n\x15PatternFlowPppAddress\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounterH\x03\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowPppControlCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa3\x03\n\x15PatternFlowPppControl\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppControl.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowPppControlCounterH\x03\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppControlCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"{\n!PatternFlowPppProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xdd\x03\n\x1aPatternFlowPppProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowPppProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x11\n\x04\x61uto\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x19\n\x0cmetric_group\x18\x05 \x01(\tH\x03\x88\x01\x01\x12>\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounterH\x04\x88\x01\x01\x12>\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounterH\x05\x88\x01\x01\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n\x1fPatternFlowIgmpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xaf\x03\n\x18PatternFlowIgmpv1Version\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIgmpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12<\n\tincrement\x18\x05 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounterH\x03\x88\x01\x01\x12<\n\tdecrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n\x1cPatternFlowIgmpv1TypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa3\x03\n\x15PatternFlowIgmpv1Type\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowIgmpv1Type.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x39\n\tincrement\x18\x05 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounterH\x03\x88\x01\x01\x12\x39\n\tdecrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n\x1ePatternFlowIgmpv1UnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xab\x03\n\x17PatternFlowIgmpv1Unused\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIgmpv1Unused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12;\n\tincrement\x18\x05 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounterH\x03\x88\x01\x01\x12;\n\tdecrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xd3\x02\n\x19PatternFlowIgmpv1Checksum\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIgmpv1Checksum.Choice.EnumH\x00\x88\x01\x01\x12\x45\n\tgenerated\x18\x02 \x01(\x0e\x32-.otg.PatternFlowIgmpv1Checksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\x05H\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"~\n$PatternFlowIgmpv1GroupAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc3\x03\n\x1dPatternFlowIgmpv1GroupAddress\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIgmpv1GroupAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x41\n\tincrement\x18\x05 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounterH\x03\x88\x01\x01\x12\x41\n\tdecrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n\x1bPatternFlowMplsLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc5\x03\n\x14PatternFlowMplsLabel\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowMplsLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x11\n\x04\x61uto\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x19\n\x0cmetric_group\x18\x05 \x01(\tH\x03\x88\x01\x01\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounterH\x04\x88\x01\x01\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounterH\x05\x88\x01\x01\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n\"PatternFlowMplsTrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbb\x03\n\x1bPatternFlowMplsTrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowMplsTrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12?\n\tincrement\x18\x05 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounterH\x03\x88\x01\x01\x12?\n\tdecrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n#PatternFlowMplsBottomOfStackCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xe5\x03\n\x1cPatternFlowMplsBottomOfStack\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowMplsBottomOfStack.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x11\n\x04\x61uto\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x19\n\x0cmetric_group\x18\x05 \x01(\tH\x03\x88\x01\x01\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounterH\x04\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounterH\x05\x88\x01\x01\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n PatternFlowMplsTimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb3\x03\n\x19PatternFlowMplsTimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowMplsTimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x19\n\x0cmetric_group\x18\x04 \x01(\tH\x02\x88\x01\x01\x12=\n\tincrement\x18\x05 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounterH\x03\x88\x01\x01\x12=\n\tdecrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounterH\x04\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0f\n\r_metric_groupB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x91\x01\n\x07Version\x12\x1d\n\x10\x61pi_spec_version\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bsdk_version\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pp_version\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x13\n\x11_api_spec_versionB\x0e\n\x0c_sdk_versionB\x0e\n\x0c_app_version\"(\n\x07Success\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"$\n\x07\x46\x61ilure\x12\x19\n\x05\x65rror\x18\x01 \x01(\x0b\x32\n.otg.Error\"/\n\x10SetConfigRequest\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"?\n\x13UpdateConfigRequest\x12(\n\rconfig_update\x18\x01 \x01(\x0b\x32\x11.otg.ConfigUpdate\"2\n\x11SetConfigResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"0\n\x11GetConfigResponse\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"5\n\x14UpdateConfigResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"B\n\x16SetControlStateRequest\x12(\n\rcontrol_state\x18\x01 \x01(\x0b\x32\x11.otg.ControlState\"8\n\x17SetControlStateResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"E\n\x17SetControlActionRequest\x12*\n\x0e\x63ontrol_action\x18\x01 \x01(\x0b\x32\x12.otg.ControlAction\"W\n\x18SetControlActionResponse\x12;\n\x17\x63ontrol_action_response\x18\x01 \x01(\x0b\x32\x1a.otg.ControlActionResponse\"E\n\x17SetTransmitStateRequest\x12*\n\x0etransmit_state\x18\x01 \x01(\x0b\x32\x12.otg.TransmitState\"9\n\x18SetTransmitStateResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"9\n\x13SetLinkStateRequest\x12\"\n\nlink_state\x18\x01 \x01(\x0b\x32\x0e.otg.LinkState\"5\n\x14SetLinkStateResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"B\n\x16SetCaptureStateRequest\x12(\n\rcapture_state\x18\x01 \x01(\x0b\x32\x11.otg.CaptureState\"8\n\x17SetCaptureStateResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"<\n\x12UpdateFlowsRequest\x12&\n\x0c\x66lows_update\x18\x01 \x01(\x0b\x32\x10.otg.FlowsUpdate\"2\n\x13UpdateFlowsResponse\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"<\n\x14SetRouteStateRequest\x12$\n\x0broute_state\x18\x01 \x01(\x0b\x32\x0f.otg.RouteState\"6\n\x15SetRouteStateResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"9\n\x0fSendPingRequest\x12&\n\x0cping_request\x18\x01 \x01(\x0b\x32\x10.otg.PingRequest\"<\n\x10SendPingResponse\x12(\n\rping_response\x18\x01 \x01(\x0b\x32\x11.otg.PingResponse\"E\n\x17SetProtocolStateRequest\x12*\n\x0eprotocol_state\x18\x01 \x01(\x0b\x32\x12.otg.ProtocolState\"9\n\x18SetProtocolStateResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"?\n\x15SetDeviceStateRequest\x12&\n\x0c\x64\x65vice_state\x18\x01 \x01(\x0b\x32\x10.otg.DeviceState\"7\n\x16SetDeviceStateResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"A\n\x11GetMetricsRequest\x12,\n\x0fmetrics_request\x18\x01 \x01(\x0b\x32\x13.otg.MetricsRequest\"D\n\x12GetMetricsResponse\x12.\n\x10metrics_response\x18\x01 \x01(\x0b\x32\x14.otg.MetricsResponse\">\n\x10GetStatesRequest\x12*\n\x0estates_request\x18\x01 \x01(\x0b\x32\x12.otg.StatesRequest\"A\n\x11GetStatesResponse\x12,\n\x0fstates_response\x18\x01 \x01(\x0b\x32\x13.otg.StatesResponse\"A\n\x11GetCaptureRequest\x12,\n\x0f\x63\x61pture_request\x18\x01 \x01(\x0b\x32\x13.otg.CaptureRequest\",\n\x12GetCaptureResponse\x12\x16\n\x0eresponse_bytes\x18\x01 \x01(\x0c\"3\n\x12GetVersionResponse\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.otg.Version2\xa2\t\n\x07Openapi\x12:\n\tSetConfig\x12\x15.otg.SetConfigRequest\x1a\x16.otg.SetConfigResponse\x12;\n\tGetConfig\x12\x16.google.protobuf.Empty\x1a\x16.otg.GetConfigResponse\x12\x43\n\x0cUpdateConfig\x12\x18.otg.UpdateConfigRequest\x1a\x19.otg.UpdateConfigResponse\x12L\n\x0fSetControlState\x12\x1b.otg.SetControlStateRequest\x1a\x1c.otg.SetControlStateResponse\x12O\n\x10SetControlAction\x12\x1c.otg.SetControlActionRequest\x1a\x1d.otg.SetControlActionResponse\x12O\n\x10SetTransmitState\x12\x1c.otg.SetTransmitStateRequest\x1a\x1d.otg.SetTransmitStateResponse\x12\x43\n\x0cSetLinkState\x12\x18.otg.SetLinkStateRequest\x1a\x19.otg.SetLinkStateResponse\x12L\n\x0fSetCaptureState\x12\x1b.otg.SetCaptureStateRequest\x1a\x1c.otg.SetCaptureStateResponse\x12@\n\x0bUpdateFlows\x12\x17.otg.UpdateFlowsRequest\x1a\x18.otg.UpdateFlowsResponse\x12\x46\n\rSetRouteState\x12\x19.otg.SetRouteStateRequest\x1a\x1a.otg.SetRouteStateResponse\x12\x37\n\x08SendPing\x12\x14.otg.SendPingRequest\x1a\x15.otg.SendPingResponse\x12O\n\x10SetProtocolState\x12\x1c.otg.SetProtocolStateRequest\x1a\x1d.otg.SetProtocolStateResponse\x12I\n\x0eSetDeviceState\x12\x1a.otg.SetDeviceStateRequest\x1a\x1b.otg.SetDeviceStateResponse\x12=\n\nGetMetrics\x12\x16.otg.GetMetricsRequest\x1a\x17.otg.GetMetricsResponse\x12:\n\tGetStates\x12\x15.otg.GetStatesRequest\x1a\x16.otg.GetStatesResponse\x12=\n\nGetCapture\x12\x16.otg.GetCaptureRequest\x1a\x17.otg.GetCaptureResponse\x12=\n\nGetVersion\x12\x16.google.protobuf.Empty\x1a\x17.otg.GetVersionResponseB\x0bZ\t./otg;otgb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\totg.proto\x12\x03otg\x1a google/protobuf/descriptor.proto\x1a\x1bgoogle/protobuf/empty.proto\"\xaa\x02\n\x06\x43onfig\x12\x18\n\x05ports\x18\x01 \x03(\x0b\x32\t.otg.Port\x12\x16\n\x04lags\x18\x02 \x03(\x0b\x32\x08.otg.Lag\x12\x1b\n\x06layer1\x18\x03 \x03(\x0b\x32\x0b.otg.Layer1\x12\x1e\n\x08\x63\x61ptures\x18\x04 \x03(\x0b\x32\x0c.otg.Capture\x12\x1c\n\x07\x64\x65vices\x18\x05 \x03(\x0b\x32\x0b.otg.Device\x12\x18\n\x05\x66lows\x18\x06 \x03(\x0b\x32\t.otg.Flow\x12\x1f\n\x06\x65vents\x18\x07 \x01(\x0b\x32\n.otg.EventH\x00\x88\x01\x01\x12(\n\x07options\x18\x08 \x01(\x0b\x32\x12.otg.ConfigOptionsH\x01\x88\x01\x01\x12\x17\n\x04lldp\x18\t \x03(\x0b\x32\t.otg.LldpB\t\n\x07_eventsB\n\n\x08_options\"\x97\x01\n\rConfigOptions\x12+\n\x0cport_options\x18\x01 \x01(\x0b\x32\x10.otg.PortOptionsH\x00\x88\x01\x01\x12\x33\n\x10protocol_options\x18\x02 \x01(\x0b\x32\x14.otg.ProtocolOptionsH\x01\x88\x01\x01\x42\x0f\n\r_port_optionsB\x13\n\x11_protocol_options\"8\n\x04Port\x12\x15\n\x08location\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x02 \x01(\tB\x0b\n\t_location\"G\n\x0bPortOptions\x12 \n\x13location_preemption\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x16\n\x14_location_preemption\"\x8c\x01\n\x03Lag\x12\x1b\n\x05ports\x18\x01 \x03(\x0b\x32\x0c.otg.LagPort\x12\'\n\x08protocol\x18\x02 \x01(\x0b\x32\x10.otg.LagProtocolH\x00\x88\x01\x01\x12\x16\n\tmin_links\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x04 \x01(\tB\x0b\n\t_protocolB\x0c\n\n_min_links\"u\n\x07LagPort\x12\x11\n\tport_name\x18\x01 \x01(\t\x12#\n\x04lacp\x18\x02 \x01(\x0b\x32\x10.otg.LagPortLacpH\x00\x88\x01\x01\x12)\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x17.otg.DeviceEthernetBaseB\x07\n\x05_lacp\"\xee\x01\n\x0bLagProtocol\x12\x31\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1c.otg.LagProtocol.Choice.EnumH\x00\x88\x01\x01\x12\'\n\x04lacp\x18\x02 \x01(\x0b\x32\x14.otg.LagProtocolLacpH\x01\x88\x01\x01\x12+\n\x06static\x18\x03 \x01(\x0b\x32\x16.otg.LagProtocolStaticH\x02\x88\x01\x01\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04lacp\x10\x01\x12\n\n\x06static\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_lacpB\t\n\x07_static\"3\n\x11LagProtocolStatic\x12\x13\n\x06lag_id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x42\t\n\x07_lag_id\"\xa7\x01\n\x0fLagProtocolLacp\x12\x1c\n\x0f\x61\x63tor_system_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\"\n\x15\x61\x63tor_system_priority\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x16\n\tactor_key\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x12\n\x10_actor_system_idB\x18\n\x16_actor_system_priorityB\x0c\n\n_actor_key\"\x93\x03\n\x0bLagPortLacp\x12\x1e\n\x11\x61\x63tor_port_number\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12 \n\x13\x61\x63tor_port_priority\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12@\n\x0e\x61\x63tor_activity\x18\x03 \x01(\x0e\x32#.otg.LagPortLacp.ActorActivity.EnumH\x02\x88\x01\x01\x12*\n\x1dlacpdu_periodic_time_interval\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x1b\n\x0elacpdu_timeout\x18\x05 \x01(\x05H\x04\x88\x01\x01\x1a\x41\n\rActorActivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07passive\x10\x01\x12\n\n\x06\x61\x63tive\x10\x02\x42\x14\n\x12_actor_port_numberB\x16\n\x14_actor_port_priorityB\x11\n\x0f_actor_activityB \n\x1e_lacpdu_periodic_time_intervalB\x11\n\x0f_lacpdu_timeout\"i\n\x12\x44\x65viceEthernetBase\x12\x0b\n\x03mac\x18\x01 \x01(\t\x12\x10\n\x03mtu\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x1e\n\x05vlans\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x0c\n\x04name\x18\x04 \x01(\tB\x06\n\x04_mtu\"\x9e\x02\n\x0e\x44\x65viceEthernet\x12\x16\n\tport_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x30\n\nconnection\x18\x02 \x01(\x0b\x32\x17.otg.EthernetConnectionH\x01\x88\x01\x01\x12\'\n\x0eipv4_addresses\x18\x03 \x03(\x0b\x32\x0f.otg.DeviceIpv4\x12\'\n\x0eipv6_addresses\x18\x04 \x03(\x0b\x32\x0f.otg.DeviceIpv6\x12\x0b\n\x03mac\x18\x05 \x01(\t\x12\x10\n\x03mtu\x18\x06 \x01(\x05H\x02\x88\x01\x01\x12\x1e\n\x05vlans\x18\x07 \x03(\x0b\x32\x0f.otg.DeviceVlan\x12\x0c\n\x04name\x18\x08 \x01(\tB\x0c\n\n_port_nameB\r\n\x0b_connectionB\x06\n\x04_mtu\"\x9b\x02\n\x12\x45thernetConnection\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.EthernetConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x15\n\x08lag_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nvxlan_name\x18\x04 \x01(\tH\x03\x88\x01\x01\x1aN\n\x06\x43hoice\"D\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x12\x0c\n\x08lag_name\x10\x02\x12\x0e\n\nvxlan_name\x10\x03\x42\t\n\x07_choiceB\x0c\n\n_port_nameB\x0b\n\t_lag_nameB\r\n\x0b_vxlan_name\"\xe5\x01\n\nDeviceVlan\x12,\n\x04tpid\x18\x01 \x01(\x0e\x32\x19.otg.DeviceVlan.Tpid.EnumH\x00\x88\x01\x01\x12\x15\n\x08priority\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0f\n\x02id\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x04 \x01(\t\x1aV\n\x04Tpid\"N\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05x8100\x10\x01\x12\t\n\x05x88a8\x10\x02\x12\t\n\x05x9100\x10\x03\x12\t\n\x05x9200\x10\x04\x12\t\n\x05x9300\x10\x05\x42\x07\n\x05_tpidB\x0b\n\t_priorityB\x05\n\x03_id\"\xa1\x01\n\nDeviceIpv4\x12\x0f\n\x07gateway\x18\x01 \x01(\t\x12\x33\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv4GatewayMACH\x00\x88\x01\x01\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12\x13\n\x06prefix\x18\x04 \x01(\x05H\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\tB\x0e\n\x0c_gateway_macB\t\n\x07_prefix\"V\n\x12\x44\x65viceIpv4Loopback\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x03 \x01(\tB\n\n\x08_address\"\xcf\x01\n\x14\x44\x65viceIpv4GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv4GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xa1\x01\n\nDeviceIpv6\x12\x0f\n\x07gateway\x18\x01 \x01(\t\x12\x33\n\x0bgateway_mac\x18\x02 \x01(\x0b\x32\x19.otg.DeviceIpv6GatewayMACH\x00\x88\x01\x01\x12\x0f\n\x07\x61\x64\x64ress\x18\x03 \x01(\t\x12\x13\n\x06prefix\x18\x04 \x01(\x05H\x01\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\tB\x0e\n\x0c_gateway_macB\t\n\x07_prefix\"V\n\x12\x44\x65viceIpv6Loopback\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x14\n\x07\x61\x64\x64ress\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x0c\n\x04name\x18\x03 \x01(\tB\n\n\x08_address\"\xcf\x01\n\x14\x44\x65viceIpv6GatewayMAC\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.DeviceIpv6GatewayMAC.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xb4\x06\n\x06Layer1\x12\x12\n\nport_names\x18\x01 \x03(\t\x12*\n\x05speed\x18\x02 \x01(\x0e\x32\x16.otg.Layer1.Speed.EnumH\x00\x88\x01\x01\x12*\n\x05media\x18\x03 \x01(\x0e\x32\x16.otg.Layer1.Media.EnumH\x01\x88\x01\x01\x12\x18\n\x0bpromiscuous\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03mtu\x18\x05 \x01(\x05H\x03\x88\x01\x01\x12 \n\x13ieee_media_defaults\x18\x06 \x01(\x08H\x04\x88\x01\x01\x12\x1b\n\x0e\x61uto_negotiate\x18\x07 \x01(\x08H\x05\x88\x01\x01\x12\x39\n\x10\x61uto_negotiation\x18\x08 \x01(\x0b\x32\x1a.otg.Layer1AutoNegotiationH\x06\x88\x01\x01\x12\x31\n\x0c\x66low_control\x18\t \x01(\x0b\x32\x16.otg.Layer1FlowControlH\x07\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x1a\x95\x02\n\x05Speed\"\x8b\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10speed_10_fd_mbps\x10\x01\x12\x14\n\x10speed_10_hd_mbps\x10\x02\x12\x15\n\x11speed_100_fd_mbps\x10\x03\x12\x15\n\x11speed_100_hd_mbps\x10\x04\x12\x10\n\x0cspeed_1_gbps\x10\x05\x12\x11\n\rspeed_10_gbps\x10\x06\x12\x11\n\rspeed_25_gbps\x10\x07\x12\x11\n\rspeed_40_gbps\x10\x08\x12\x11\n\rspeed_50_gbps\x10\t\x12\x12\n\x0espeed_100_gbps\x10\n\x12\x12\n\x0espeed_200_gbps\x10\x0b\x12\x12\n\x0espeed_400_gbps\x10\x0c\x1a\x42\n\x05Media\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63opper\x10\x01\x12\t\n\x05\x66iber\x10\x02\x12\t\n\x05sgmii\x10\x03\x42\x08\n\x06_speedB\x08\n\x06_mediaB\x0e\n\x0c_promiscuousB\x06\n\x04_mtuB\x16\n\x14_ieee_media_defaultsB\x11\n\x0f_auto_negotiateB\x13\n\x11_auto_negotiationB\x0f\n\r_flow_control\"\x93\x03\n\x15Layer1AutoNegotiation\x12 \n\x13\x61\x64vertise_1000_mbps\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_fd_mbps\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\"\n\x15\x61\x64vertise_100_hd_mbps\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_fd_mbps\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12!\n\x14\x61\x64vertise_10_hd_mbps\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rlink_training\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06rs_fec\x18\x07 \x01(\x08H\x06\x88\x01\x01\x42\x16\n\x14_advertise_1000_mbpsB\x18\n\x16_advertise_100_fd_mbpsB\x18\n\x16_advertise_100_hd_mbpsB\x17\n\x15_advertise_10_fd_mbpsB\x17\n\x15_advertise_10_hd_mbpsB\x10\n\x0e_link_trainingB\t\n\x07_rs_fec\"\xd8\x02\n\x11Layer1FlowControl\x12\x1d\n\x10\x64irected_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x37\n\x06\x63hoice\x18\x02 \x01(\x0e\x32\".otg.Layer1FlowControl.Choice.EnumH\x01\x88\x01\x01\x12\x32\n\rieee_802_1qbb\x18\x03 \x01(\x0b\x32\x16.otg.Layer1Ieee8021qbbH\x02\x88\x01\x01\x12.\n\x0bieee_802_3x\x18\x04 \x01(\x0b\x32\x14.otg.Layer1Ieee8023xH\x03\x88\x01\x01\x1a\x45\n\x06\x43hoice\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rieee_802_1qbb\x10\x01\x12\x0f\n\x0bieee_802_3x\x10\x02\x42\x13\n\x11_directed_addressB\t\n\x07_choiceB\x10\n\x0e_ieee_802_1qbbB\x0e\n\x0c_ieee_802_3x\"\x11\n\x0fLayer1Ieee8023x\"\x89\x03\n\x11Layer1Ieee8021qbb\x12\x16\n\tpfc_delay\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x18\n\x0bpfc_class_0\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x18\n\x0bpfc_class_1\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x18\n\x0bpfc_class_2\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x18\n\x0bpfc_class_3\x18\x05 \x01(\x05H\x04\x88\x01\x01\x12\x18\n\x0bpfc_class_4\x18\x06 \x01(\x05H\x05\x88\x01\x01\x12\x18\n\x0bpfc_class_5\x18\x07 \x01(\x05H\x06\x88\x01\x01\x12\x18\n\x0bpfc_class_6\x18\x08 \x01(\x05H\x07\x88\x01\x01\x12\x18\n\x0bpfc_class_7\x18\t \x01(\x05H\x08\x88\x01\x01\x42\x0c\n\n_pfc_delayB\x0e\n\x0c_pfc_class_0B\x0e\n\x0c_pfc_class_1B\x0e\n\x0c_pfc_class_2B\x0e\n\x0c_pfc_class_3B\x0e\n\x0c_pfc_class_4B\x0e\n\x0c_pfc_class_5B\x0e\n\x0c_pfc_class_6B\x0e\n\x0c_pfc_class_7\"\x93\x02\n\x07\x43\x61pture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12#\n\x07\x66ilters\x18\x02 \x03(\x0b\x32\x12.otg.CaptureFilter\x12\x16\n\toverwrite\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bpacket_size\x18\x04 \x01(\x05H\x01\x88\x01\x01\x12-\n\x06\x66ormat\x18\x05 \x01(\x0e\x32\x18.otg.Capture.Format.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x06 \x01(\t\x1a\x37\n\x06\x46ormat\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04pcap\x10\x01\x12\n\n\x06pcapng\x10\x02\x42\x0c\n\n_overwriteB\x0e\n\x0c_packet_sizeB\t\n\x07_format\"\xa2\x03\n\rCaptureFilter\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.CaptureFilter.Choice.EnumH\x00\x88\x01\x01\x12\'\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x12.otg.CaptureCustomH\x01\x88\x01\x01\x12+\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x14.otg.CaptureEthernetH\x02\x88\x01\x01\x12#\n\x04vlan\x18\x04 \x01(\x0b\x32\x10.otg.CaptureVlanH\x03\x88\x01\x01\x12#\n\x04ipv4\x18\x05 \x01(\x0b\x32\x10.otg.CaptureIpv4H\x04\x88\x01\x01\x12#\n\x04ipv6\x18\x06 \x01(\x0b\x32\x10.otg.CaptureIpv6H\x05\x88\x01\x01\x1aY\n\x06\x43hoice\"O\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\x08\n\x04ipv4\x10\x04\x12\x08\n\x04ipv6\x10\x05\x42\t\n\x07_choiceB\t\n\x07_customB\x0b\n\t_ethernetB\x07\n\x05_vlanB\x07\n\x05_ipv4B\x07\n\x05_ipv6\"\xb1\x01\n\rCaptureCustom\x12\x13\n\x06offset\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x17\n\nbit_length\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x11\n\x04mask\x18\x04 \x01(\tH\x03\x88\x01\x01\x12\x13\n\x06negate\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\t\n\x07_offsetB\r\n\x0b_bit_lengthB\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"h\n\x0c\x43\x61ptureField\x12\x12\n\x05value\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04mask\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x13\n\x06negate\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\x08\n\x06_valueB\x07\n\x05_maskB\t\n\x07_negate\"\xdf\x01\n\x0f\x43\x61ptureEthernet\x12#\n\x03src\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12#\n\x03\x64st\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12*\n\nether_type\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12)\n\tpfc_queue\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x42\x06\n\x04_srcB\x06\n\x04_dstB\r\n\x0b_ether_typeB\x0c\n\n_pfc_queue\"\xd3\x01\n\x0b\x43\x61ptureVlan\x12(\n\x08priority\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12#\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12\"\n\x02id\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12(\n\x08protocol\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x42\x0b\n\t_priorityB\x06\n\x04_cfiB\x05\n\x03_idB\x0b\n\t_protocol\"\xd1\x06\n\x0b\x43\x61ptureIpv4\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12-\n\rheader_length\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12(\n\x08priority\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12,\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x12.\n\x0eidentification\x18\x05 \x01(\x0b\x32\x11.otg.CaptureFieldH\x04\x88\x01\x01\x12(\n\x08reserved\x18\x06 \x01(\x0b\x32\x11.otg.CaptureFieldH\x05\x88\x01\x01\x12-\n\rdont_fragment\x18\x07 \x01(\x0b\x32\x11.otg.CaptureFieldH\x06\x88\x01\x01\x12.\n\x0emore_fragments\x18\x08 \x01(\x0b\x32\x11.otg.CaptureFieldH\x07\x88\x01\x01\x12/\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\x11.otg.CaptureFieldH\x08\x88\x01\x01\x12,\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x11.otg.CaptureFieldH\t\x88\x01\x01\x12(\n\x08protocol\x18\x0b \x01(\x0b\x32\x11.otg.CaptureFieldH\n\x88\x01\x01\x12/\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\x11.otg.CaptureFieldH\x0b\x88\x01\x01\x12#\n\x03src\x18\r \x01(\x0b\x32\x11.otg.CaptureFieldH\x0c\x88\x01\x01\x12#\n\x03\x64st\x18\x0e \x01(\x0b\x32\x11.otg.CaptureFieldH\r\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_header_lengthB\x0b\n\t_priorityB\x0f\n\r_total_lengthB\x11\n\x0f_identificationB\x0b\n\t_reservedB\x10\n\x0e_dont_fragmentB\x11\n\x0f_more_fragmentsB\x12\n\x10_fragment_offsetB\x0f\n\r_time_to_liveB\x0b\n\t_protocolB\x12\n\x10_header_checksumB\x06\n\x04_srcB\x06\n\x04_dst\"\xd1\x03\n\x0b\x43\x61ptureIpv6\x12\'\n\x07version\x18\x01 \x01(\x0b\x32\x11.otg.CaptureFieldH\x00\x88\x01\x01\x12-\n\rtraffic_class\x18\x02 \x01(\x0b\x32\x11.otg.CaptureFieldH\x01\x88\x01\x01\x12*\n\nflow_label\x18\x03 \x01(\x0b\x32\x11.otg.CaptureFieldH\x02\x88\x01\x01\x12.\n\x0epayload_length\x18\x04 \x01(\x0b\x32\x11.otg.CaptureFieldH\x03\x88\x01\x01\x12+\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x11.otg.CaptureFieldH\x04\x88\x01\x01\x12)\n\thop_limit\x18\x06 \x01(\x0b\x32\x11.otg.CaptureFieldH\x05\x88\x01\x01\x12#\n\x03src\x18\x07 \x01(\x0b\x32\x11.otg.CaptureFieldH\x06\x88\x01\x01\x12#\n\x03\x64st\x18\x08 \x01(\x0b\x32\x11.otg.CaptureFieldH\x07\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_traffic_classB\r\n\x0b_flow_labelB\x11\n\x0f_payload_lengthB\x0e\n\x0c_next_headerB\x0c\n\n_hop_limitB\x06\n\x04_srcB\x06\n\x04_dst\"\xe0\x02\n\x06\x44\x65vice\x12&\n\tethernets\x18\x01 \x03(\x0b\x32\x13.otg.DeviceEthernet\x12/\n\x0eipv4_loopbacks\x18\x02 \x03(\x0b\x32\x17.otg.DeviceIpv4Loopback\x12/\n\x0eipv6_loopbacks\x18\x03 \x03(\x0b\x32\x17.otg.DeviceIpv6Loopback\x12(\n\x04isis\x18\x04 \x01(\x0b\x32\x15.otg.DeviceIsisRouterH\x00\x88\x01\x01\x12&\n\x03\x62gp\x18\x05 \x01(\x0b\x32\x14.otg.DeviceBgpRouterH\x01\x88\x01\x01\x12$\n\x05vxlan\x18\x06 \x01(\x0b\x32\x10.otg.DeviceVxlanH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\t\x12\"\n\x04rsvp\x18\x08 \x01(\x0b\x32\x0f.otg.DeviceRsvpH\x03\x88\x01\x01\x42\x07\n\x05_isisB\x06\n\x04_bgpB\x08\n\x06_vxlanB\x07\n\x05_rsvp\"A\n\x0fProtocolOptions\x12\x1b\n\x0e\x61uto_start_all\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\x11\n\x0f_auto_start_all\"\x99\x03\n\x10\x44\x65viceIsisRouter\x12\x33\n\x08instance\x18\x01 \x01(\x0b\x32\x1c.otg.DeviceIsisMultiInstanceH\x00\x88\x01\x01\x12\x11\n\tsystem_id\x18\x02 \x01(\t\x12&\n\ninterfaces\x18\x03 \x03(\x0b\x32\x12.otg.IsisInterface\x12\"\n\x05\x62\x61sic\x18\x04 \x01(\x0b\x32\x0e.otg.IsisBasicH\x01\x88\x01\x01\x12(\n\x08\x61\x64vanced\x18\x05 \x01(\x0b\x32\x11.otg.IsisAdvancedH\x02\x88\x01\x01\x12\x31\n\x0brouter_auth\x18\x06 \x01(\x0b\x32\x17.otg.IsisAuthenticationH\x03\x88\x01\x01\x12(\n\tv4_routes\x18\x07 \x03(\x0b\x32\x15.otg.IsisV4RouteRange\x12(\n\tv6_routes\x18\x08 \x03(\x0b\x32\x15.otg.IsisV6RouteRange\x12\x0c\n\x04name\x18\t \x01(\tB\x0b\n\t_instanceB\x08\n\x06_basicB\x0b\n\t_advancedB\x0e\n\x0c_router_auth\"B\n\x17\x44\x65viceIsisMultiInstance\x12\x10\n\x03iid\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\r\n\x05itids\x18\x02 \x03(\x05\x42\x06\n\x04_iid\"\xde\x06\n\rIsisInterface\x12\x10\n\x08\x65th_name\x18\x01 \x01(\t\x12\x13\n\x06metric\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12>\n\x0cnetwork_type\x18\x03 \x01(\x0e\x32#.otg.IsisInterface.NetworkType.EnumH\x01\x88\x01\x01\x12:\n\nlevel_type\x18\x04 \x01(\x0e\x32!.otg.IsisInterface.LevelType.EnumH\x02\x88\x01\x01\x12\x31\n\x0bl1_settings\x18\x05 \x01(\x0b\x32\x17.otg.IsisInterfaceLevelH\x03\x88\x01\x01\x12\x31\n\x0bl2_settings\x18\x06 \x01(\x0b\x32\x17.otg.IsisInterfaceLevelH\x04\x88\x01\x01\x12\'\n\x12multi_topology_ids\x18\x07 \x03(\x0b\x32\x0b.otg.IsisMT\x12-\n\x13traffic_engineering\x18\x08 \x03(\x0b\x32\x10.otg.LinkStateTE\x12=\n\x0e\x61uthentication\x18\t \x01(\x0b\x32 .otg.IsisInterfaceAuthenticationH\x05\x88\x01\x01\x12\x31\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x1a.otg.IsisInterfaceAdvancedH\x06\x88\x01\x01\x12>\n\x0flink_protection\x18\x0b \x01(\x0b\x32 .otg.IsisInterfaceLinkProtectionH\x07\x88\x01\x01\x12\x13\n\x0bsrlg_values\x18\x0c \x03(\x05\x12\x0c\n\x04name\x18\r \x01(\t\x1aI\n\x0bNetworkType\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tbroadcast\x10\x01\x12\x12\n\x0epoint_to_point\x10\x02\x1aM\n\tLevelType\"@\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x12\r\n\tlevel_1_2\x10\x03\x42\t\n\x07_metricB\x0f\n\r_network_typeB\r\n\x0b_level_typeB\x0e\n\x0c_l1_settingsB\x0e\n\x0c_l2_settingsB\x11\n\x0f_authenticationB\x0b\n\t_advancedB\x12\n\x10_link_protection\"\x96\x01\n\x12IsisInterfaceLevel\x12\x15\n\x08priority\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x1a\n\rdead_interval\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x0b\n\t_priorityB\x11\n\x0f_hello_intervalB\x10\n\x0e_dead_interval\"P\n\x06IsisMT\x12\x12\n\x05mt_id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x18\n\x0blink_metric\x18\x02 \x01(\x05H\x01\x88\x01\x01\x42\x08\n\x06_mt_idB\x0e\n\x0c_link_metric\"\xc1\x02\n\x0bLinkStateTE\x12!\n\x14\x61\x64ministrative_group\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0cmetric_level\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x19\n\x0cmax_bandwith\x18\x03 \x01(\x03H\x02\x88\x01\x01\x12%\n\x18max_reservable_bandwidth\x18\x04 \x01(\x03H\x03\x88\x01\x01\x12\x42\n\x13priority_bandwidths\x18\x05 \x01(\x0b\x32 .otg.LinkStatepriorityBandwidthsH\x04\x88\x01\x01\x42\x17\n\x15_administrative_groupB\x0f\n\r_metric_levelB\x0f\n\r_max_bandwithB\x1b\n\x19_max_reservable_bandwidthB\x16\n\x14_priority_bandwidths\"\xed\x01\n\x1bLinkStatepriorityBandwidths\x12\x10\n\x03pb0\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x10\n\x03pb1\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x10\n\x03pb2\x18\x03 \x01(\x03H\x02\x88\x01\x01\x12\x10\n\x03pb3\x18\x04 \x01(\x03H\x03\x88\x01\x01\x12\x10\n\x03pb4\x18\x05 \x01(\x03H\x04\x88\x01\x01\x12\x10\n\x03pb5\x18\x06 \x01(\x03H\x05\x88\x01\x01\x12\x10\n\x03pb6\x18\x07 \x01(\x03H\x06\x88\x01\x01\x12\x10\n\x03pb7\x18\x08 \x01(\x03H\x07\x88\x01\x01\x42\x06\n\x04_pb0B\x06\n\x04_pb1B\x06\n\x04_pb2B\x06\n\x04_pb3B\x06\n\x04_pb4B\x06\n\x04_pb5B\x06\n\x04_pb6B\x06\n\x04_pb7\"\xda\x01\n\x1bIsisInterfaceAuthentication\x12\x41\n\tauth_type\x18\x01 \x01(\x0e\x32..otg.IsisInterfaceAuthentication.AuthType.Enum\x12\x10\n\x03md5\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x01\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x06\n\x04_md5B\x0b\n\t_password\"\xd3\x02\n\x15IsisInterfaceAdvanced\x12\x1c\n\x0f\x61uto_adjust_mtu\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1d\n\x10\x61uto_adjust_area\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12,\n\x1f\x61uto_adjust_supported_protocols\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\"\n\x15\x65nable_3way_handshake\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12&\n\x19p2p_hellos_to_unicast_mac\x18\x05 \x01(\x08H\x04\x88\x01\x01\x42\x12\n\x10_auto_adjust_mtuB\x13\n\x11_auto_adjust_areaB\"\n _auto_adjust_supported_protocolsB\x18\n\x16_enable_3way_handshakeB\x1c\n\x1a_p2p_hellos_to_unicast_mac\"\xf9\x02\n\x1bIsisInterfaceLinkProtection\x12\x1a\n\rextra_traffic\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x18\n\x0bunprotected\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06shared\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1d\n\x10\x64\x65\x64icated_1_to_1\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1f\n\x12\x64\x65\x64icated_1_plus_1\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08\x65nhanced\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x18\n\x0breserved_40\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x18\n\x0breserved_80\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x10\n\x0e_extra_trafficB\x0e\n\x0c_unprotectedB\t\n\x07_sharedB\x13\n\x11_dedicated_1_to_1B\x15\n\x13_dedicated_1_plus_1B\x0b\n\t_enhancedB\x0e\n\x0c_reserved_40B\x0e\n\x0c_reserved_80\"\xd5\x01\n\tIsisBasic\x12\x1e\n\x11ipv4_te_router_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08hostname\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12\x65nable_wide_metric\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1f\n\x12learned_lsp_filter\x18\x04 \x01(\x08H\x03\x88\x01\x01\x42\x14\n\x12_ipv4_te_router_idB\x0b\n\t_hostnameB\x15\n\x13_enable_wide_metricB\x15\n\x13_learned_lsp_filter\"\x8a\x04\n\x0cIsisAdvanced\x12!\n\x14\x65nable_hello_padding\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1f\n\x12max_area_addresses\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x16\n\x0e\x61rea_addresses\x18\x03 \x03(\t\x12\x1d\n\x10lsp_refresh_rate\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x19\n\x0clsp_lifetime\x18\x05 \x01(\x05H\x03\x88\x01\x01\x12\x1a\n\rpsnp_interval\x18\x06 \x01(\x05H\x04\x88\x01\x01\x12\x1a\n\rcsnp_interval\x18\x07 \x01(\x05H\x05\x88\x01\x01\x12\x19\n\x0cmax_lsp_size\x18\x08 \x01(\x05H\x06\x88\x01\x01\x12*\n\x1dlsp_mgroup_min_trans_interval\x18\t \x01(\x05H\x07\x88\x01\x01\x12 \n\x13\x65nable_attached_bit\x18\n \x01(\x08H\x08\x88\x01\x01\x42\x17\n\x15_enable_hello_paddingB\x15\n\x13_max_area_addressesB\x13\n\x11_lsp_refresh_rateB\x0f\n\r_lsp_lifetimeB\x10\n\x0e_psnp_intervalB\x10\n\x0e_csnp_intervalB\x0f\n\r_max_lsp_sizeB \n\x1e_lsp_mgroup_min_trans_intervalB\x16\n\x14_enable_attached_bit\"\xd6\x01\n\x12IsisAuthentication\x12\x1f\n\x12ignore_receive_md5\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x33\n\tarea_auth\x18\x02 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBaseH\x01\x88\x01\x01\x12\x35\n\x0b\x64omain_auth\x18\x03 \x01(\x0b\x32\x1b.otg.IsisAuthenticationBaseH\x02\x88\x01\x01\x42\x15\n\x13_ignore_receive_md5B\x0c\n\n_area_authB\x0e\n\x0c_domain_auth\"\xd0\x01\n\x16IsisAuthenticationBase\x12<\n\tauth_type\x18\x01 \x01(\x0e\x32).otg.IsisAuthenticationBase.AuthType.Enum\x12\x10\n\x03md5\x18\x02 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08password\x18\x03 \x01(\tH\x01\x88\x01\x01\x1a:\n\x08\x41uthType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03md5\x10\x01\x12\x0c\n\x08password\x10\x02\x42\x06\n\x04_md5B\x0b\n\t_password\"\xca\x04\n\x10IsisV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV4RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV4RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\t\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x06\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"{\n\x0eV4RouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\x05H\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"{\n\x0eV6RouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\x05H\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"|\n\x0fMACRouteAddress\x12\x0f\n\x07\x61\x64\x64ress\x18\x01 \x01(\t\x12\x13\n\x06prefix\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x11\n\x04step\x18\x04 \x01(\x05H\x02\x88\x01\x01\x42\t\n\x07_prefixB\x08\n\x06_countB\x07\n\x05_step\"\xca\x04\n\x10IsisV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x18\n\x0blink_metric\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12?\n\x0borigin_type\x18\x03 \x01(\x0e\x32%.otg.IsisV6RouteRange.OriginType.EnumH\x01\x88\x01\x01\x12O\n\x13redistribution_type\x18\x04 \x01(\x0e\x32-.otg.IsisV6RouteRange.RedistributionType.EnumH\x02\x88\x01\x01\x12\x0c\n\x04name\x18\x05 \x01(\t\x12 \n\x13prefix_attr_enabled\x18\x06 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06x_flag\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x13\n\x06r_flag\x18\x08 \x01(\x08H\x05\x88\x01\x01\x12\x13\n\x06n_flag\x18\t \x01(\x08H\x06\x88\x01\x01\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0e\n\x0c_link_metricB\x0e\n\x0c_origin_typeB\x16\n\x14_redistribution_typeB\x16\n\x14_prefix_attr_enabledB\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"\x80\x01\n\x0f\x44\x65viceBgpRouter\x12\x11\n\trouter_id\x18\x01 \x01(\t\x12,\n\x0fipv4_interfaces\x18\x02 \x03(\x0b\x32\x13.otg.BgpV4Interface\x12,\n\x0fipv6_interfaces\x18\x03 \x03(\x0b\x32\x13.otg.BgpV6Interface\"\x90\x02\n\x1b\x44\x65viceBgpMessageHeaderError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpMessageHeaderError.Subcode.EnumH\x00\x88\x01\x01\x1a\x9f\x01\n\x07Subcode\"\x93\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12.\n*connection_not_synchronized_code1_subcode1\x10\x01\x12%\n!bad_message_length_code1_subcode2\x10\x02\x12#\n\x1f\x62\x61\x64_message_type_code1_subcode3\x10\x03\x42\n\n\x08_subcode\"\xaa\x03\n\x19\x44\x65viceBgpOpenMessageError\x12\x41\n\x07subcode\x18\x01 \x01(\x0e\x32+.otg.DeviceBgpOpenMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xbd\x02\n\x07Subcode\"\xb1\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12-\n)unsupported_version_number_code2_subcode1\x10\x01\x12 \n\x1c\x65rror_peer_as_code2_subcode2\x10\x02\x12\x1f\n\x1b\x65rror_bgp_id_code2_subcode3\x10\x03\x12\x31\n-unsupported_optional_parameter_code2_subcode4\x10\x04\x12\x1e\n\x1a\x61uth_failed_code2_subcode5\x10\x05\x12(\n$unsupported_hold_time_code2_subcode6\x10\x06\x12)\n%unsupported_capability_code2_subcode7\x10\x07\x42\n\n\x08_subcode\"\xdc\x04\n\x1b\x44\x65viceBgpUpdateMessageError\x12\x43\n\x07subcode\x18\x01 \x01(\x0e\x32-.otg.DeviceBgpUpdateMessageError.Subcode.EnumH\x00\x88\x01\x01\x1a\xeb\x03\n\x07Subcode\"\xdf\x03\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12(\n$malformed_attrib_list_code3_subcode1\x10\x01\x12\x30\n,unrecognized_wellknown_attrib_code3_subcode2\x10\x02\x12+\n\'wellknown_attrib_missing_code3_subcode3\x10\x03\x12%\n!attrib_flags_error_code3_subcode4\x10\x04\x12&\n\"attrib_length_error_code3_subcode5\x10\x05\x12(\n$invalid_origin_attrib_code3_subcode6\x10\x06\x12\"\n\x1e\x61s_routing_loop_code3_subcode7\x10\x07\x12&\n\"invalid_nhop_attrib_code3_subcode8\x10\x08\x12(\n$error_optional_attrib_code3_subcode9\x10\t\x12)\n%invalid_network_field_code3_subcode10\x10\n\x12#\n\x1f\x61\x62normal_aspath_code3_subcode11\x10\x0b\x42\n\n\x08_subcode\"\x1b\n\x19\x44\x65viceBgpHoldTimerExpired\"\"\n DeviceBgpFiniteStateMachineError\"\xe3\x03\n\x13\x44\x65viceBgpCeaseError\x12;\n\x07subcode\x18\x01 \x01(\x0e\x32%.otg.DeviceBgpCeaseError.Subcode.EnumH\x00\x88\x01\x01\x1a\x82\x03\n\x07Subcode\"\xf6\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12,\n(max_number_prefix_reached_code6_subcode1\x10\x01\x12!\n\x1d\x61\x64min_shutdown_code6_subcode2\x10\x02\x12\x1f\n\x1bpeer_deleted_code6_subcode3\x10\x03\x12\x1e\n\x1a\x61\x64min_reset_code6_subcode4\x10\x04\x12$\n connection_reject_code6_subcode5\x10\x05\x12\'\n#other_config_changes_code6_subcode6\x10\x06\x12\x32\n.connection_collision_resolution_code6_subcode7\x10\x07\x12#\n\x1fout_of_resources_code6_subcode8\x10\x08\x12#\n\x1f\x62\x66\x64_session_down_code6_subcode9\x10\tB\n\n\x08_subcode\"T\n\x14\x44\x65viceBgpCustomError\x12\x11\n\x04\x63ode\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x14\n\x07subcode\x18\x02 \x01(\x05H\x01\x88\x01\x01\x42\x07\n\x05_codeB\n\n\x08_subcode\"\xce\x06\n\tBgpV4Peer\x12\x14\n\x0cpeer_address\x18\x01 \x01(\t\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x02 \x03(\x0b\x32\x19.otg.BgpV4EthernetSegment\x12+\n\x07\x61s_type\x18\x03 \x01(\x0e\x32\x1a.otg.BgpV4Peer.AsType.Enum\x12\x11\n\tas_number\x18\x04 \x01(\x05\x12?\n\x0f\x61s_number_width\x18\x05 \x01(\x0e\x32!.otg.BgpV4Peer.AsNumberWidth.EnumH\x00\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x10.otg.BgpAdvancedH\x01\x88\x01\x01\x12+\n\ncapability\x18\x07 \x01(\x0b\x32\x12.otg.BgpCapabilityH\x02\x88\x01\x01\x12I\n\x1alearned_information_filter\x18\x08 \x01(\x0b\x32 .otg.BgpLearnedInformationFilterH\x03\x88\x01\x01\x12\'\n\tv4_routes\x18\t \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0b \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x0c\n\x04name\x18\r \x01(\t\x12\x36\n\x10graceful_restart\x18\x0e \x01(\x0b\x32\x17.otg.BgpGracefulRestartH\x04\x88\x01\x01\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x12\n\x10_as_number_widthB\x0b\n\t_advancedB\r\n\x0b_capabilityB\x1d\n\x1b_learned_information_filterB\x13\n\x11_graceful_restart\"B\n\x0e\x42gpV4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV4Peer\"\xa8\x04\n\x14\x42gpV4EthernetSegment\x12;\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElectionH\x00\x88\x01\x01\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV4EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV4EthernetSegment.ActiveMode.EnumH\x02\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\x05H\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x0e\n\x0c_df_electionB\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_labelB\x0b\n\t_advancedB\n\n\x08_as_path\"N\n\x1c\x42gpEthernetSegmentDfElection\x12\x1b\n\x0e\x65lection_timer\x18\x01 \x01(\x05H\x00\x88\x01\x01\x42\x11\n\x0f_election_timer\"\xda\x03\n\x10\x42gpRouteAdvanced\x12-\n include_multi_exit_discriminator\x18\x03 \x01(\x08H\x00\x88\x01\x01\x12%\n\x18multi_exit_discriminator\x18\x01 \x01(\x05H\x01\x88\x01\x01\x12\x1b\n\x0einclude_origin\x18\x04 \x01(\x08H\x02\x88\x01\x01\x12\x36\n\x06origin\x18\x02 \x01(\x0e\x32!.otg.BgpRouteAdvanced.Origin.EnumH\x03\x88\x01\x01\x12%\n\x18include_local_preference\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1d\n\x10local_preference\x18\x06 \x01(\x05H\x05\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42#\n!_include_multi_exit_discriminatorB\x1b\n\x19_multi_exit_discriminatorB\x11\n\x0f_include_originB\t\n\x07_originB\x1b\n\x19_include_local_preferenceB\x13\n\x11_local_preference\"\xa4\x02\n\x0c\x42gpCommunity\x12.\n\x04type\x18\x01 \x01(\x0e\x32\x1b.otg.BgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\x05H\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"\xf9\x03\n\x0f\x42gpExtCommunity\x12\x31\n\x04type\x18\x01 \x01(\x0e\x32\x1e.otg.BgpExtCommunity.Type.EnumH\x00\x88\x01\x01\x12\x37\n\x07subtype\x18\x02 \x01(\x0e\x32!.otg.BgpExtCommunity.Subtype.EnumH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\xbc\x01\n\x04Type\"\xb3\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x61\x64ministrator_as_2octet\x10\x01\x12\x1e\n\x1a\x61\x64ministrator_ipv4_address\x10\x02\x12\x1b\n\x17\x61\x64ministrator_as_4octet\x10\x03\x12\n\n\x06opaque\x10\x04\x12\x08\n\x04\x65vpn\x10\x05\x12*\n&administrator_as_2octet_link_bandwidth\x10\x06\x1a\x87\x01\n\x07Subtype\"|\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0croute_target\x10\x01\x12\n\n\x06origin\x10\x02\x12\x16\n\x12\x65xtended_bandwidth\x10\x03\x12\t\n\x05\x63olor\x10\x04\x12\x11\n\rencapsulation\x10\x05\x12\x0f\n\x0bmac_address\x10\x06\x42\x07\n\x05_typeB\n\n\x08_subtypeB\x08\n\x06_value\"\xbe\x02\n\tBgpAsPath\x12\x37\n\x0b\x61s_set_mode\x18\x01 \x01(\x0e\x32\x1d.otg.BgpAsPath.AsSetMode.EnumH\x00\x88\x01\x01\x12\'\n\x08segments\x18\x02 \x03(\x0b\x32\x15.otg.BgpAsPathSegment\x1a\xbe\x01\n\tAsSetMode\"\xb0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1b\n\x17\x64o_not_include_local_as\x10\x01\x12\x12\n\x0einclude_as_seq\x10\x02\x12\x12\n\x0einclude_as_set\x10\x03\x12\x19\n\x15include_as_confed_seq\x10\x04\x12\x19\n\x15include_as_confed_set\x10\x05\x12\x1c\n\x18prepend_to_first_segment\x10\x06\x42\x0e\n\x0c_as_set_mode\"\xc2\x01\n\x10\x42gpAsPathSegment\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\x03\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"\xbb\x01\n\rBgpV4EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV4EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12*\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV4EviVxlanH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_evi_vxlan\"\xa3\x06\n\rBgpV4EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV4EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV4EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12<\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisherH\x03\x88\x01\x01\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12,\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_labelB\x16\n\x14_route_distinguisherB\x0b\n\t_advancedB\n\n\x08_as_path\"\xb4\x01\n\x1c\x42gpV4EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\x03H\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"\xae\x04\n\x0e\x42gpCMacIpRange\x12\x30\n\rmac_addresses\x18\x01 \x01(\x0b\x32\x14.otg.MACRouteAddressH\x00\x88\x01\x01\x12\x12\n\x05l2vni\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x30\n\x0eipv4_addresses\x18\x03 \x01(\x0b\x32\x13.otg.V4RouteAddressH\x02\x88\x01\x01\x12\x30\n\x0eipv6_addresses\x18\x04 \x01(\x0b\x32\x13.otg.V6RouteAddressH\x03\x88\x01\x01\x12\x12\n\x05l3vni\x18\x05 \x01(\x05H\x04\x88\x01\x01\x12$\n\x17include_default_gateway\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x08 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\t \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x07\x88\x01\x01\x12\x0c\n\x04name\x18\x0b \x01(\tB\x10\n\x0e_mac_addressesB\x08\n\x06_l2vniB\x11\n\x0f_ipv4_addressesB\x11\n\x0f_ipv6_addressesB\x08\n\x06_l3vniB\x1a\n\x18_include_default_gatewayB\x0b\n\t_advancedB\n\n\x08_as_path\"\x98\x02\n\x15\x42gpRouteDistinguisher\x12<\n\x07rd_type\x18\x01 \x01(\x0e\x32&.otg.BgpRouteDistinguisher.RdType.EnumH\x00\x88\x01\x01\x12#\n\x16\x61uto_config_rd_ip_addr\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x15\n\x08rd_value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1aQ\n\x06RdType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rd_typeB\x19\n\x17_auto_config_rd_ip_addrB\x0b\n\t_rd_value\"\xca\x01\n\x0e\x42gpRouteTarget\x12\x35\n\x07rt_type\x18\x01 \x01(\x0e\x32\x1f.otg.BgpRouteTarget.RtType.EnumH\x00\x88\x01\x01\x12\x15\n\x08rt_value\x18\x02 \x01(\tH\x01\x88\x01\x01\x1aQ\n\x06RtType\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tas_2octet\x10\x01\x12\x10\n\x0cipv4_address\x10\x02\x12\r\n\tas_4octet\x10\x03\x42\n\n\x08_rt_typeB\x0b\n\t_rt_value\"\xff\x01\n\x0b\x42gpAdvanced\x12\x1f\n\x12hold_time_interval\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12 \n\x13keep_alive_interval\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x1c\n\x0fupdate_interval\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x14\n\x07md5_key\x18\x05 \x01(\tH\x04\x88\x01\x01\x42\x15\n\x13_hold_time_intervalB\x16\n\x14_keep_alive_intervalB\x12\n\x10_update_intervalB\x0f\n\r_time_to_liveB\n\n\x08_md5_key\"\x91\n\n\rBgpCapability\x12\x19\n\x0cipv4_unicast\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0eipv4_multicast\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x19\n\x0cipv6_unicast\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0eipv6_multicast\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x11\n\x04vpls\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x1a\n\rroute_refresh\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10route_constraint\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12\x1f\n\x12link_state_non_vpn\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12\x1b\n\x0elink_state_vpn\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x11\n\x04\x65vpn\x18\n \x01(\x08H\t\x88\x01\x01\x12\'\n\x1a\x65xtended_next_hop_encoding\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x1f\n\x12ipv4_multicast_vpn\x18\x0c \x01(\x08H\x0b\x88\x01\x01\x12\x1a\n\ripv4_mpls_vpn\x18\r \x01(\x08H\x0c\x88\x01\x01\x12\x15\n\x08ipv4_mdt\x18\x0e \x01(\x08H\r\x88\x01\x01\x12$\n\x17ipv4_multicast_mpls_vpn\x18\x0f \x01(\x08H\x0e\x88\x01\x01\x12#\n\x16ipv4_unicast_flow_spec\x18\x10 \x01(\x08H\x0f\x88\x01\x01\x12\x1e\n\x11ipv4_sr_te_policy\x18\x11 \x01(\x08H\x10\x88\x01\x01\x12\"\n\x15ipv4_unicast_add_path\x18\x12 \x01(\x08H\x11\x88\x01\x01\x12\x1f\n\x12ipv6_multicast_vpn\x18\x13 \x01(\x08H\x12\x88\x01\x01\x12\x1a\n\ripv6_mpls_vpn\x18\x14 \x01(\x08H\x13\x88\x01\x01\x12\x15\n\x08ipv6_mdt\x18\x15 \x01(\x08H\x14\x88\x01\x01\x12$\n\x17ipv6_multicast_mpls_vpn\x18\x16 \x01(\x08H\x15\x88\x01\x01\x12#\n\x16ipv6_unicast_flow_spec\x18\x17 \x01(\x08H\x16\x88\x01\x01\x12\x1e\n\x11ipv6_sr_te_policy\x18\x18 \x01(\x08H\x17\x88\x01\x01\x12\"\n\x15ipv6_unicast_add_path\x18\x19 \x01(\x08H\x18\x88\x01\x01\x42\x0f\n\r_ipv4_unicastB\x11\n\x0f_ipv4_multicastB\x0f\n\r_ipv6_unicastB\x11\n\x0f_ipv6_multicastB\x07\n\x05_vplsB\x10\n\x0e_route_refreshB\x13\n\x11_route_constraintB\x15\n\x13_link_state_non_vpnB\x11\n\x0f_link_state_vpnB\x07\n\x05_evpnB\x1d\n\x1b_extended_next_hop_encodingB\x15\n\x13_ipv4_multicast_vpnB\x10\n\x0e_ipv4_mpls_vpnB\x0b\n\t_ipv4_mdtB\x1a\n\x18_ipv4_multicast_mpls_vpnB\x19\n\x17_ipv4_unicast_flow_specB\x14\n\x12_ipv4_sr_te_policyB\x18\n\x16_ipv4_unicast_add_pathB\x15\n\x13_ipv6_multicast_vpnB\x10\n\x0e_ipv6_mpls_vpnB\x0b\n\t_ipv6_mdtB\x1a\n\x18_ipv6_multicast_mpls_vpnB\x19\n\x17_ipv6_unicast_flow_specB\x14\n\x12_ipv6_sr_te_policyB\x18\n\x16_ipv6_unicast_add_path\"\x91\x01\n\x1b\x42gpLearnedInformationFilter\x12 \n\x13unicast_ipv4_prefix\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12 \n\x13unicast_ipv6_prefix\x18\x02 \x01(\x08H\x01\x88\x01\x01\x42\x16\n\x14_unicast_ipv4_prefixB\x16\n\x14_unicast_ipv6_prefix\"\x82\x06\n\x0f\x42gpV4RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V4RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV4RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV4RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12$\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x06\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\n\n\x08_as_pathB\x0b\n\t_add_path\".\n\nBgpAddPath\x12\x14\n\x07path_id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x42\n\n\x08_path_id\"\x82\x06\n\x0f\x42gpV6RouteRange\x12&\n\taddresses\x18\x01 \x03(\x0b\x32\x13.otg.V6RouteAddress\x12\x41\n\rnext_hop_mode\x18\x02 \x01(\x0e\x32%.otg.BgpV6RouteRange.NextHopMode.EnumH\x00\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x03 \x01(\x0e\x32,.otg.BgpV6RouteRange.NextHopAddressType.EnumH\x01\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x05 \x01(\tH\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12$\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x06\x88\x01\x01\x12\x0c\n\x04name\x18\n \x01(\t\x12-\n\x0f\x65xt_communities\x18\x0b \x03(\x0b\x32\x14.otg.BgpExtCommunity\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\n\n\x08_as_pathB\x0b\n\t_add_path\"\x8b\x07\n\x0f\x42gpSrteV4Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x15\n\ripv4_endpoint\x18\x03 \x01(\t\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV4Policy.NextHopMode.EnumH\x02\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV4Policy.NextHopAddressType.EnumH\x03\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x07\x88\x01\x01\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x08\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV4TunnelTlv\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\t\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\x0b\n\t_add_pathB\n\n\x08_as_pathB\t\n\x07_active\"\xff\x05\n\x12\x42gpSrteV4TunnelTlv\x12\x46\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlvH\x00\x88\x01\x01\x12\x33\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlvH\x01\x88\x01\x01\x12\x37\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlvH\x02\x88\x01\x01\x12=\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlvH\x03\x88\x01\x01\x12\x46\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlvH\x04\x88\x01\x01\x12>\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlvH\x05\x88\x01\x01\x12Z\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlvH\x06\x88\x01\x01\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x0c\n\x04name\x18\t \x01(\t\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x07\x88\x01\x01\x42\x1a\n\x18_remote_endpoint_sub_tlvB\x10\n\x0e_color_sub_tlvB\x12\n\x10_binding_sub_tlvB\x15\n\x13_preference_sub_tlvB\x1a\n\x18_policy_priority_sub_tlvB\x16\n\x14_policy_name_sub_tlvB%\n#_explicit_null_label_policy_sub_tlvB\t\n\x07_active\"\xbe\x02\n\x1b\x42gpSrteRemoteEndpointSubTlv\x12\x16\n\tas_number\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12P\n\x0e\x61\x64\x64ress_family\x18\x02 \x01(\x0e\x32\x33.otg.BgpSrteRemoteEndpointSubTlv.AddressFamily.EnumH\x01\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x19\n\x0cipv6_address\x18\x04 \x01(\tH\x03\x88\x01\x01\x1a<\n\rAddressFamily\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x0c\n\n_as_numberB\x11\n\x0f_address_familyB\x0f\n\r_ipv4_addressB\x0f\n\r_ipv6_address\"2\n\x12\x42gpSrteColorSubTlv\x12\x12\n\x05\x63olor\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x08\n\x06_color\"\xea\x02\n\x14\x42gpSrteBindingSubTlv\x12L\n\x10\x62inding_sid_type\x18\x01 \x01(\x0e\x32-.otg.BgpSrteBindingSubTlv.BindingSidType.EnumH\x00\x88\x01\x01\x12\x1b\n\x0e\x66our_octet_sid\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x15\n\x08ipv6_sid\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x13\n\x06s_flag\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x13\n\x06i_flag\x18\x05 \x01(\x08H\x04\x88\x01\x01\x1a[\n\x0e\x42indingSidType\"I\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nno_binding\x10\x01\x12\x12\n\x0e\x66our_octet_sid\x10\x02\x12\x0c\n\x08ipv6_sid\x10\x03\x42\x13\n\x11_binding_sid_typeB\x11\n\x0f_four_octet_sidB\x0b\n\t_ipv6_sidB\t\n\x07_s_flagB\t\n\x07_i_flag\"A\n\x17\x42gpSrtePreferenceSubTlv\x12\x17\n\npreference\x18\x01 \x01(\x03H\x00\x88\x01\x01\x42\r\n\x0b_preference\"O\n\x1b\x42gpSrtePolicyPrioritySubTlv\x12\x1c\n\x0fpolicy_priority\x18\x01 \x01(\x05H\x00\x88\x01\x01\x42\x12\n\x10_policy_priority\"C\n\x17\x42gpSrtePolicyNameSubTlv\x12\x18\n\x0bpolicy_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0e\n\x0c_policy_name\"\xd6\x02\n$BgpSrteExplicitNullLabelPolicySubTlv\x12o\n\x1a\x65xplicit_null_label_policy\x18\x01 \x01(\x0e\x32\x46.otg.BgpSrteExplicitNullLabelPolicySubTlv.ExplicitNullLabelPolicy.EnumH\x00\x88\x01\x01\x1a\x9d\x01\n\x17\x45xplicitNullLabelPolicy\"\x81\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rreserved_enlp\x10\x01\x12\x12\n\x0epush_ipv4_enlp\x10\x02\x12\x12\n\x0epush_ipv6_enlp\x10\x03\x12\x17\n\x13push_ipv4_ipv6_enlp\x10\x04\x12\x14\n\x10\x64o_not_push_enlp\x10\x05\x42\x1d\n\x1b_explicit_null_label_policy\"\x89\x01\n\x12\x42gpSrteSegmentList\x12\x13\n\x06weight\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12%\n\x08segments\x18\x02 \x03(\x0b\x32\x13.otg.BgpSrteSegment\x12\x0c\n\x04name\x18\x03 \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x04 \x01(\x08H\x01\x88\x01\x01\x42\t\n\x07_weightB\t\n\x07_active\"\xe8\x07\n\x0e\x42gpSrteSegment\x12:\n\x0csegment_type\x18\x01 \x01(\x0e\x32$.otg.BgpSrteSegment.SegmentType.Enum\x12\x33\n\x06type_a\x18\x02 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentATypeSubTlvH\x00\x88\x01\x01\x12\x33\n\x06type_b\x18\x03 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentBTypeSubTlvH\x01\x88\x01\x01\x12\x33\n\x06type_c\x18\x04 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentCTypeSubTlvH\x02\x88\x01\x01\x12\x33\n\x06type_d\x18\x05 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentDTypeSubTlvH\x03\x88\x01\x01\x12\x33\n\x06type_e\x18\x06 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentETypeSubTlvH\x04\x88\x01\x01\x12\x33\n\x06type_f\x18\x07 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentFTypeSubTlvH\x05\x88\x01\x01\x12\x33\n\x06type_g\x18\x08 \x01(\x0b\x32\x1e.otg.BgpSrteSegmentGTypeSubTlvH\x06\x88\x01\x01\x12\x33\n\x06type_h\x18\t \x01(\x0b\x32\x1e.otg.BgpSrteSegmentHTypeSubTlvH\x07\x88\x01\x01\x12\x33\n\x06type_i\x18\n \x01(\x0b\x32\x1e.otg.BgpSrteSegmentITypeSubTlvH\x08\x88\x01\x01\x12\x33\n\x06type_j\x18\x0b \x01(\x0b\x32\x1e.otg.BgpSrteSegmentJTypeSubTlvH\t\x88\x01\x01\x12\x33\n\x06type_k\x18\x0c \x01(\x0b\x32\x1e.otg.BgpSrteSegmentKTypeSubTlvH\n\x88\x01\x01\x12\x0c\n\x04name\x18\r \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0e \x01(\x08H\x0b\x88\x01\x01\x1a\xab\x01\n\x0bSegmentType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06type_a\x10\x01\x12\n\n\x06type_b\x10\x02\x12\n\n\x06type_c\x10\x03\x12\n\n\x06type_d\x10\x04\x12\n\n\x06type_e\x10\x05\x12\n\n\x06type_f\x10\x06\x12\n\n\x06type_g\x10\x07\x12\n\n\x06type_h\x10\x08\x12\n\n\x06type_i\x10\t\x12\n\n\x06type_j\x10\n\x12\n\n\x06type_k\x10\x0b\x42\t\n\x07_type_aB\t\n\x07_type_bB\t\n\x07_type_cB\t\n\x07_type_dB\t\n\x07_type_eB\t\n\x07_type_fB\t\n\x07_type_gB\t\n\x07_type_hB\t\n\x07_type_iB\t\n\x07_type_jB\t\n\x07_type_kB\t\n\x07_active\"\x80\x01\n\x10\x42gpSrteSrMplsSid\x12\x12\n\x05label\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x0f\n\x02tc\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05s_bit\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x10\n\x03ttl\x18\x04 \x01(\x05H\x03\x88\x01\x01\x42\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xca\x01\n*BgpSrteSRv6SIDEndpointBehaviorAndStructure\x12\x16\n\tlb_length\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x16\n\tln_length\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x18\n\x0b\x66unc_length\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x17\n\narg_length\x18\x04 \x01(\x05H\x03\x88\x01\x01\x42\x0c\n\n_lb_lengthB\x0c\n\n_ln_lengthB\x0e\n\x0c_func_lengthB\r\n\x0b_arg_length\"\xa7\x01\n\x19\x42gpSrteSegmentATypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x12\n\x05label\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0f\n\x02tc\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x12\n\x05s_bit\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x10\n\x03ttl\x18\x05 \x01(\x05H\x04\x88\x01\x01\x42\x08\n\x06_flagsB\x08\n\x06_labelB\x05\n\x03_tcB\x08\n\x06_s_bitB\x06\n\x04_ttl\"\xc4\x01\n\x19\x42gpSrteSegmentBTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x08srv6_sid\x18\x02 \x01(\t\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x03 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xc1\x01\n\x19\x42gpSrteSegmentCTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x19\n\x11ipv4_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0e\n\x0c_sr_mpls_sid\"\xc1\x01\n\x19\x42gpSrteSegmentDTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x19\n\x11ipv6_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0e\n\x0c_sr_mpls_sid\"\xcd\x01\n\x19\x42gpSrteSegmentETypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x19\n\x11ipv4_node_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x0e\n\x0c_sr_mpls_sid\"\xb3\x01\n\x19\x42gpSrteSegmentFTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\x12local_ipv4_address\x18\x02 \x01(\t\x12\x1b\n\x13remote_ipv4_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x0e\n\x0c_sr_mpls_sid\"\xaf\x02\n\x19\x42gpSrteSegmentGTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x1f\n\x17local_ipv6_node_address\x18\x03 \x01(\t\x12 \n\x13remote_interface_id\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12 \n\x18remote_ipv6_node_address\x18\x05 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x06 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x15\n\x13_local_interface_idB\x16\n\x14_remote_interface_idB\x0e\n\x0c_sr_mpls_sid\"\xb3\x01\n\x19\x42gpSrteSegmentHTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\x12local_ipv6_address\x18\x02 \x01(\t\x12\x1b\n\x13remote_ipv6_address\x18\x03 \x01(\t\x12/\n\x0bsr_mpls_sid\x18\x04 \x01(\x0b\x32\x15.otg.BgpSrteSrMplsSidH\x01\x88\x01\x01\x42\x08\n\x06_flagsB\x0e\n\x0c_sr_mpls_sid\"\xf1\x01\n\x19\x42gpSrteSegmentITypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x11ipv6_node_address\x18\x02 \x01(\t\x12\x15\n\x08srv6_sid\x18\x03 \x01(\tH\x01\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x04 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x02\x88\x01\x01\x42\x08\n\x06_flagsB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xb7\x03\n\x19\x42gpSrteSegmentJTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x1f\n\x12local_interface_id\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x1f\n\x17local_ipv6_node_address\x18\x04 \x01(\t\x12 \n\x13remote_interface_id\x18\x05 \x01(\x05H\x03\x88\x01\x01\x12 \n\x18remote_ipv6_node_address\x18\x06 \x01(\t\x12\x15\n\x08srv6_sid\x18\x07 \x01(\tH\x04\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x08 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x05\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x15\n\x13_local_interface_idB\x16\n\x14_remote_interface_idB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\xbb\x02\n\x19\x42gpSrteSegmentKTypeSubTlv\x12\x12\n\x05\x66lags\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x19\n\x0csr_algorithm\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x1a\n\x12local_ipv6_address\x18\x03 \x01(\t\x12\x1b\n\x13remote_ipv6_address\x18\x04 \x01(\t\x12\x15\n\x08srv6_sid\x18\x05 \x01(\tH\x02\x88\x01\x01\x12X\n\x1asrv6_sid_endpoint_behavior\x18\x06 \x01(\x0b\x32/.otg.BgpSrteSRv6SIDEndpointBehaviorAndStructureH\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x0f\n\r_sr_algorithmB\x0b\n\t_srv6_sidB\x1d\n\x1b_srv6_sid_endpoint_behavior\"\x8a\x07\n\x0f\x42gpSrteV6Policy\x12\x1a\n\rdistinguisher\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x12\n\x05\x63olor\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x15\n\ripv6_endpoint\x18\x03 \x01(\t\x12\x41\n\rnext_hop_mode\x18\x04 \x01(\x0e\x32%.otg.BgpSrteV6Policy.NextHopMode.EnumH\x02\x88\x01\x01\x12P\n\x15next_hop_address_type\x18\x05 \x01(\x0e\x32,.otg.BgpSrteV6Policy.NextHopAddressType.EnumH\x03\x88\x01\x01\x12\"\n\x15next_hop_ipv4_address\x18\x06 \x01(\tH\x04\x88\x01\x01\x12\"\n\x15next_hop_ipv6_address\x18\x07 \x01(\tH\x05\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x08 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x06\x88\x01\x01\x12&\n\x08\x61\x64\x64_path\x18\t \x01(\x0b\x32\x0f.otg.BgpAddPathH\x07\x88\x01\x01\x12$\n\x07\x61s_path\x18\n \x01(\x0b\x32\x0e.otg.BgpAsPathH\x08\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12,\n\x0e\x65xtcommunities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12,\n\x0btunnel_tlvs\x18\r \x03(\x0b\x32\x17.otg.BgpSrteV6TunnelTlv\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x13\n\x06\x61\x63tive\x18\x0f \x01(\x08H\t\x88\x01\x01\x1a@\n\x0bNextHopMode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08local_ip\x10\x01\x12\n\n\x06manual\x10\x02\x1a\x41\n\x12NextHopAddressType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x10\n\x0e_distinguisherB\x08\n\x06_colorB\x10\n\x0e_next_hop_modeB\x18\n\x16_next_hop_address_typeB\x18\n\x16_next_hop_ipv4_addressB\x18\n\x16_next_hop_ipv6_addressB\x0b\n\t_advancedB\x0b\n\t_add_pathB\n\n\x08_as_pathB\t\n\x07_active\"\xff\x05\n\x12\x42gpSrteV6TunnelTlv\x12\x46\n\x17remote_endpoint_sub_tlv\x18\x01 \x01(\x0b\x32 .otg.BgpSrteRemoteEndpointSubTlvH\x00\x88\x01\x01\x12\x33\n\rcolor_sub_tlv\x18\x02 \x01(\x0b\x32\x17.otg.BgpSrteColorSubTlvH\x01\x88\x01\x01\x12\x37\n\x0f\x62inding_sub_tlv\x18\x03 \x01(\x0b\x32\x19.otg.BgpSrteBindingSubTlvH\x02\x88\x01\x01\x12=\n\x12preference_sub_tlv\x18\x04 \x01(\x0b\x32\x1c.otg.BgpSrtePreferenceSubTlvH\x03\x88\x01\x01\x12\x46\n\x17policy_priority_sub_tlv\x18\x05 \x01(\x0b\x32 .otg.BgpSrtePolicyPrioritySubTlvH\x04\x88\x01\x01\x12>\n\x13policy_name_sub_tlv\x18\x06 \x01(\x0b\x32\x1c.otg.BgpSrtePolicyNameSubTlvH\x05\x88\x01\x01\x12Z\n\"explicit_null_label_policy_sub_tlv\x18\x07 \x01(\x0b\x32).otg.BgpSrteExplicitNullLabelPolicySubTlvH\x06\x88\x01\x01\x12.\n\rsegment_lists\x18\x08 \x03(\x0b\x32\x17.otg.BgpSrteSegmentList\x12\x0c\n\x04name\x18\t \x01(\t\x12\x13\n\x06\x61\x63tive\x18\n \x01(\x08H\x07\x88\x01\x01\x42\x1a\n\x18_remote_endpoint_sub_tlvB\x10\n\x0e_color_sub_tlvB\x12\n\x10_binding_sub_tlvB\x15\n\x13_preference_sub_tlvB\x1a\n\x18_policy_priority_sub_tlvB\x16\n\x14_policy_name_sub_tlvB%\n#_explicit_null_label_policy_sub_tlvB\t\n\x07_active\"\xb8\x01\n\x12\x42gpGracefulRestart\x12\x16\n\tenable_gr\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0crestart_time\x18\x02 \x01(\rH\x01\x88\x01\x01\x12\x18\n\x0b\x65nable_llgr\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x17\n\nstale_time\x18\x04 \x01(\rH\x03\x88\x01\x01\x42\x0c\n\n_enable_grB\x0f\n\r_restart_timeB\x0e\n\x0c_enable_llgrB\r\n\x0b_stale_time\"\x9a\x07\n\tBgpV6Peer\x12\x14\n\x0cpeer_address\x18\x01 \x01(\t\x12\x36\n\x0fsegment_routing\x18\x02 \x01(\x0b\x32\x18.otg.BgpV6SegmentRoutingH\x00\x88\x01\x01\x12\x39\n\x16\x65vpn_ethernet_segments\x18\x03 \x03(\x0b\x32\x19.otg.BgpV6EthernetSegment\x12+\n\x07\x61s_type\x18\x04 \x01(\x0e\x32\x1a.otg.BgpV6Peer.AsType.Enum\x12\x11\n\tas_number\x18\x05 \x01(\x05\x12?\n\x0f\x61s_number_width\x18\x06 \x01(\x0e\x32!.otg.BgpV6Peer.AsNumberWidth.EnumH\x01\x88\x01\x01\x12\'\n\x08\x61\x64vanced\x18\x07 \x01(\x0b\x32\x10.otg.BgpAdvancedH\x02\x88\x01\x01\x12+\n\ncapability\x18\x08 \x01(\x0b\x32\x12.otg.BgpCapabilityH\x03\x88\x01\x01\x12I\n\x1alearned_information_filter\x18\t \x01(\x0b\x32 .otg.BgpLearnedInformationFilterH\x04\x88\x01\x01\x12\'\n\tv4_routes\x18\n \x03(\x0b\x32\x14.otg.BgpV4RouteRange\x12\'\n\tv6_routes\x18\x0b \x03(\x0b\x32\x14.otg.BgpV6RouteRange\x12.\n\x10v4_srte_policies\x18\x0c \x03(\x0b\x32\x14.otg.BgpSrteV4Policy\x12.\n\x10v6_srte_policies\x18\r \x03(\x0b\x32\x14.otg.BgpSrteV6Policy\x12\x0c\n\x04name\x18\x0e \x01(\t\x12\x36\n\x10graceful_restart\x18\x0f \x01(\x0b\x32\x17.otg.BgpGracefulRestartH\x05\x88\x01\x01\x1a\x35\n\x06\x41sType\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ibgp\x10\x01\x12\x08\n\x04\x65\x62gp\x10\x02\x1a;\n\rAsNumberWidth\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03two\x10\x01\x12\x08\n\x04\x66our\x10\x02\x42\x12\n\x10_segment_routingB\x12\n\x10_as_number_widthB\x0b\n\t_advancedB\r\n\x0b_capabilityB\x1d\n\x1b_learned_information_filterB\x13\n\x11_graceful_restart\"B\n\x0e\x42gpV6Interface\x12\x11\n\tipv6_name\x18\x01 \x01(\t\x12\x1d\n\x05peers\x18\x02 \x03(\x0b\x32\x0e.otg.BgpV6Peer\"\xf1\x03\n\x13\x42gpV6SegmentRouting\x12!\n\x14ingress_supports_vpn\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15reduced_encapsulation\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1e\n\x11\x63opy_time_to_live\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x19\n\x0ctime_to_live\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x1d\n\x10max_sids_per_srh\x18\x05 \x01(\x05H\x04\x88\x01\x01\x12-\n auto_generate_segment_left_value\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1f\n\x12segment_left_value\x18\x07 \x01(\x05H\x06\x88\x01\x01\x12#\n\x16\x61\x64vertise_sr_te_policy\x18\x08 \x01(\x08H\x07\x88\x01\x01\x42\x17\n\x15_ingress_supports_vpnB\x18\n\x16_reduced_encapsulationB\x14\n\x12_copy_time_to_liveB\x0f\n\r_time_to_liveB\x13\n\x11_max_sids_per_srhB#\n!_auto_generate_segment_left_valueB\x15\n\x13_segment_left_valueB\x19\n\x17_advertise_sr_te_policy\"\xa8\x04\n\x14\x42gpV6EthernetSegment\x12;\n\x0b\x64\x66_election\x18\x01 \x01(\x0b\x32!.otg.BgpEthernetSegmentDfElectionH\x00\x88\x01\x01\x12 \n\x04\x65vis\x18\x02 \x03(\x0b\x32\x12.otg.BgpV6EvpnEvis\x12\x10\n\x03\x65si\x18\x03 \x01(\tH\x01\x88\x01\x01\x12\x43\n\x0b\x61\x63tive_mode\x18\x04 \x01(\x0e\x32).otg.BgpV6EthernetSegment.ActiveMode.EnumH\x02\x88\x01\x01\x12\x16\n\tesi_label\x18\x05 \x01(\x05H\x03\x88\x01\x01\x12,\n\x08\x61\x64vanced\x18\x06 \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x08 \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\t \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1aH\n\nActiveMode\":\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsingle_active\x10\x01\x12\x0e\n\nall_active\x10\x02\x42\x0e\n\x0c_df_electionB\x06\n\x04_esiB\x0e\n\x0c_active_modeB\x0c\n\n_esi_labelB\x0b\n\t_advancedB\n\n\x08_as_path\"\xbb\x01\n\rBgpV6EvpnEvis\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.BgpV6EvpnEvis.Choice.EnumH\x00\x88\x01\x01\x12*\n\tevi_vxlan\x18\x02 \x01(\x0b\x32\x12.otg.BgpV6EviVxlanH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tevi_vxlan\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_evi_vxlan\"\xa3\x06\n\rBgpV6EviVxlan\x12<\n\x11\x62roadcast_domains\x18\x01 \x03(\x0b\x32!.otg.BgpV6EviVxlanBroadcastDomain\x12\x46\n\x10replication_type\x18\x02 \x01(\x0e\x32\'.otg.BgpV6EviVxlan.ReplicationType.EnumH\x00\x88\x01\x01\x12\x17\n\npmsi_label\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12\x15\n\x08\x61\x64_label\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12<\n\x13route_distinguisher\x18\x05 \x01(\x0b\x32\x1a.otg.BgpRouteDistinguisherH\x03\x88\x01\x01\x12\x30\n\x13route_target_export\x18\x06 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x30\n\x13route_target_import\x18\x07 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_export\x18\x08 \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12\x33\n\x16l3_route_target_import\x18\t \x03(\x0b\x32\x13.otg.BgpRouteTarget\x12,\n\x08\x61\x64vanced\x18\n \x01(\x0b\x32\x15.otg.BgpRouteAdvancedH\x04\x88\x01\x01\x12&\n\x0b\x63ommunities\x18\x0b \x03(\x0b\x32\x11.otg.BgpCommunity\x12-\n\x0f\x65xt_communities\x18\x0c \x03(\x0b\x32\x14.otg.BgpExtCommunity\x12$\n\x07\x61s_path\x18\r \x01(\x0b\x32\x0e.otg.BgpAsPathH\x05\x88\x01\x01\x1a\x43\n\x0fReplicationType\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13ingress_replication\x10\x01\x42\x13\n\x11_replication_typeB\r\n\x0b_pmsi_labelB\x0b\n\t_ad_labelB\x16\n\x14_route_distinguisherB\x0b\n\t_advancedB\n\n\x08_as_path\"\xb4\x01\n\x1c\x42gpV6EviVxlanBroadcastDomain\x12*\n\rcmac_ip_range\x18\x01 \x03(\x0b\x32\x13.otg.BgpCMacIpRange\x12\x1c\n\x0f\x65thernet_tag_id\x18\x02 \x01(\x03H\x00\x88\x01\x01\x12\x1f\n\x12vlan_aware_service\x18\x03 \x01(\x08H\x01\x88\x01\x01\x42\x12\n\x10_ethernet_tag_idB\x15\n\x13_vlan_aware_service\"]\n\x0b\x44\x65viceVxlan\x12&\n\nv4_tunnels\x18\x01 \x03(\x0b\x32\x12.otg.VxlanV4Tunnel\x12&\n\nv6_tunnels\x18\x02 \x03(\x0b\x32\x12.otg.VxlanV6Tunnel\"\xa3\x01\n\rVxlanV4Tunnel\x12\x18\n\x10source_interface\x18\x01 \x01(\t\x12\x45\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV4TunnelDestinationIPModeH\x00\x88\x01\x01\x12\x0b\n\x03vni\x18\x03 \x01(\x05\x12\x0c\n\x04name\x18\x04 \x01(\tB\x16\n\x14_destination_ip_mode\"\xa3\x01\n\rVxlanV6Tunnel\x12\x18\n\x10source_interface\x18\x01 \x01(\t\x12\x45\n\x13\x64\x65stination_ip_mode\x18\x02 \x01(\x0b\x32#.otg.VxlanV6TunnelDestinationIPModeH\x00\x88\x01\x01\x12\x0b\n\x03vni\x18\x03 \x01(\x05\x12\x0c\n\x04name\x18\x04 \x01(\tB\x16\n\x14_destination_ip_mode\"\xd2\x02\n\x1eVxlanV4TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV4TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12@\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV4TunnelDestinationIPModeUnicastH\x01\x88\x01\x01\x12\x44\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV4TunnelDestinationIPModeMulticastH\x02\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choiceB\n\n\x08_unicastB\x0c\n\n_multicast\"\xd2\x02\n\x1eVxlanV6TunnelDestinationIPMode\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.VxlanV6TunnelDestinationIPMode.Choice.EnumH\x00\x88\x01\x01\x12@\n\x07unicast\x18\x02 \x01(\x0b\x32*.otg.VxlanV6TunnelDestinationIPModeUnicastH\x01\x88\x01\x01\x12\x44\n\tmulticast\x18\x03 \x01(\x0b\x32,.otg.VxlanV6TunnelDestinationIPModeMulticastH\x02\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07unicast\x10\x01\x12\r\n\tmulticast\x10\x02\x42\t\n\x07_choiceB\n\n\x08_unicastB\x0c\n\n_multicast\"f\n%VxlanV4TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV4TunnelDestinationIPModeUnicastVtep\"f\n%VxlanV6TunnelDestinationIPModeUnicast\x12=\n\x05vteps\x18\x01 \x03(\x0b\x32..otg.VxlanV6TunnelDestinationIPModeUnicastVtep\"\x96\x01\n6VxlanTunnelDestinationIPModeUnicastArpSuppressionCache\x12\x1a\n\rremote_vm_mac\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0eremote_vm_ipv4\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x10\n\x0e_remote_vm_macB\x11\n\x0f_remote_vm_ipv4\"\xc1\x01\n)VxlanV4TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"\xc1\x01\n)VxlanV6TunnelDestinationIPModeUnicastVtep\x12 \n\x13remote_vtep_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12Z\n\x15\x61rp_suppression_cache\x18\x02 \x03(\x0b\x32;.otg.VxlanTunnelDestinationIPModeUnicastArpSuppressionCacheB\x16\n\x14_remote_vtep_address\"K\n\'VxlanV4TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"K\n\'VxlanV6TunnelDestinationIPModeMulticast\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_address\"\x91\x01\n\nDeviceRsvp\x12/\n\x0fipv4_interfaces\x18\x01 \x03(\x0b\x32\x16.otg.RsvpIpv4Interface\x12\x36\n\x13lsp_ipv4_interfaces\x18\x02 \x03(\x0b\x32\x19.otg.RsvpLspIpv4Interface\x12\x11\n\x04name\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x07\n\x05_name\"\x9d\x04\n\x11RsvpIpv4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12\x13\n\x0bneighbor_ip\x18\x02 \x01(\t\x12\x1e\n\x11label_space_start\x18\x03 \x01(\x05H\x00\x88\x01\x01\x12\x1c\n\x0flabel_space_end\x18\x04 \x01(\x05H\x01\x88\x01\x01\x12%\n\x18\x65nable_refresh_reduction\x18\x05 \x01(\x08H\x02\x88\x01\x01\x12%\n\x18summary_refresh_interval\x18\x06 \x01(\x05H\x03\x88\x01\x01\x12\x18\n\x0bsend_bundle\x18\x07 \x01(\x08H\x04\x88\x01\x01\x12\x1d\n\x10\x62undle_threshold\x18\x08 \x01(\x05H\x05\x88\x01\x01\x12\x19\n\x0c\x65nable_hello\x18\t \x01(\x08H\x06\x88\x01\x01\x12\x1b\n\x0ehello_interval\x18\n \x01(\x05H\x07\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x0b \x01(\x05H\x08\x88\x01\x01\x42\x14\n\x12_label_space_startB\x12\n\x10_label_space_endB\x1b\n\x19_enable_refresh_reductionB\x1b\n\x19_summary_refresh_intervalB\x0e\n\x0c_send_bundleB\x13\n\x11_bundle_thresholdB\x0f\n\r_enable_helloB\x11\n\x0f_hello_intervalB\x15\n\x13_timeout_multiplier\"\xdb\x01\n\x14RsvpLspIpv4Interface\x12\x11\n\tipv4_name\x18\x01 \x01(\t\x12L\n\x14p2p_egress_ipv4_lsps\x18\x02 \x01(\x0b\x32).otg.RsvpLspIpv4InterfaceP2PEgressIpv4LspH\x00\x88\x01\x01\x12I\n\x15p2p_ingress_ipv4_lsps\x18\x03 \x03(\x0b\x32*.otg.RsvpLspIpv4InterfaceP2PIngressIpv4LspB\x17\n\x15_p2p_egress_ipv4_lsps\"\xe3\x03\n$RsvpLspIpv4InterfaceP2PEgressIpv4Lsp\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x1d\n\x10refresh_interval\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x03 \x01(\x05H\x01\x88\x01\x01\x12_\n\x11reservation_style\x18\x04 \x01(\x0e\x32?.otg.RsvpLspIpv4InterfaceP2PEgressIpv4Lsp.ReservationStyle.EnumH\x02\x88\x01\x01\x12\x1f\n\x12\x65nable_fixed_label\x18\x05 \x01(\x08H\x03\x88\x01\x01\x12\x1e\n\x11\x66ixed_label_value\x18\x06 \x01(\x05H\x04\x88\x01\x01\x1a\\\n\x10ReservationStyle\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0fshared_explicit\x10\x01\x12\x10\n\x0c\x66ixed_filter\x10\x02\x12\x08\n\x04\x61uto\x10\x03\x42\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x14\n\x12_reservation_styleB\x15\n\x13_enable_fixed_labelB\x14\n\x12_fixed_label_value\"\xd2\x04\n%RsvpLspIpv4InterfaceP2PIngressIpv4Lsp\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x16\n\x0eremote_address\x18\x02 \x01(\t\x12\x16\n\ttunnel_id\x18\x03 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x04 \x01(\x05H\x01\x88\x01\x01\x12\x1d\n\x10refresh_interval\x18\x05 \x01(\x05H\x02\x88\x01\x01\x12\x1f\n\x12timeout_multiplier\x18\x06 \x01(\x05H\x03\x88\x01\x01\x12\x1a\n\rbackup_lsp_id\x18\x07 \x01(\x05H\x04\x88\x01\x01\x12!\n\x14lsp_switchover_delay\x18\x08 \x01(\x05H\x05\x88\x01\x01\x12\x39\n\x11session_attribute\x18\t \x01(\x0b\x32\x19.otg.RsvpSessionAttributeH\x06\x88\x01\x01\x12\"\n\x05tspec\x18\n \x01(\x0b\x32\x0e.otg.RsvpTspecH\x07\x88\x01\x01\x12/\n\x0c\x66\x61st_reroute\x18\x0b \x01(\x0b\x32\x14.otg.RsvpFastRerouteH\x08\x88\x01\x01\x12\x1e\n\x03\x65ro\x18\x0c \x01(\x0b\x32\x0c.otg.RsvpEroH\t\x88\x01\x01\x42\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x13\n\x11_refresh_intervalB\x15\n\x13_timeout_multiplierB\x10\n\x0e_backup_lsp_idB\x17\n\x15_lsp_switchover_delayB\x14\n\x12_session_attributeB\x08\n\x06_tspecB\x0f\n\r_fast_rerouteB\x06\n\x04_ero\"\x8d\x05\n\x14RsvpSessionAttribute\x12\'\n\x1a\x61uto_generate_session_name\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x19\n\x0csession_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1b\n\x0esetup_priority\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12%\n\x18local_protection_desired\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12$\n\x17label_recording_desired\x18\x06 \x01(\x08H\x05\x88\x01\x01\x12\x1d\n\x10se_style_desired\x18\x07 \x01(\x08H\x06\x88\x01\x01\x12)\n\x1c\x62\x61ndwidth_protection_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17node_protection_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x12=\n\x13resource_affinities\x18\n \x01(\x0b\x32\x1b.otg.RsvpResourceAffinitiesH\t\x88\x01\x01\x42\x1d\n\x1b_auto_generate_session_nameB\x0f\n\r_session_nameB\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x1b\n\x19_local_protection_desiredB\x1a\n\x18_label_recording_desiredB\x13\n\x11_se_style_desiredB\x1f\n\x1d_bandwidth_protection_desiredB\x1a\n\x18_node_protection_desiredB\x16\n\x14_resource_affinities\"\x96\x01\n\x16RsvpResourceAffinities\x12\x18\n\x0b\x65xclude_any\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_all\"\x9f\x02\n\tRsvpTspec\x12\x1e\n\x11token_bucket_rate\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x1e\n\x11token_bucket_size\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x1b\n\x0epeak_data_rate\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12!\n\x14minimum_policed_unit\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12!\n\x14maximum_policed_unit\x18\x05 \x01(\x05H\x04\x88\x01\x01\x42\x14\n\x12_token_bucket_rateB\x14\n\x12_token_bucket_sizeB\x11\n\x0f_peak_data_rateB\x17\n\x15_minimum_policed_unitB\x17\n\x15_maximum_policed_unit\"\xc7\x03\n\x0fRsvpFastReroute\x12\x1b\n\x0esetup_priority\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x1d\n\x10holding_priority\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x16\n\thop_limit\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x16\n\tbandwidth\x18\x04 \x01(\x02H\x03\x88\x01\x01\x12\x18\n\x0b\x65xclude_any\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x18\n\x0binclude_any\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x18\n\x0binclude_all\x18\x07 \x01(\tH\x06\x88\x01\x01\x12&\n\x19one_to_one_backup_desired\x18\x08 \x01(\x08H\x07\x88\x01\x01\x12$\n\x17\x66\x61\x63ility_backup_desired\x18\t \x01(\x08H\x08\x88\x01\x01\x42\x11\n\x0f_setup_priorityB\x13\n\x11_holding_priorityB\x0c\n\n_hop_limitB\x0c\n\n_bandwidthB\x0e\n\x0c_exclude_anyB\x0e\n\x0c_include_anyB\x0e\n\x0c_include_allB\x1c\n\x1a_one_to_one_backup_desiredB\x1a\n\x18_facility_backup_desired\"\xa8\x02\n\x07RsvpEro\x12\x45\n\x13prepend_neighbor_ip\x18\x01 \x01(\x0e\x32#.otg.RsvpEro.PrependNeighborIp.EnumH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12)\n\nsubobjects\x18\x03 \x03(\x0b\x32\x15.otg.RsvpEroSubobject\x1a\x65\n\x11PrependNeighborIp\"P\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x64ont_prepend\x10\x01\x12\x11\n\rprepend_loose\x10\x02\x12\x12\n\x0eprepend_strict\x10\x03\x42\x16\n\x14_prepend_neighbor_ipB\x10\n\x0e_prefix_length\"\x8c\x03\n\x10RsvpEroSubobject\x12\x32\n\x04type\x18\x01 \x01(\x0e\x32\x1f.otg.RsvpEroSubobject.Type.EnumH\x00\x88\x01\x01\x12\x19\n\x0cipv4_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x16\n\tas_number\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x39\n\x08hop_type\x18\x05 \x01(\x0e\x32\".otg.RsvpEroSubobject.HopType.EnumH\x04\x88\x01\x01\x1a\x38\n\x04Type\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\r\n\tas_number\x10\x02\x1a\x39\n\x07HopType\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06strict\x10\x01\x12\t\n\x05loose\x10\x02\x42\x07\n\x05_typeB\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x0c\n\n_as_numberB\x0b\n\t_hop_type\"\xbc\x02\n\x04\x46low\x12\x1c\n\x05tx_rx\x18\x01 \x01(\x0b\x32\r.otg.FlowTxRx\x12\x1f\n\x06packet\x18\x02 \x03(\x0b\x32\x0f.otg.FlowHeader\x12&\n\regress_packet\x18\t \x03(\x0b\x32\x0f.otg.FlowHeader\x12 \n\x04size\x18\x03 \x01(\x0b\x32\r.otg.FlowSizeH\x00\x88\x01\x01\x12 \n\x04rate\x18\x04 \x01(\x0b\x32\r.otg.FlowRateH\x01\x88\x01\x01\x12(\n\x08\x64uration\x18\x05 \x01(\x0b\x32\x11.otg.FlowDurationH\x02\x88\x01\x01\x12&\n\x07metrics\x18\x06 \x01(\x0b\x32\x10.otg.FlowMetricsH\x03\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\tB\x07\n\x05_sizeB\x07\n\x05_rateB\x0b\n\t_durationB\n\n\x08_metrics\"\xda\x01\n\x08\x46lowTxRx\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowTxRx.Choice.EnumH\x00\x88\x01\x01\x12 \n\x04port\x18\x02 \x01(\x0b\x32\r.otg.FlowPortH\x01\x88\x01\x01\x12$\n\x06\x64\x65vice\x18\x03 \x01(\x0b\x32\x0f.otg.FlowRouterH\x02\x88\x01\x01\x1a\x37\n\x06\x43hoice\"-\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\n\n\x06\x64\x65vice\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_portB\t\n\x07_device\"=\n\x08\x46lowPort\x12\x0f\n\x07tx_name\x18\x01 \x01(\t\x12\x14\n\x07rx_name\x18\x02 \x01(\tH\x00\x88\x01\x01\x42\n\n\x08_rx_name\"\xa2\x01\n\nFlowRouter\x12,\n\x04mode\x18\x01 \x01(\x0e\x32\x19.otg.FlowRouter.Mode.EnumH\x00\x88\x01\x01\x12\x10\n\x08tx_names\x18\x02 \x03(\t\x12\x10\n\x08rx_names\x18\x03 \x03(\t\x1a\x39\n\x04Mode\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04mesh\x10\x01\x12\x0e\n\none_to_one\x10\x02\x42\x07\n\x05_mode\"\xb1\t\n\nFlowHeader\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowHeader.Choice.EnumH\x00\x88\x01\x01\x12$\n\x06\x63ustom\x18\x02 \x01(\x0b\x32\x0f.otg.FlowCustomH\x01\x88\x01\x01\x12(\n\x08\x65thernet\x18\x03 \x01(\x0b\x32\x11.otg.FlowEthernetH\x02\x88\x01\x01\x12 \n\x04vlan\x18\x04 \x01(\x0b\x32\r.otg.FlowVlanH\x03\x88\x01\x01\x12\"\n\x05vxlan\x18\x05 \x01(\x0b\x32\x0e.otg.FlowVxlanH\x04\x88\x01\x01\x12 \n\x04ipv4\x18\x06 \x01(\x0b\x32\r.otg.FlowIpv4H\x05\x88\x01\x01\x12 \n\x04ipv6\x18\x07 \x01(\x0b\x32\r.otg.FlowIpv6H\x06\x88\x01\x01\x12(\n\x08pfcpause\x18\x08 \x01(\x0b\x32\x11.otg.FlowPfcPauseH\x07\x88\x01\x01\x12\x32\n\rethernetpause\x18\t \x01(\x0b\x32\x16.otg.FlowEthernetPauseH\x08\x88\x01\x01\x12\x1e\n\x03tcp\x18\n \x01(\x0b\x32\x0c.otg.FlowTcpH\t\x88\x01\x01\x12\x1e\n\x03udp\x18\x0b \x01(\x0b\x32\x0c.otg.FlowUdpH\n\x88\x01\x01\x12\x1e\n\x03gre\x18\x0c \x01(\x0b\x32\x0c.otg.FlowGreH\x0b\x88\x01\x01\x12\"\n\x05gtpv1\x18\r \x01(\x0b\x32\x0e.otg.FlowGtpv1H\x0c\x88\x01\x01\x12\"\n\x05gtpv2\x18\x0e \x01(\x0b\x32\x0e.otg.FlowGtpv2H\r\x88\x01\x01\x12\x1e\n\x03\x61rp\x18\x0f \x01(\x0b\x32\x0c.otg.FlowArpH\x0e\x88\x01\x01\x12 \n\x04icmp\x18\x10 \x01(\x0b\x32\r.otg.FlowIcmpH\x0f\x88\x01\x01\x12$\n\x06icmpv6\x18\x11 \x01(\x0b\x32\x0f.otg.FlowIcmpv6H\x10\x88\x01\x01\x12\x1e\n\x03ppp\x18\x12 \x01(\x0b\x32\x0c.otg.FlowPppH\x11\x88\x01\x01\x12$\n\x06igmpv1\x18\x13 \x01(\x0b\x32\x0f.otg.FlowIgmpv1H\x12\x88\x01\x01\x12 \n\x04mpls\x18\x14 \x01(\x0b\x32\r.otg.FlowMplsH\x13\x88\x01\x01\x1a\xf5\x01\n\x06\x43hoice\"\xea\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x63ustom\x10\x01\x12\x0c\n\x08\x65thernet\x10\x02\x12\x08\n\x04vlan\x10\x03\x12\t\n\x05vxlan\x10\x04\x12\x08\n\x04ipv4\x10\x05\x12\x08\n\x04ipv6\x10\x06\x12\x0c\n\x08pfcpause\x10\x07\x12\x11\n\rethernetpause\x10\x08\x12\x07\n\x03tcp\x10\t\x12\x07\n\x03udp\x10\n\x12\x07\n\x03gre\x10\x0b\x12\t\n\x05gtpv1\x10\x0c\x12\t\n\x05gtpv2\x10\r\x12\x07\n\x03\x61rp\x10\x0e\x12\x08\n\x04icmp\x10\x0f\x12\n\n\x06icmpv6\x10\x10\x12\x07\n\x03ppp\x10\x11\x12\n\n\x06igmpv1\x10\x12\x12\x08\n\x04mpls\x10\x13\x42\t\n\x07_choiceB\t\n\x07_customB\x0b\n\t_ethernetB\x07\n\x05_vlanB\x08\n\x06_vxlanB\x07\n\x05_ipv4B\x07\n\x05_ipv6B\x0b\n\t_pfcpauseB\x10\n\x0e_ethernetpauseB\x06\n\x04_tcpB\x06\n\x04_udpB\x06\n\x04_greB\x08\n\x06_gtpv1B\x08\n\x06_gtpv2B\x06\n\x04_arpB\x07\n\x05_icmpB\t\n\x07_icmpv6B\x06\n\x04_pppB\t\n\x07_igmpv1B\x07\n\x05_mpls\"J\n\nFlowCustom\x12\r\n\x05\x62ytes\x18\x01 \x01(\t\x12-\n\x0bmetric_tags\x18\x02 \x03(\x0b\x32\x18.otg.FlowCustomMetricTag\"c\n\x13\x46lowCustomMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x8f\x02\n\x0c\x46lowEthernet\x12-\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetDstH\x00\x88\x01\x01\x12-\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowEthernetSrcH\x01\x88\x01\x01\x12:\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowEthernetEtherTypeH\x02\x88\x01\x01\x12\x38\n\tpfc_queue\x18\x04 \x01(\x0b\x32 .otg.PatternFlowEthernetPfcQueueH\x03\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x0c\n\n_pfc_queue\"\xe5\x01\n\x08\x46lowVlan\x12\x33\n\x08priority\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowVlanPriorityH\x00\x88\x01\x01\x12)\n\x03\x63\x66i\x18\x02 \x01(\x0b\x32\x17.otg.PatternFlowVlanCfiH\x01\x88\x01\x01\x12\'\n\x02id\x18\x03 \x01(\x0b\x32\x16.otg.PatternFlowVlanIdH\x02\x88\x01\x01\x12+\n\x04tpid\x18\x04 \x01(\x0b\x32\x18.otg.PatternFlowVlanTpidH\x03\x88\x01\x01\x42\x0b\n\t_priorityB\x06\n\x04_cfiB\x05\n\x03_idB\x07\n\x05_tpid\"\x85\x02\n\tFlowVxlan\x12.\n\x05\x66lags\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowVxlanFlagsH\x00\x88\x01\x01\x12\x36\n\treserved0\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved0H\x01\x88\x01\x01\x12*\n\x03vni\x18\x03 \x01(\x0b\x32\x18.otg.PatternFlowVxlanVniH\x02\x88\x01\x01\x12\x36\n\treserved1\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowVxlanReserved1H\x03\x88\x01\x01\x42\x08\n\x06_flagsB\x0c\n\n_reserved0B\x06\n\x04_vniB\x0c\n\n_reserved1\"\xfa\x07\n\x08\x46lowIpv4\x12\x31\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4VersionH\x00\x88\x01\x01\x12<\n\rheader_length\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv4HeaderLengthH\x01\x88\x01\x01\x12,\n\x08priority\x18\x03 \x01(\x0b\x32\x15.otg.FlowIpv4PriorityH\x02\x88\x01\x01\x12:\n\x0ctotal_length\x18\x04 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TotalLengthH\x03\x88\x01\x01\x12?\n\x0eidentification\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIpv4IdentificationH\x04\x88\x01\x01\x12\x33\n\x08reserved\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4ReservedH\x05\x88\x01\x01\x12<\n\rdont_fragment\x18\x07 \x01(\x0b\x32 .otg.PatternFlowIpv4DontFragmentH\x06\x88\x01\x01\x12>\n\x0emore_fragments\x18\x08 \x01(\x0b\x32!.otg.PatternFlowIpv4MoreFragmentsH\x07\x88\x01\x01\x12@\n\x0f\x66ragment_offset\x18\t \x01(\x0b\x32\".otg.PatternFlowIpv4FragmentOffsetH\x08\x88\x01\x01\x12\x39\n\x0ctime_to_live\x18\n \x01(\x0b\x32\x1e.otg.PatternFlowIpv4TimeToLiveH\t\x88\x01\x01\x12\x33\n\x08protocol\x18\x0b \x01(\x0b\x32\x1c.otg.PatternFlowIpv4ProtocolH\n\x88\x01\x01\x12@\n\x0fheader_checksum\x18\x0c \x01(\x0b\x32\".otg.PatternFlowIpv4HeaderChecksumH\x0b\x88\x01\x01\x12)\n\x03src\x18\r \x01(\x0b\x32\x17.otg.PatternFlowIpv4SrcH\x0c\x88\x01\x01\x12)\n\x03\x64st\x18\x0e \x01(\x0b\x32\x17.otg.PatternFlowIpv4DstH\r\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_header_lengthB\x0b\n\t_priorityB\x0f\n\r_total_lengthB\x11\n\x0f_identificationB\x0b\n\t_reservedB\x10\n\x0e_dont_fragmentB\x11\n\x0f_more_fragmentsB\x12\n\x10_fragment_offsetB\x0f\n\r_time_to_liveB\x0b\n\t_protocolB\x12\n\x10_header_checksumB\x06\n\x04_srcB\x06\n\x04_dst\"\xaa\x02\n\x10\x46lowIpv4Priority\x12\x36\n\x06\x63hoice\x18\x01 \x01(\x0e\x32!.otg.FlowIpv4Priority.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\x03raw\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4PriorityRawH\x01\x88\x01\x01\x12\"\n\x03tos\x18\x03 \x01(\x0b\x32\x10.otg.FlowIpv4TosH\x02\x88\x01\x01\x12$\n\x04\x64scp\x18\x04 \x01(\x0b\x32\x11.otg.FlowIpv4DscpH\x03\x88\x01\x01\x1a=\n\x06\x43hoice\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03raw\x10\x01\x12\x07\n\x03tos\x10\x02\x12\x08\n\x04\x64scp\x10\x03\x42\t\n\x07_choiceB\x06\n\x04_rawB\x06\n\x04_tosB\x07\n\x05_dscp\"|\n\x0c\x46lowIpv4Dscp\x12-\n\x03phb\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpPhbH\x00\x88\x01\x01\x12-\n\x03\x65\x63n\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowIpv4DscpEcnH\x01\x88\x01\x01\x42\x06\n\x04_phbB\x06\n\x04_ecn\"\xb1\x03\n\x0b\x46lowIpv4Tos\x12:\n\nprecedence\x18\x01 \x01(\x0b\x32!.otg.PatternFlowIpv4TosPrecedenceH\x00\x88\x01\x01\x12\x30\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIpv4TosDelayH\x01\x88\x01\x01\x12:\n\nthroughput\x18\x03 \x01(\x0b\x32!.otg.PatternFlowIpv4TosThroughputH\x02\x88\x01\x01\x12<\n\x0breliability\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIpv4TosReliabilityH\x03\x88\x01\x01\x12\x36\n\x08monetary\x18\x05 \x01(\x0b\x32\x1f.otg.PatternFlowIpv4TosMonetaryH\x04\x88\x01\x01\x12\x32\n\x06unused\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowIpv4TosUnusedH\x05\x88\x01\x01\x42\r\n\x0b_precedenceB\x08\n\x06_delayB\r\n\x0b_throughputB\x0e\n\x0c_reliabilityB\x0b\n\t_monetaryB\t\n\x07_unused\"\xa7\x04\n\x08\x46lowIpv6\x12\x31\n\x07version\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowIpv6VersionH\x00\x88\x01\x01\x12<\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowIpv6TrafficClassH\x01\x88\x01\x01\x12\x36\n\nflow_label\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowIpv6FlowLabelH\x02\x88\x01\x01\x12>\n\x0epayload_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowIpv6PayloadLengthH\x03\x88\x01\x01\x12\x38\n\x0bnext_header\x18\x05 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6NextHeaderH\x04\x88\x01\x01\x12\x34\n\thop_limit\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowIpv6HopLimitH\x05\x88\x01\x01\x12)\n\x03src\x18\x07 \x01(\x0b\x32\x17.otg.PatternFlowIpv6SrcH\x06\x88\x01\x01\x12)\n\x03\x64st\x18\x08 \x01(\x0b\x32\x17.otg.PatternFlowIpv6DstH\x07\x88\x01\x01\x42\n\n\x08_versionB\x10\n\x0e_traffic_classB\r\n\x0b_flow_labelB\x11\n\x0f_payload_lengthB\x0e\n\x0c_next_headerB\x0c\n\n_hop_limitB\x06\n\x04_srcB\x06\n\x04_dst\"\x9d\x08\n\x0c\x46lowPfcPause\x12-\n\x03\x64st\x18\x01 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseDstH\x00\x88\x01\x01\x12-\n\x03src\x18\x02 \x01(\x0b\x32\x1b.otg.PatternFlowPfcPauseSrcH\x01\x88\x01\x01\x12:\n\nether_type\x18\x03 \x01(\x0b\x32!.otg.PatternFlowPfcPauseEtherTypeH\x02\x88\x01\x01\x12\x43\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32%.otg.PatternFlowPfcPauseControlOpCodeH\x03\x88\x01\x01\x12K\n\x13\x63lass_enable_vector\x18\x05 \x01(\x0b\x32).otg.PatternFlowPfcPauseClassEnableVectorH\x04\x88\x01\x01\x12?\n\rpause_class_0\x18\x06 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass0H\x05\x88\x01\x01\x12?\n\rpause_class_1\x18\x07 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass1H\x06\x88\x01\x01\x12?\n\rpause_class_2\x18\x08 \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass2H\x07\x88\x01\x01\x12?\n\rpause_class_3\x18\t \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass3H\x08\x88\x01\x01\x12?\n\rpause_class_4\x18\n \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass4H\t\x88\x01\x01\x12?\n\rpause_class_5\x18\x0b \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass5H\n\x88\x01\x01\x12?\n\rpause_class_6\x18\x0c \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass6H\x0b\x88\x01\x01\x12?\n\rpause_class_7\x18\r \x01(\x0b\x32#.otg.PatternFlowPfcPausePauseClass7H\x0c\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x12\n\x10_control_op_codeB\x16\n\x14_class_enable_vectorB\x10\n\x0e_pause_class_0B\x10\n\x0e_pause_class_1B\x10\n\x0e_pause_class_2B\x10\n\x0e_pause_class_3B\x10\n\x0e_pause_class_4B\x10\n\x0e_pause_class_5B\x10\n\x0e_pause_class_6B\x10\n\x0e_pause_class_7\"\xf8\x02\n\x11\x46lowEthernetPause\x12\x32\n\x03\x64st\x18\x01 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseDstH\x00\x88\x01\x01\x12\x32\n\x03src\x18\x02 \x01(\x0b\x32 .otg.PatternFlowEthernetPauseSrcH\x01\x88\x01\x01\x12?\n\nether_type\x18\x03 \x01(\x0b\x32&.otg.PatternFlowEthernetPauseEtherTypeH\x02\x88\x01\x01\x12H\n\x0f\x63ontrol_op_code\x18\x04 \x01(\x0b\x32*.otg.PatternFlowEthernetPauseControlOpCodeH\x03\x88\x01\x01\x12\x34\n\x04time\x18\x05 \x01(\x0b\x32!.otg.PatternFlowEthernetPauseTimeH\x04\x88\x01\x01\x42\x06\n\x04_dstB\x06\n\x04_srcB\r\n\x0b_ether_typeB\x12\n\x10_control_op_codeB\x07\n\x05_time\"\xac\x07\n\x07\x46lowTcp\x12\x31\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowTcpSrcPortH\x00\x88\x01\x01\x12\x31\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowTcpDstPortH\x01\x88\x01\x01\x12/\n\x07seq_num\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowTcpSeqNumH\x02\x88\x01\x01\x12/\n\x07\x61\x63k_num\x18\x04 \x01(\x0b\x32\x19.otg.PatternFlowTcpAckNumH\x03\x88\x01\x01\x12\x37\n\x0b\x64\x61ta_offset\x18\x05 \x01(\x0b\x32\x1d.otg.PatternFlowTcpDataOffsetH\x04\x88\x01\x01\x12-\n\x06\x65\x63n_ns\x18\x06 \x01(\x0b\x32\x18.otg.PatternFlowTcpEcnNsH\x05\x88\x01\x01\x12/\n\x07\x65\x63n_cwr\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowTcpEcnCwrH\x06\x88\x01\x01\x12\x31\n\x08\x65\x63n_echo\x18\x08 \x01(\x0b\x32\x1a.otg.PatternFlowTcpEcnEchoH\x07\x88\x01\x01\x12/\n\x07\x63tl_urg\x18\t \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlUrgH\x08\x88\x01\x01\x12/\n\x07\x63tl_ack\x18\n \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlAckH\t\x88\x01\x01\x12/\n\x07\x63tl_psh\x18\x0b \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlPshH\n\x88\x01\x01\x12/\n\x07\x63tl_rst\x18\x0c \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlRstH\x0b\x88\x01\x01\x12/\n\x07\x63tl_syn\x18\r \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlSynH\x0c\x88\x01\x01\x12/\n\x07\x63tl_fin\x18\x0e \x01(\x0b\x32\x19.otg.PatternFlowTcpCtlFinH\r\x88\x01\x01\x12.\n\x06window\x18\x0f \x01(\x0b\x32\x19.otg.PatternFlowTcpWindowH\x0e\x88\x01\x01\x42\x0b\n\t_src_portB\x0b\n\t_dst_portB\n\n\x08_seq_numB\n\n\x08_ack_numB\x0e\n\x0c_data_offsetB\t\n\x07_ecn_nsB\n\n\x08_ecn_cwrB\x0b\n\t_ecn_echoB\n\n\x08_ctl_urgB\n\n\x08_ctl_ackB\n\n\x08_ctl_pshB\n\n\x08_ctl_rstB\n\n\x08_ctl_synB\n\n\x08_ctl_finB\t\n\x07_window\"\x85\x02\n\x07\x46lowUdp\x12\x31\n\x08src_port\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowUdpSrcPortH\x00\x88\x01\x01\x12\x31\n\x08\x64st_port\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowUdpDstPortH\x01\x88\x01\x01\x12.\n\x06length\x18\x03 \x01(\x0b\x32\x19.otg.PatternFlowUdpLengthH\x02\x88\x01\x01\x12\x32\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowUdpChecksumH\x03\x88\x01\x01\x42\x0b\n\t_src_portB\x0b\n\t_dst_portB\t\n\x07_lengthB\x0b\n\t_checksum\"\xa9\x03\n\x07\x46lowGre\x12\x41\n\x10\x63hecksum_present\x18\x01 \x01(\x0b\x32\".otg.PatternFlowGreChecksumPresentH\x00\x88\x01\x01\x12\x34\n\treserved0\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved0H\x01\x88\x01\x01\x12\x30\n\x07version\x18\x03 \x01(\x0b\x32\x1a.otg.PatternFlowGreVersionH\x02\x88\x01\x01\x12\x32\n\x08protocol\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGreProtocolH\x03\x88\x01\x01\x12\x32\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\x1b.otg.PatternFlowGreChecksumH\x04\x88\x01\x01\x12\x34\n\treserved1\x18\x06 \x01(\x0b\x32\x1c.otg.PatternFlowGreReserved1H\x05\x88\x01\x01\x42\x13\n\x11_checksum_presentB\x0c\n\n_reserved0B\n\n\x08_versionB\x0b\n\t_protocolB\x0b\n\t_checksumB\x0c\n\n_reserved1\"\xb8\x07\n\tFlowGtpv1\x12\x32\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv1VersionH\x00\x88\x01\x01\x12=\n\rprotocol_type\x18\x02 \x01(\x0b\x32!.otg.PatternFlowGtpv1ProtocolTypeH\x01\x88\x01\x01\x12\x34\n\x08reserved\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv1ReservedH\x02\x88\x01\x01\x12/\n\x06\x65_flag\x18\x04 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1EFlagH\x03\x88\x01\x01\x12/\n\x06s_flag\x18\x05 \x01(\x0b\x32\x1a.otg.PatternFlowGtpv1SFlagH\x04\x88\x01\x01\x12\x31\n\x07pn_flag\x18\x06 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv1PnFlagH\x05\x88\x01\x01\x12;\n\x0cmessage_type\x18\x07 \x01(\x0b\x32 .otg.PatternFlowGtpv1MessageTypeH\x06\x88\x01\x01\x12?\n\x0emessage_length\x18\x08 \x01(\x0b\x32\".otg.PatternFlowGtpv1MessageLengthH\x07\x88\x01\x01\x12,\n\x04teid\x18\t \x01(\x0b\x32\x19.otg.PatternFlowGtpv1TeidH\x08\x88\x01\x01\x12?\n\x0esquence_number\x18\n \x01(\x0b\x32\".otg.PatternFlowGtpv1SquenceNumberH\t\x88\x01\x01\x12:\n\x0cn_pdu_number\x18\x0b \x01(\x0b\x32\x1f.otg.PatternFlowGtpv1NPduNumberH\n\x88\x01\x01\x12U\n\x1anext_extension_header_type\x18\x0c \x01(\x0b\x32,.otg.PatternFlowGtpv1NextExtensionHeaderTypeH\x0b\x88\x01\x01\x12\x30\n\x11\x65xtension_headers\x18\r \x03(\x0b\x32\x15.otg.FlowGtpExtensionB\n\n\x08_versionB\x10\n\x0e_protocol_typeB\x0b\n\t_reservedB\t\n\x07_e_flagB\t\n\x07_s_flagB\n\n\x08_pn_flagB\x0f\n\r_message_typeB\x11\n\x0f_message_lengthB\x07\n\x05_teidB\x11\n\x0f_squence_numberB\x0f\n\r_n_pdu_numberB\x1d\n\x1b_next_extension_header_type\"\xac\x02\n\x10\x46lowGtpExtension\x12J\n\x10\x65xtension_length\x18\x01 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionExtensionLengthH\x00\x88\x01\x01\x12;\n\x08\x63ontents\x18\x02 \x01(\x0b\x32$.otg.PatternFlowGtpExtensionContentsH\x01\x88\x01\x01\x12S\n\x15next_extension_header\x18\x03 \x01(\x0b\x32/.otg.PatternFlowGtpExtensionNextExtensionHeaderH\x02\x88\x01\x01\x42\x13\n\x11_extension_lengthB\x0b\n\t_contentsB\x18\n\x16_next_extension_header\"\x97\x05\n\tFlowGtpv2\x12\x32\n\x07version\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowGtpv2VersionH\x00\x88\x01\x01\x12\x45\n\x11piggybacking_flag\x18\x02 \x01(\x0b\x32%.otg.PatternFlowGtpv2PiggybackingFlagH\x01\x88\x01\x01\x12\x35\n\tteid_flag\x18\x03 \x01(\x0b\x32\x1d.otg.PatternFlowGtpv2TeidFlagH\x02\x88\x01\x01\x12\x30\n\x06spare1\x18\x04 \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare1H\x03\x88\x01\x01\x12;\n\x0cmessage_type\x18\x05 \x01(\x0b\x32 .otg.PatternFlowGtpv2MessageTypeH\x04\x88\x01\x01\x12?\n\x0emessage_length\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2MessageLengthH\x05\x88\x01\x01\x12,\n\x04teid\x18\x07 \x01(\x0b\x32\x19.otg.PatternFlowGtpv2TeidH\x06\x88\x01\x01\x12\x41\n\x0fsequence_number\x18\x08 \x01(\x0b\x32#.otg.PatternFlowGtpv2SequenceNumberH\x07\x88\x01\x01\x12\x30\n\x06spare2\x18\t \x01(\x0b\x32\x1b.otg.PatternFlowGtpv2Spare2H\x08\x88\x01\x01\x42\n\n\x08_versionB\x14\n\x12_piggybacking_flagB\x0c\n\n_teid_flagB\t\n\x07_spare1B\x0f\n\r_message_typeB\x11\n\x0f_message_lengthB\x07\n\x05_teidB\x12\n\x10_sequence_numberB\t\n\x07_spare2\"\xa1\x06\n\x07\x46lowArp\x12;\n\rhardware_type\x18\x01 \x01(\x0b\x32\x1f.otg.PatternFlowArpHardwareTypeH\x00\x88\x01\x01\x12;\n\rprotocol_type\x18\x02 \x01(\x0b\x32\x1f.otg.PatternFlowArpProtocolTypeH\x01\x88\x01\x01\x12?\n\x0fhardware_length\x18\x03 \x01(\x0b\x32!.otg.PatternFlowArpHardwareLengthH\x02\x88\x01\x01\x12?\n\x0fprotocol_length\x18\x04 \x01(\x0b\x32!.otg.PatternFlowArpProtocolLengthH\x03\x88\x01\x01\x12\x34\n\toperation\x18\x05 \x01(\x0b\x32\x1c.otg.PatternFlowArpOperationH\x04\x88\x01\x01\x12H\n\x14sender_hardware_addr\x18\x06 \x01(\x0b\x32%.otg.PatternFlowArpSenderHardwareAddrH\x05\x88\x01\x01\x12H\n\x14sender_protocol_addr\x18\x07 \x01(\x0b\x32%.otg.PatternFlowArpSenderProtocolAddrH\x06\x88\x01\x01\x12H\n\x14target_hardware_addr\x18\x08 \x01(\x0b\x32%.otg.PatternFlowArpTargetHardwareAddrH\x07\x88\x01\x01\x12H\n\x14target_protocol_addr\x18\t \x01(\x0b\x32%.otg.PatternFlowArpTargetProtocolAddrH\x08\x88\x01\x01\x42\x10\n\x0e_hardware_typeB\x10\n\x0e_protocol_typeB\x12\n\x10_hardware_lengthB\x12\n\x10_protocol_lengthB\x0c\n\n_operationB\x17\n\x15_sender_hardware_addrB\x17\n\x15_sender_protocol_addrB\x17\n\x15_target_hardware_addrB\x17\n\x15_target_protocol_addr\"\xa1\x01\n\x08\x46lowIcmp\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowIcmp.Choice.EnumH\x00\x88\x01\x01\x12$\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x11.otg.FlowIcmpEchoH\x01\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choiceB\x07\n\x05_echo\"\xee\x02\n\x0c\x46lowIcmpEcho\x12/\n\x04type\x18\x01 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoTypeH\x00\x88\x01\x01\x12/\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1c.otg.PatternFlowIcmpEchoCodeH\x01\x88\x01\x01\x12\x37\n\x08\x63hecksum\x18\x03 \x01(\x0b\x32 .otg.PatternFlowIcmpEchoChecksumH\x02\x88\x01\x01\x12;\n\nidentifier\x18\x04 \x01(\x0b\x32\".otg.PatternFlowIcmpEchoIdentifierH\x03\x88\x01\x01\x12\x44\n\x0fsequence_number\x18\x05 \x01(\x0b\x32&.otg.PatternFlowIcmpEchoSequenceNumberH\x04\x88\x01\x01\x42\x07\n\x05_typeB\x07\n\x05_codeB\x0b\n\t_checksumB\r\n\x0b_identifierB\x12\n\x10_sequence_number\"\xa7\x01\n\nFlowIcmpv6\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.FlowIcmpv6.Choice.EnumH\x00\x88\x01\x01\x12&\n\x04\x65\x63ho\x18\x02 \x01(\x0b\x32\x13.otg.FlowIcmpv6EchoH\x01\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x65\x63ho\x10\x01\x42\t\n\x07_choiceB\x07\n\x05_echo\"\xfa\x02\n\x0e\x46lowIcmpv6Echo\x12\x31\n\x04type\x18\x01 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoTypeH\x00\x88\x01\x01\x12\x31\n\x04\x63ode\x18\x02 \x01(\x0b\x32\x1e.otg.PatternFlowIcmpv6EchoCodeH\x01\x88\x01\x01\x12=\n\nidentifier\x18\x03 \x01(\x0b\x32$.otg.PatternFlowIcmpv6EchoIdentifierH\x02\x88\x01\x01\x12\x46\n\x0fsequence_number\x18\x04 \x01(\x0b\x32(.otg.PatternFlowIcmpv6EchoSequenceNumberH\x03\x88\x01\x01\x12\x39\n\x08\x63hecksum\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIcmpv6EchoChecksumH\x04\x88\x01\x01\x42\x07\n\x05_typeB\x07\n\x05_codeB\r\n\x0b_identifierB\x12\n\x10_sequence_numberB\x0b\n\t_checksum\"\xd4\x01\n\x07\x46lowPpp\x12\x30\n\x07\x61\x64\x64ress\x18\x01 \x01(\x0b\x32\x1a.otg.PatternFlowPppAddressH\x00\x88\x01\x01\x12\x30\n\x07\x63ontrol\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowPppControlH\x01\x88\x01\x01\x12;\n\rprotocol_type\x18\x03 \x01(\x0b\x32\x1f.otg.PatternFlowPppProtocolTypeH\x02\x88\x01\x01\x42\n\n\x08_addressB\n\n\x08_controlB\x10\n\x0e_protocol_type\"\xd9\x02\n\nFlowIgmpv1\x12\x33\n\x07version\x18\x01 \x01(\x0b\x32\x1d.otg.PatternFlowIgmpv1VersionH\x00\x88\x01\x01\x12-\n\x04type\x18\x02 \x01(\x0b\x32\x1a.otg.PatternFlowIgmpv1TypeH\x01\x88\x01\x01\x12\x31\n\x06unused\x18\x03 \x01(\x0b\x32\x1c.otg.PatternFlowIgmpv1UnusedH\x02\x88\x01\x01\x12\x35\n\x08\x63hecksum\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowIgmpv1ChecksumH\x03\x88\x01\x01\x12>\n\rgroup_address\x18\x05 \x01(\x0b\x32\".otg.PatternFlowIgmpv1GroupAddressH\x04\x88\x01\x01\x42\n\n\x08_versionB\x07\n\x05_typeB\t\n\x07_unusedB\x0b\n\t_checksumB\x10\n\x0e_group_address\"\xb4\x02\n\x08\x46lowMpls\x12-\n\x05label\x18\x01 \x01(\x0b\x32\x19.otg.PatternFlowMplsLabelH\x00\x88\x01\x01\x12<\n\rtraffic_class\x18\x02 \x01(\x0b\x32 .otg.PatternFlowMplsTrafficClassH\x01\x88\x01\x01\x12?\n\x0f\x62ottom_of_stack\x18\x03 \x01(\x0b\x32!.otg.PatternFlowMplsBottomOfStackH\x02\x88\x01\x01\x12\x39\n\x0ctime_to_live\x18\x04 \x01(\x0b\x32\x1e.otg.PatternFlowMplsTimeToLiveH\x03\x88\x01\x01\x42\x08\n\x06_labelB\x10\n\x0e_traffic_classB\x12\n\x10_bottom_of_stackB\x0f\n\r_time_to_live\"\x9f\x02\n\x08\x46lowSize\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowSize.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x66ixed\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12.\n\tincrement\x18\x03 \x01(\x0b\x32\x16.otg.FlowSizeIncrementH\x02\x88\x01\x01\x12(\n\x06random\x18\x04 \x01(\x0b\x32\x13.otg.FlowSizeRandomH\x03\x88\x01\x01\x1aG\n\x06\x43hoice\"=\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66ixed\x10\x01\x12\r\n\tincrement\x10\x02\x12\n\n\x06random\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_fixedB\x0c\n\n_incrementB\t\n\x07_random\"g\n\x11\x46lowSizeIncrement\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x10\n\x03\x65nd\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x11\n\x04step\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x06\n\x04_endB\x07\n\x05_step\"D\n\x0e\x46lowSizeRandom\x12\x10\n\x03min\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x10\n\x03max\x18\x02 \x01(\x05H\x01\x88\x01\x01\x42\x06\n\x04_minB\x06\n\x04_max\"\xd8\x02\n\x08\x46lowRate\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x19.otg.FlowRate.Choice.EnumH\x00\x88\x01\x01\x12\x10\n\x03pps\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x10\n\x03\x62ps\x18\x03 \x01(\x03H\x02\x88\x01\x01\x12\x11\n\x04kbps\x18\x04 \x01(\x03H\x03\x88\x01\x01\x12\x11\n\x04mbps\x18\x05 \x01(\x03H\x04\x88\x01\x01\x12\x11\n\x04gbps\x18\x06 \x01(\x05H\x05\x88\x01\x01\x12\x17\n\npercentage\x18\x07 \x01(\x02H\x06\x88\x01\x01\x1a\x61\n\x06\x43hoice\"W\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03pps\x10\x01\x12\x07\n\x03\x62ps\x10\x02\x12\x08\n\x04kbps\x10\x03\x12\x08\n\x04mbps\x10\x04\x12\x08\n\x04gbps\x10\x05\x12\x0e\n\npercentage\x10\x06\x42\t\n\x07_choiceB\x06\n\x04_ppsB\x06\n\x04_bpsB\x07\n\x05_kbpsB\x07\n\x05_mbpsB\x07\n\x05_gbpsB\r\n\x0b_percentage\"\xa6\x03\n\x0c\x46lowDuration\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.FlowDuration.Choice.EnumH\x00\x88\x01\x01\x12\x31\n\rfixed_packets\x18\x02 \x01(\x0b\x32\x15.otg.FlowFixedPacketsH\x01\x88\x01\x01\x12\x31\n\rfixed_seconds\x18\x03 \x01(\x0b\x32\x15.otg.FlowFixedSecondsH\x02\x88\x01\x01\x12\"\n\x05\x62urst\x18\x04 \x01(\x0b\x32\x0e.otg.FlowBurstH\x03\x88\x01\x01\x12,\n\ncontinuous\x18\x05 \x01(\x0b\x32\x13.otg.FlowContinuousH\x04\x88\x01\x01\x1a\x62\n\x06\x43hoice\"X\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rfixed_packets\x10\x01\x12\x11\n\rfixed_seconds\x10\x02\x12\t\n\x05\x62urst\x10\x03\x12\x0e\n\ncontinuous\x10\x04\x42\t\n\x07_choiceB\x10\n\x0e_fixed_packetsB\x10\n\x0e_fixed_secondsB\x08\n\x06_burstB\r\n\x0b_continuous\"X\n\x0e\x46lowContinuous\x12\x10\n\x03gap\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x02 \x01(\x0b\x32\x0e.otg.FlowDelayH\x01\x88\x01\x01\x42\x06\n\x04_gapB\x08\n\x06_delay\"\x8c\x02\n\tFlowDelay\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.FlowDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x02H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x02H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x02H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"|\n\x10\x46lowFixedPackets\x12\x14\n\x07packets\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayH\x02\x88\x01\x01\x42\n\n\x08_packetsB\x06\n\x04_gapB\x08\n\x06_delay\"|\n\x10\x46lowFixedSeconds\x12\x14\n\x07seconds\x18\x01 \x01(\x02H\x00\x88\x01\x01\x12\x10\n\x03gap\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\"\n\x05\x64\x65lay\x18\x03 \x01(\x0b\x32\x0e.otg.FlowDelayH\x02\x88\x01\x01\x42\n\n\x08_secondsB\x06\n\x04_gapB\x08\n\x06_delay\"\xb9\x01\n\tFlowBurst\x12\x13\n\x06\x62ursts\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x14\n\x07packets\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x10\n\x03gap\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12<\n\x0finter_burst_gap\x18\x04 \x01(\x0b\x32\x1e.otg.FlowDurationInterBurstGapH\x03\x88\x01\x01\x42\t\n\x07_burstsB\n\n\x08_packetsB\x06\n\x04_gapB\x12\n\x10_inter_burst_gap\"\xac\x02\n\x19\x46lowDurationInterBurstGap\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.FlowDurationInterBurstGap.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05\x62ytes\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x18\n\x0bnanoseconds\x18\x03 \x01(\x01H\x02\x88\x01\x01\x12\x19\n\x0cmicroseconds\x18\x04 \x01(\x01H\x03\x88\x01\x01\x1aO\n\x06\x43hoice\"E\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x62ytes\x10\x01\x12\x0f\n\x0bnanoseconds\x10\x02\x12\x10\n\x0cmicroseconds\x10\x03\x42\t\n\x07_choiceB\x08\n\x06_bytesB\x0e\n\x0c_nanosecondsB\x0f\n\r_microseconds\"\xac\x01\n\x0b\x46lowMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x11\n\x04loss\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x17\n\ntimestamps\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12-\n\x07latency\x18\x04 \x01(\x0b\x32\x17.otg.FlowLatencyMetricsH\x03\x88\x01\x01\x42\t\n\x07_enableB\x07\n\x05_lossB\r\n\x0b_timestampsB\n\n\x08_latency\"\xb8\x01\n\x12\x46lowLatencyMetrics\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x34\n\x04mode\x18\x02 \x01(\x0e\x32!.otg.FlowLatencyMetrics.Mode.EnumH\x01\x88\x01\x01\x1a\x43\n\x04Mode\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rstore_forward\x10\x01\x12\x0f\n\x0b\x63ut_through\x10\x02\x42\t\n\x07_enableB\x07\n\x05_mode\"\x8a\x02\n\x05\x45vent\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12!\n\x04link\x18\x02 \x01(\x0b\x32\x0e.otg.EventLinkH\x01\x88\x01\x01\x12\x39\n\x11rx_rate_threshold\x18\x03 \x01(\x0b\x32\x19.otg.EventRxRateThresholdH\x02\x88\x01\x01\x12G\n\x18route_advertise_withdraw\x18\x04 \x01(\x0b\x32 .otg.EventRouteAdvertiseWithdrawH\x03\x88\x01\x01\x42\t\n\x07_enableB\x07\n\x05_linkB\x14\n\x12_rx_rate_thresholdB\x1b\n\x19_route_advertise_withdraw\"\\\n\x14\x45ventRxRateThreshold\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x16\n\tthreshold\x18\x02 \x01(\x02H\x01\x88\x01\x01\x42\t\n\x07_enableB\x0c\n\n_threshold\"+\n\tEventLink\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"=\n\x1b\x45ventRouteAdvertiseWithdraw\x12\x13\n\x06\x65nable\x18\x01 \x01(\x08H\x00\x88\x01\x01\x42\t\n\x07_enable\"\xf5\x01\n\x0c\x45ventRequest\x12)\n\x04type\x18\x01 \x03(\x0e\x32\x1b.otg.EventRequest.Type.Enum\x12\x0e\n\x06source\x18\x02 \x03(\t\x1a\xa9\x01\n\x04Type\"\xa0\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tlink_down\x10\x01\x12\x0b\n\x07link_up\x10\x02\x12\x12\n\x0eroute_withdraw\x10\x03\x12\x13\n\x0froute_advertise\x10\x04\x12 \n\x1c\x66low_rx_rate_above_threshold\x10\x05\x12 \n\x1c\x66low_rx_rate_below_threshold\x10\x06\"r\n\x11\x45ventSubscription\x12&\n\x06\x65vents\x18\x01 \x01(\x0b\x32\x11.otg.EventRequestH\x00\x88\x01\x01\x12\x19\n\x0c\x63\x61llback_url\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\t\n\x07_eventsB\x0f\n\r_callback_url\"\xd1\x02\n\x04Lldp\x12\'\n\nconnection\x18\x01 \x01(\x0b\x32\x13.otg.LldpConnection\x12+\n\nchassis_id\x18\x02 \x01(\x0b\x32\x12.otg.LldpChassisIdH\x00\x88\x01\x01\x12%\n\x07port_id\x18\x03 \x01(\x0b\x32\x0f.otg.LldpPortIdH\x01\x88\x01\x01\x12-\n\x0bsystem_name\x18\x04 \x01(\x0b\x32\x13.otg.LldpSystemNameH\x02\x88\x01\x01\x12\x16\n\thold_time\x18\x05 \x01(\x05H\x03\x88\x01\x01\x12#\n\x16\x61\x64vertisement_interval\x18\x06 \x01(\x05H\x04\x88\x01\x01\x12\x0c\n\x04name\x18\x07 \x01(\tB\r\n\x0b_chassis_idB\n\n\x08_port_idB\x0e\n\x0c_system_nameB\x0c\n\n_hold_timeB\x19\n\x17_advertisement_interval\"\xa9\x01\n\x0eLldpConnection\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpConnection.Choice.EnumH\x00\x88\x01\x01\x12\x16\n\tport_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x1a\x30\n\x06\x43hoice\"&\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tport_name\x10\x01\x42\t\n\x07_choiceB\x0c\n\n_port_name\"\xfe\x02\n\rLldpChassisId\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.LldpChassisId.Choice.EnumH\x00\x88\x01\x01\x12<\n\x13mac_address_subtype\x18\x02 \x01(\x0b\x32\x1a.otg.LldpChassisMacSubTypeH\x01\x88\x01\x01\x12#\n\x16interface_name_subtype\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x03\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x16\n\x14_mac_address_subtypeB\x19\n\x17_interface_name_subtypeB\x10\n\x0e_local_subtype\"\xff\x02\n\nLldpPortId\x12\x30\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1b.otg.LldpPortId.Choice.EnumH\x00\x88\x01\x01\x12 \n\x13mac_address_subtype\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x46\n\x16interface_name_subtype\x18\x03 \x01(\x0b\x32!.otg.LldpPortInterfaceNameSubTypeH\x02\x88\x01\x01\x12\x1a\n\rlocal_subtype\x18\x04 \x01(\tH\x03\x88\x01\x01\x1ai\n\x06\x43hoice\"_\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x17\n\x13mac_address_subtype\x10\x01\x12\x1a\n\x16interface_name_subtype\x10\x02\x12\x11\n\rlocal_subtype\x10\x03\x42\t\n\x07_choiceB\x16\n\x14_mac_address_subtypeB\x19\n\x17_interface_name_subtypeB\x10\n\x0e_local_subtype\"\xd1\x01\n\x15LldpChassisMacSubType\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.LldpChassisMacSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xdf\x01\n\x1cLldpPortInterfaceNameSubType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.LldpPortInterfaceNameSubType.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\xc3\x01\n\x0eLldpSystemName\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.LldpSystemName.Choice.EnumH\x00\x88\x01\x01\x12\x11\n\x04\x61uto\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05value\x18\x03 \x01(\tH\x02\x88\x01\x01\x1a\x36\n\x06\x43hoice\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04\x61uto\x10\x01\x12\t\n\x05value\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_autoB\x08\n\x06_value\"\x96\x01\n\x05\x45rror\x12\x0c\n\x04\x63ode\x18\x01 \x01(\x05\x12\'\n\x04kind\x18\x02 \x01(\x0e\x32\x14.otg.Error.Kind.EnumH\x00\x88\x01\x01\x12\x0e\n\x06\x65rrors\x18\x03 \x03(\t\x1a=\n\x04Kind\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nvalidation\x10\x01\x12\x0c\n\x08internal\x10\x02\x42\x07\n\x05_kind\"\x1b\n\x07Warning\x12\x10\n\x08warnings\x18\x01 \x03(\t\"\xab\x01\n\x0c\x43onfigUpdate\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ConfigUpdate.Choice.EnumH\x00\x88\x01\x01\x12$\n\x05\x66lows\x18\x02 \x01(\x0b\x32\x10.otg.FlowsUpdateH\x01\x88\x01\x01\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x66lows\x10\x01\x42\t\n\x07_choiceB\x08\n\x06_flows\"\xa2\x01\n\x0b\x46lowsUpdate\x12;\n\x0eproperty_names\x18\x01 \x03(\x0e\x32#.otg.FlowsUpdate.PropertyNames.Enum\x12\x18\n\x05\x66lows\x18\x02 \x03(\x0b\x32\t.otg.Flow\x1a<\n\rPropertyNames\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04rate\x10\x01\x12\x08\n\x04size\x10\x02\"\x9e\x02\n\x0c\x43ontrolState\x12-\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.ControlState.Choice.Enum\x12!\n\x04port\x18\x02 \x01(\x0b\x32\x0e.otg.StatePortH\x00\x88\x01\x01\x12)\n\x08protocol\x18\x03 \x01(\x0b\x32\x12.otg.StateProtocolH\x01\x88\x01\x01\x12\'\n\x07traffic\x18\x04 \x01(\x0b\x32\x11.otg.StateTrafficH\x02\x88\x01\x01\x1a\x46\n\x06\x43hoice\"<\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x0c\n\x08protocol\x10\x02\x12\x0b\n\x07traffic\x10\x03\x42\x07\n\x05_portB\x0b\n\t_protocolB\n\n\x08_traffic\"\xda\x01\n\tStatePort\x12*\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1a.otg.StatePort.Choice.Enum\x12%\n\x04link\x18\x02 \x01(\x0b\x32\x12.otg.StatePortLinkH\x00\x88\x01\x01\x12+\n\x07\x63\x61pture\x18\x03 \x01(\x0b\x32\x15.otg.StatePortCaptureH\x01\x88\x01\x01\x1a\x38\n\x06\x43hoice\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04link\x10\x01\x12\x0b\n\x07\x63\x61pture\x10\x02\x42\x07\n\x05_linkB\n\n\x08_capture\"\xc0\x01\n\x0cStateTraffic\x12-\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1d.otg.StateTraffic.Choice.Enum\x12\x39\n\rflow_transmit\x18\x02 \x01(\x0b\x32\x1d.otg.StateTrafficFlowTransmitH\x00\x88\x01\x01\x1a\x34\n\x06\x43hoice\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rflow_transmit\x10\x01\x42\x10\n\x0e_flow_transmit\"\x9c\x02\n\rStateProtocol\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StateProtocol.Choice.Enum\x12\'\n\x03\x61ll\x18\x02 \x01(\x0b\x32\x15.otg.StateProtocolAllH\x00\x88\x01\x01\x12+\n\x05route\x18\x03 \x01(\x0b\x32\x17.otg.StateProtocolRouteH\x01\x88\x01\x01\x12)\n\x04lacp\x18\x04 \x01(\x0b\x32\x16.otg.StateProtocolLacpH\x02\x88\x01\x01\x1a?\n\x06\x43hoice\"5\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03\x61ll\x10\x01\x12\t\n\x05route\x10\x02\x12\x08\n\x04lacp\x10\x03\x42\x06\n\x04_allB\x08\n\x06_routeB\x07\n\x05_lacp\"}\n\tLinkState\x12\x12\n\nport_names\x18\x01 \x03(\t\x12(\n\x05state\x18\x02 \x01(\x0e\x32\x19.otg.LinkState.State.Enum\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\"\x9f\x01\n\rTransmitState\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12,\n\x05state\x18\x02 \x01(\x0e\x32\x1d.otg.TransmitState.State.Enum\x1aL\n\x05State\"C\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\x12\t\n\x05pause\x10\x03\x12\n\n\x06resume\x10\x04\"\x86\x01\n\x0c\x43\x61ptureState\x12\x12\n\nport_names\x18\x01 \x03(\t\x12+\n\x05state\x18\x02 \x01(\x0e\x32\x1c.otg.CaptureState.State.Enum\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\"\x85\x01\n\nRouteState\x12\r\n\x05names\x18\x01 \x03(\t\x12)\n\x05state\x18\x02 \x01(\x0e\x32\x1a.otg.RouteState.State.Enum\x1a=\n\x05State\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08withdraw\x10\x01\x12\r\n\tadvertise\x10\x02\"t\n\rProtocolState\x12,\n\x05state\x18\x01 \x01(\x0e\x32\x1d.otg.ProtocolState.State.Enum\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\"\xd1\x01\n\x0b\x44\x65viceState\x12\x31\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1c.otg.DeviceState.Choice.EnumH\x00\x88\x01\x01\x12\x34\n\x11lacp_member_state\x18\x02 \x01(\x0b\x32\x14.otg.LacpMemberStateH\x01\x88\x01\x01\x1a\x38\n\x06\x43hoice\".\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x15\n\x11lacp_member_state\x10\x01\x42\t\n\x07_choiceB\x14\n\x12_lacp_member_state\"\x85\x01\n\rStatePortLink\x12\x12\n\nport_names\x18\x01 \x03(\t\x12,\n\x05state\x18\x02 \x01(\x0e\x32\x1d.otg.StatePortLink.State.Enum\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\"\x8e\x01\n\x10StatePortCapture\x12\x12\n\nport_names\x18\x01 \x03(\t\x12/\n\x05state\x18\x02 \x01(\x0e\x32 .otg.StatePortCapture.State.Enum\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\"\xc4\x01\n\x18StateTrafficFlowTransmit\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12<\n\x05state\x18\x02 \x01(\x0e\x32(.otg.StateTrafficFlowTransmit.State.EnumH\x00\x88\x01\x01\x1aL\n\x05State\"C\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\x12\t\n\x05pause\x10\x03\x12\n\n\x06resume\x10\x04\x42\x08\n\x06_state\"z\n\x10StateProtocolAll\x12/\n\x05state\x18\x01 \x01(\x0e\x32 .otg.StateProtocolAll.State.Enum\x1a\x35\n\x05State\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05start\x10\x01\x12\x08\n\x04stop\x10\x02\"\x95\x01\n\x12StateProtocolRoute\x12\r\n\x05names\x18\x01 \x03(\t\x12\x31\n\x05state\x18\x02 \x01(\x0e\x32\".otg.StateProtocolRoute.State.Enum\x1a=\n\x05State\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08withdraw\x10\x01\x12\r\n\tadvertise\x10\x02\"\xb0\x01\n\x11StateProtocolLacp\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.StateProtocolLacp.Choice.Enum\x12/\n\x05\x61\x64min\x18\x02 \x01(\x0b\x32\x1b.otg.StateProtocolLacpAdminH\x00\x88\x01\x01\x1a,\n\x06\x43hoice\"\"\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x61\x64min\x10\x01\x42\x08\n\x06_admin\"\xac\x01\n\x16StateProtocolLacpAdmin\x12\x18\n\x10lag_member_names\x18\x01 \x03(\t\x12:\n\x05state\x18\x02 \x01(\x0e\x32&.otg.StateProtocolLacpAdmin.State.EnumH\x00\x88\x01\x01\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x08\n\x06_state\"\x94\x01\n\x0fLacpMemberState\x12\x1d\n\x15lag_member_port_names\x18\x01 \x03(\t\x12.\n\x05state\x18\x02 \x01(\x0e\x32\x1f.otg.LacpMemberState.State.Enum\x1a\x32\n\x05State\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\"\xa9\x01\n\rControlAction\x12.\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.ControlAction.Choice.Enum\x12*\n\x08protocol\x18\x02 \x01(\x0b\x32\x13.otg.ActionProtocolH\x00\x88\x01\x01\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\x0b\n\t_protocol\"b\n\x15\x43ontrolActionResponse\x12\x10\n\x08warnings\x18\x01 \x03(\t\x12*\n\x08response\x18\x02 \x01(\x0b\x32\x13.otg.ActionResponseH\x00\x88\x01\x01\x42\x0b\n\t_response\"\xb3\x01\n\x0e\x41\x63tionResponse\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionResponse.Choice.Enum\x12\x32\n\x08protocol\x18\x02 \x01(\x0b\x32\x1b.otg.ActionResponseProtocolH\x00\x88\x01\x01\x1a/\n\x06\x43hoice\"%\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08protocol\x10\x01\x42\x0b\n\t_protocol\"\x9d\x02\n\x0e\x41\x63tionProtocol\x12/\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.ActionProtocol.Choice.Enum\x12*\n\x04ipv4\x18\x02 \x01(\x0b\x32\x17.otg.ActionProtocolIpv4H\x00\x88\x01\x01\x12*\n\x04ipv6\x18\x03 \x01(\x0b\x32\x17.otg.ActionProtocolIpv6H\x01\x88\x01\x01\x12(\n\x03\x62gp\x18\x04 \x01(\x0b\x32\x16.otg.ActionProtocolBgpH\x02\x88\x01\x01\x1a>\n\x06\x43hoice\"4\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x62gp\x10\x03\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6B\x06\n\x04_bgp\"\x82\x02\n\x16\x41\x63tionResponseProtocol\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.ActionResponseProtocol.Choice.Enum\x12\x32\n\x04ipv4\x18\x02 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv4H\x00\x88\x01\x01\x12\x32\n\x04ipv6\x18\x03 \x01(\x0b\x32\x1f.otg.ActionResponseProtocolIpv6H\x01\x88\x01\x01\x1a\x35\n\x06\x43hoice\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\x07\n\x05_ipv4B\x07\n\x05_ipv6\"\xaf\x01\n\x12\x41\x63tionProtocolIpv4\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv4.Choice.Enum\x12.\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv4PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"\xc7\x01\n\x1a\x41\x63tionResponseProtocolIpv4\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv4.Choice.Enum\x12\x36\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv4PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"N\n\x16\x41\x63tionProtocolIpv4Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv4PingRequest\"c\n\x1d\x41\x63tionProtocolIpv4PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv4Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv4PingResponse\"\xd1\x01\n&ActionResponseProtocolIpv4PingResponse\x12\x10\n\x08src_name\x18\x01 \x01(\t\x12\x0e\n\x06\x64st_ip\x18\x02 \x01(\t\x12G\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv4PingResponse.Result.Enum\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\"\xaf\x01\n\x12\x41\x63tionProtocolIpv6\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.ActionProtocolIpv6.Choice.Enum\x12.\n\x04ping\x18\x02 \x01(\x0b\x32\x1b.otg.ActionProtocolIpv6PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"\xc7\x01\n\x1a\x41\x63tionResponseProtocolIpv6\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.ActionResponseProtocolIpv6.Choice.Enum\x12\x36\n\x04ping\x18\x02 \x01(\x0b\x32#.otg.ActionResponseProtocolIpv6PingH\x00\x88\x01\x01\x1a+\n\x06\x43hoice\"!\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ping\x10\x01\x42\x07\n\x05_ping\"N\n\x16\x41\x63tionProtocolIpv6Ping\x12\x34\n\x08requests\x18\x01 \x03(\x0b\x32\".otg.ActionProtocolIpv6PingRequest\"c\n\x1d\x41\x63tionProtocolIpv6PingRequest\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"`\n\x1e\x41\x63tionResponseProtocolIpv6Ping\x12>\n\tresponses\x18\x01 \x03(\x0b\x32+.otg.ActionResponseProtocolIpv6PingResponse\"\xd1\x01\n&ActionResponseProtocolIpv6PingResponse\x12\x10\n\x08src_name\x18\x01 \x01(\t\x12\x0e\n\x06\x64st_ip\x18\x02 \x01(\t\x12G\n\x06result\x18\x03 \x01(\x0e\x32\x37.otg.ActionResponseProtocolIpv6PingResponse.Result.Enum\x1a<\n\x06Result\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tsucceeded\x10\x01\x12\n\n\x06\x66\x61iled\x10\x02\"\xe0\x02\n\x11\x41\x63tionProtocolBgp\x12\x32\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.ActionProtocolBgp.Choice.Enum\x12=\n\x0cnotification\x18\x02 \x01(\x0b\x32\".otg.ActionProtocolBgpNotificationH\x00\x88\x01\x01\x12U\n\x19initiate_graceful_restart\x18\x03 \x01(\x0b\x32-.otg.ActionProtocolBgpInitiateGracefulRestartH\x01\x88\x01\x01\x1aR\n\x06\x43hoice\"H\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cnotification\x10\x01\x12\x1d\n\x19initiate_graceful_restart\x10\x02\x42\x0f\n\r_notificationB\x1c\n\x1a_initiate_graceful_restart\"\x8c\x07\n\x1d\x41\x63tionProtocolBgpNotification\x12\r\n\x05names\x18\x01 \x03(\t\x12\x43\n\x06\x63hoice\x18\x02 \x01(\x0e\x32..otg.ActionProtocolBgpNotification.Choice.EnumH\x00\x88\x01\x01\x12,\n\x05\x63\x65\x61se\x18\x03 \x01(\x0b\x32\x18.otg.DeviceBgpCeaseErrorH\x01\x88\x01\x01\x12\x43\n\x14message_header_error\x18\x04 \x01(\x0b\x32 .otg.DeviceBgpMessageHeaderErrorH\x02\x88\x01\x01\x12?\n\x12open_message_error\x18\x05 \x01(\x0b\x32\x1e.otg.DeviceBgpOpenMessageErrorH\x03\x88\x01\x01\x12\x43\n\x14update_message_error\x18\x06 \x01(\x0b\x32 .otg.DeviceBgpUpdateMessageErrorH\x04\x88\x01\x01\x12?\n\x12hold_timer_expired\x18\x07 \x01(\x0b\x32\x1e.otg.DeviceBgpHoldTimerExpiredH\x05\x88\x01\x01\x12N\n\x1a\x66inite_state_machine_error\x18\x08 \x01(\x0b\x32%.otg.DeviceBgpFiniteStateMachineErrorH\x06\x88\x01\x01\x12.\n\x06\x63ustom\x18\t \x01(\x0b\x32\x19.otg.DeviceBgpCustomErrorH\x07\x88\x01\x01\x1a\xbd\x01\n\x06\x43hoice\"\xb2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05\x63\x65\x61se\x10\x01\x12\x18\n\x14message_header_error\x10\x02\x12\x16\n\x12open_message_error\x10\x03\x12\x18\n\x14update_message_error\x10\x04\x12\x16\n\x12hold_timer_expired\x10\x05\x12\x1e\n\x1a\x66inite_state_machine_error\x10\x06\x12\n\n\x06\x63ustom\x10\x07\x42\t\n\x07_choiceB\x08\n\x06_ceaseB\x17\n\x15_message_header_errorB\x15\n\x13_open_message_errorB\x17\n\x15_update_message_errorB\x15\n\x13_hold_timer_expiredB\x1d\n\x1b_finite_state_machine_errorB\t\n\x07_custom\"l\n(ActionProtocolBgpInitiateGracefulRestart\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12\x1a\n\rrestart_delay\x18\x02 \x01(\rH\x00\x88\x01\x01\x42\x10\n\x0e_restart_delay\"\xca\x01\n\x04Ping\x12*\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x15.otg.Ping.Choice.EnumH\x00\x88\x01\x01\x12 \n\x04ipv4\x18\x02 \x01(\x0b\x32\r.otg.PingIpv4H\x01\x88\x01\x01\x12 \n\x04ipv6\x18\x03 \x01(\x0b\x32\r.otg.PingIpv6H\x02\x88\x01\x01\x1a\x35\n\x06\x43hoice\"+\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x42\t\n\x07_choiceB\x07\n\x05_ipv4B\x07\n\x05_ipv6\"N\n\x08PingIpv4\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"N\n\x08PingIpv6\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x42\x0b\n\t_src_nameB\t\n\x07_dst_ip\"+\n\x0bPingRequest\x12\x1c\n\tendpoints\x18\x01 \x03(\x0b\x32\t.otg.Ping\"0\n\x0cPingResponse\x12 \n\tresponses\x18\x01 \x03(\x0b\x32\r.otg.Response\"\xc6\x01\n\x08Response\x12\x15\n\x08src_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x13\n\x06\x64st_ip\x18\x02 \x01(\tH\x01\x88\x01\x01\x12.\n\x06result\x18\x03 \x01(\x0e\x32\x19.otg.Response.Result.EnumH\x02\x88\x01\x01\x1a;\n\x06Result\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07success\x10\x01\x12\x0b\n\x07\x66\x61ilure\x10\x02\x42\x0b\n\t_src_nameB\t\n\x07_dst_ipB\t\n\x07_result\"\xaf\x05\n\x0eMetricsRequest\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.MetricsRequest.Choice.EnumH\x00\x88\x01\x01\x12*\n\x04port\x18\x02 \x01(\x0b\x32\x17.otg.PortMetricsRequestH\x01\x88\x01\x01\x12*\n\x04\x66low\x18\x03 \x01(\x0b\x32\x17.otg.FlowMetricsRequestH\x02\x88\x01\x01\x12,\n\x05\x62gpv4\x18\x04 \x01(\x0b\x32\x18.otg.Bgpv4MetricsRequestH\x03\x88\x01\x01\x12,\n\x05\x62gpv6\x18\x05 \x01(\x0b\x32\x18.otg.Bgpv6MetricsRequestH\x04\x88\x01\x01\x12*\n\x04isis\x18\x06 \x01(\x0b\x32\x17.otg.IsisMetricsRequestH\x05\x88\x01\x01\x12(\n\x03lag\x18\x07 \x01(\x0b\x32\x16.otg.LagMetricsRequestH\x06\x88\x01\x01\x12*\n\x04lacp\x18\x08 \x01(\x0b\x32\x17.otg.LacpMetricsRequestH\x07\x88\x01\x01\x12*\n\x04lldp\x18\t \x01(\x0b\x32\x17.otg.LldpMetricsRequestH\x08\x88\x01\x01\x12*\n\x04rsvp\x18\n \x01(\x0b\x32\x17.otg.RsvpMetricsRequestH\t\x88\x01\x01\x1a|\n\x06\x43hoice\"r\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04port\x10\x01\x12\x08\n\x04\x66low\x10\x02\x12\t\n\x05\x62gpv4\x10\x03\x12\t\n\x05\x62gpv6\x10\x04\x12\x08\n\x04isis\x10\x05\x12\x07\n\x03lag\x10\x06\x12\x08\n\x04lacp\x10\x07\x12\x08\n\x04lldp\x10\x08\x12\x08\n\x04rsvp\x10\tB\t\n\x07_choiceB\x07\n\x05_portB\x07\n\x05_flowB\x08\n\x06_bgpv4B\x08\n\x06_bgpv6B\x07\n\x05_isisB\x06\n\x04_lagB\x07\n\x05_lacpB\x07\n\x05_lldpB\x07\n\x05_rsvp\"\xfc\x04\n\x0fMetricsResponse\x12\x35\n\x06\x63hoice\x18\x01 \x01(\x0e\x32 .otg.MetricsResponse.Choice.EnumH\x00\x88\x01\x01\x12%\n\x0cport_metrics\x18\x02 \x03(\x0b\x32\x0f.otg.PortMetric\x12%\n\x0c\x66low_metrics\x18\x03 \x03(\x0b\x32\x0f.otg.FlowMetric\x12\'\n\rbgpv4_metrics\x18\x04 \x03(\x0b\x32\x10.otg.Bgpv4Metric\x12\'\n\rbgpv6_metrics\x18\x05 \x03(\x0b\x32\x10.otg.Bgpv6Metric\x12%\n\x0cisis_metrics\x18\x06 \x03(\x0b\x32\x0f.otg.IsisMetric\x12#\n\x0blag_metrics\x18\x07 \x03(\x0b\x32\x0e.otg.LagMetric\x12%\n\x0clacp_metrics\x18\x08 \x03(\x0b\x32\x0f.otg.LacpMetric\x12%\n\x0clldp_metrics\x18\t \x03(\x0b\x32\x0f.otg.LldpMetric\x12%\n\x0crsvp_metrics\x18\n \x03(\x0b\x32\x0f.otg.RsvpMetric\x1a\xc5\x01\n\x06\x43hoice\"\xba\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0c\x66low_metrics\x10\x01\x12\x10\n\x0cport_metrics\x10\x02\x12\x11\n\rbgpv4_metrics\x10\x03\x12\x11\n\rbgpv6_metrics\x10\x04\x12\x10\n\x0cisis_metrics\x10\x05\x12\x0f\n\x0blag_metrics\x10\x06\x12\x10\n\x0clacp_metrics\x10\x07\x12\x10\n\x0clldp_metrics\x10\x08\x12\x10\n\x0crsvp_metrics\x10\tB\t\n\x07_choice\"\xcd\x02\n\x12PortMetricsRequest\x12\x12\n\nport_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.PortMetricsRequest.ColumnNames.Enum\x1a\xe2\x01\n\x0b\x43olumnNames\"\xd2\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\x0c\n\x08location\x10\x02\x12\x08\n\x04link\x10\x03\x12\x0b\n\x07\x63\x61pture\x10\x04\x12\r\n\tframes_tx\x10\x05\x12\r\n\tframes_rx\x10\x06\x12\x0c\n\x08\x62ytes_tx\x10\x07\x12\x0c\n\x08\x62ytes_rx\x10\x08\x12\x12\n\x0e\x66rames_tx_rate\x10\t\x12\x12\n\x0e\x66rames_rx_rate\x10\n\x12\x11\n\rbytes_tx_rate\x10\x0b\x12\x11\n\rbytes_rx_rate\x10\x0c\"\x86\x06\n\nPortMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x15\n\x08location\x18\x02 \x01(\tH\x01\x88\x01\x01\x12,\n\x04link\x18\x03 \x01(\x0e\x32\x19.otg.PortMetric.Link.EnumH\x02\x88\x01\x01\x12\x32\n\x07\x63\x61pture\x18\x04 \x01(\x0e\x32\x1c.otg.PortMetric.Capture.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x05 \x01(\x03H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x06 \x01(\x03H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x07 \x01(\x03H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x08 \x01(\x03H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0c \x01(\x02H\x0b\x88\x01\x01\x12\x34\n\x08transmit\x18\r \x01(\x0e\x32\x1d.otg.PortMetric.Transmit.EnumH\x0c\x88\x01\x01\x1a\x31\n\x04Link\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a<\n\x07\x43\x61pture\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x1a=\n\x08Transmit\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x42\x07\n\x05_nameB\x0b\n\t_locationB\x07\n\x05_linkB\n\n\x08_captureB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rateB\x0b\n\t_transmit\"\xd0\x02\n\x12\x46lowMetricsRequest\x12\x12\n\nflow_names\x18\x01 \x03(\t\x12>\n\x0cmetric_names\x18\x03 \x03(\x0e\x32(.otg.FlowMetricsRequest.MetricNames.Enum\x12\x39\n\x0etagged_metrics\x18\x04 \x01(\x0b\x32\x1c.otg.FlowTaggedMetricsFilterH\x00\x88\x01\x01\x1a\x97\x01\n\x0bMetricNames\"\x87\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08transmit\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\r\n\tframes_rx\x10\x03\x12\x0c\n\x08\x62ytes_tx\x10\x04\x12\x0c\n\x08\x62ytes_rx\x10\x05\x12\x12\n\x0e\x66rames_tx_rate\x10\x06\x12\x12\n\x0e\x66rames_rx_rate\x10\x07\x42\x11\n\x0f_tagged_metrics\"\xf4\x02\n\x17\x46lowTaggedMetricsFilter\x12\x14\n\x07include\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\"\n\x15include_empty_metrics\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x43\n\x0cmetric_names\x18\x03 \x03(\x0e\x32-.otg.FlowTaggedMetricsFilter.MetricNames.Enum\x12)\n\x07\x66ilters\x18\x04 \x03(\x0b\x32\x18.otg.FlowMetricTagFilter\x1a\x88\x01\n\x0bMetricNames\"y\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tframes_tx\x10\x01\x12\r\n\tframes_rx\x10\x02\x12\x0c\n\x08\x62ytes_tx\x10\x03\x12\x0c\n\x08\x62ytes_rx\x10\x04\x12\x12\n\x0e\x66rames_tx_rate\x10\x05\x12\x12\n\x0e\x66rames_rx_rate\x10\x06\x42\n\n\x08_includeB\x18\n\x16_include_empty_metrics\"A\n\x13\x46lowMetricTagFilter\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x0e\n\x06values\x18\x02 \x03(\tB\x07\n\x05_name\"\xad\x05\n\nFlowMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x14\n\x07port_tx\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x14\n\x07port_rx\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x34\n\x08transmit\x18\x05 \x01(\x0e\x32\x1d.otg.FlowMetric.Transmit.EnumH\x03\x88\x01\x01\x12\x16\n\tframes_tx\x18\x06 \x01(\x03H\x04\x88\x01\x01\x12\x16\n\tframes_rx\x18\x07 \x01(\x03H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x08 \x01(\x03H\x06\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\t \x01(\x03H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\n \x01(\x02H\x08\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\x0b \x01(\x02H\t\x88\x01\x01\x12\x11\n\x04loss\x18\x0c \x01(\x02H\n\x88\x01\x01\x12-\n\ntimestamps\x18\r \x01(\x0b\x32\x14.otg.MetricTimestampH\x0b\x88\x01\x01\x12(\n\x07latency\x18\x0e \x01(\x0b\x32\x12.otg.MetricLatencyH\x0c\x88\x01\x01\x12-\n\x0etagged_metrics\x18\x0f \x03(\x0b\x32\x15.otg.FlowTaggedMetric\x1aI\n\x08Transmit\"=\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07started\x10\x01\x12\x0b\n\x07stopped\x10\x02\x12\n\n\x06paused\x10\x03\x42\x07\n\x05_nameB\n\n\x08_port_txB\n\n\x08_port_rxB\x0b\n\t_transmitB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x07\n\x05_lossB\r\n\x0b_timestampsB\n\n\x08_latency\"\xb8\x03\n\x10\x46lowTaggedMetric\x12 \n\x04tags\x18\x01 \x03(\x0b\x32\x12.otg.FlowMetricTag\x12\x16\n\tframes_tx\x18\x02 \x01(\x04H\x00\x88\x01\x01\x12\x16\n\tframes_rx\x18\x03 \x01(\x04H\x01\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x04 \x01(\x04H\x02\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x05 \x01(\x04H\x03\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\x06 \x01(\x02H\x04\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\x07 \x01(\x02H\x05\x88\x01\x01\x12\x11\n\x04loss\x18\x08 \x01(\x02H\x06\x88\x01\x01\x12-\n\ntimestamps\x18\t \x01(\x0b\x32\x14.otg.MetricTimestampH\x07\x88\x01\x01\x12(\n\x07latency\x18\n \x01(\x0b\x32\x12.otg.MetricLatencyH\x08\x88\x01\x01\x42\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x07\n\x05_lossB\r\n\x0b_timestampsB\n\n\x08_latency\"b\n\rFlowMetricTag\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12+\n\x05value\x18\x02 \x01(\x0b\x32\x17.otg.FlowMetricTagValueH\x01\x88\x01\x01\x42\x07\n\x05_nameB\x08\n\x06_value\"\x9f\x01\n\x12\x46lowMetricTagValue\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.FlowMetricTagValue.Choice.EnumH\x00\x88\x01\x01\x12\x10\n\x03hex\x18\x02 \x01(\tH\x01\x88\x01\x01\x1a*\n\x06\x43hoice\" \n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03hex\x10\x01\x42\t\n\x07_choiceB\x06\n\x04_hex\"\x7f\n\x0fMetricTimestamp\x12\x1f\n\x12\x66irst_timestamp_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x1e\n\x11last_timestamp_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x42\x15\n\x13_first_timestamp_nsB\x14\n\x12_last_timestamp_ns\"\x87\x01\n\rMetricLatency\x12\x17\n\nminimum_ns\x18\x01 \x01(\x01H\x00\x88\x01\x01\x12\x17\n\nmaximum_ns\x18\x02 \x01(\x01H\x01\x88\x01\x01\x12\x17\n\naverage_ns\x18\x03 \x01(\x01H\x02\x88\x01\x01\x42\r\n\x0b_minimum_nsB\r\n\x0b_maximum_nsB\r\n\x0b_average_ns\"\xe0\x03\n\x13\x42gpv4MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv4MetricsRequest.ColumnNames.Enum\x1a\xf3\x02\n\x0b\x43olumnNames\"\xe3\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\"\xb0\x08\n\x0b\x42gpv4Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv4Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x05H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x05H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x05H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x05H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x05H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x05H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x05H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x05H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x05H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x05H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x05H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv4Metric.FsmState.EnumH\x0f\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_state\"\xe0\x03\n\x13\x42gpv6MetricsRequest\x12\x12\n\npeer_names\x18\x01 \x03(\t\x12?\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32).otg.Bgpv6MetricsRequest.ColumnNames.Enum\x1a\xf3\x02\n\x0b\x43olumnNames\"\xe3\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x11\n\rsession_state\x10\x01\x12\x16\n\x12session_flap_count\x10\x02\x12\x15\n\x11routes_advertised\x10\x03\x12\x13\n\x0froutes_received\x10\x04\x12\x18\n\x14route_withdraws_sent\x10\x05\x12\x1c\n\x18route_withdraws_received\x10\x06\x12\x10\n\x0cupdates_sent\x10\x07\x12\x14\n\x10updates_received\x10\x08\x12\x0e\n\nopens_sent\x10\t\x12\x12\n\x0eopens_received\x10\n\x12\x13\n\x0fkeepalives_sent\x10\x0b\x12\x17\n\x13keepalives_received\x10\x0c\x12\x16\n\x12notifications_sent\x10\r\x12\x1a\n\x16notifications_received\x10\x0e\x12\r\n\tfsm_state\x10\x0f\"\xb0\x08\n\x0b\x42gpv6Metric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12>\n\rsession_state\x18\x02 \x01(\x0e\x32\".otg.Bgpv6Metric.SessionState.EnumH\x01\x88\x01\x01\x12\x1f\n\x12session_flap_count\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x1e\n\x11routes_advertised\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x1c\n\x0froutes_received\x18\x05 \x01(\x05H\x04\x88\x01\x01\x12!\n\x14route_withdraws_sent\x18\x06 \x01(\x05H\x05\x88\x01\x01\x12%\n\x18route_withdraws_received\x18\x07 \x01(\x05H\x06\x88\x01\x01\x12\x19\n\x0cupdates_sent\x18\x08 \x01(\x05H\x07\x88\x01\x01\x12\x1d\n\x10updates_received\x18\t \x01(\x05H\x08\x88\x01\x01\x12\x17\n\nopens_sent\x18\n \x01(\x05H\t\x88\x01\x01\x12\x1b\n\x0eopens_received\x18\x0b \x01(\x05H\n\x88\x01\x01\x12\x1c\n\x0fkeepalives_sent\x18\x0c \x01(\x05H\x0b\x88\x01\x01\x12 \n\x13keepalives_received\x18\r \x01(\x05H\x0c\x88\x01\x01\x12\x1f\n\x12notifications_sent\x18\x0e \x01(\x05H\r\x88\x01\x01\x12#\n\x16notifications_received\x18\x0f \x01(\x05H\x0e\x88\x01\x01\x12\x36\n\tfsm_state\x18\x10 \x01(\x0e\x32\x1e.otg.Bgpv6Metric.FsmState.EnumH\x0f\x88\x01\x01\x1a\x39\n\x0cSessionState\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1av\n\x08\x46smState\"j\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04idle\x10\x01\x12\x0b\n\x07\x63onnect\x10\x02\x12\n\n\x06\x61\x63tive\x10\x03\x12\x0c\n\x08opensent\x10\x04\x12\x0f\n\x0bopenconfirm\x10\x05\x12\x0f\n\x0b\x65stablished\x10\x06\x42\x07\n\x05_nameB\x10\n\x0e_session_stateB\x15\n\x13_session_flap_countB\x14\n\x12_routes_advertisedB\x12\n\x10_routes_receivedB\x17\n\x15_route_withdraws_sentB\x1b\n\x19_route_withdraws_receivedB\x0f\n\r_updates_sentB\x13\n\x11_updates_receivedB\r\n\x0b_opens_sentB\x11\n\x0f_opens_receivedB\x12\n\x10_keepalives_sentB\x16\n\x14_keepalives_receivedB\x15\n\x13_notifications_sentB\x19\n\x17_notifications_receivedB\x0c\n\n_fsm_state\"\x92\x06\n\x12IsisMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.IsisMetricsRequest.ColumnNames.Enum\x1a\xa5\x05\n\x0b\x43olumnNames\"\x95\x05\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0el1_sessions_up\x10\x01\x12\x13\n\x0fl1_session_flap\x10\x02\x12\x14\n\x10l1_database_size\x10\x03\x12\x1c\n\x18l1_broadcast_hellos_sent\x10\x04\x12 \n\x1cl1_broadcast_hellos_received\x10\x05\x12!\n\x1dl1_point_to_point_hellos_sent\x10\x06\x12%\n!l1_point_to_point_hellos_received\x10\x07\x12\x10\n\x0cl1_psnp_sent\x10\x08\x12\x14\n\x10l1_psnp_received\x10\t\x12\x10\n\x0cl1_csnp_sent\x10\n\x12\x14\n\x10l1_csnp_received\x10\x0b\x12\x0f\n\x0bl1_lsp_sent\x10\x0c\x12\x13\n\x0fl1_lsp_received\x10\r\x12\x12\n\x0el2_sessions_up\x10\x0e\x12\x13\n\x0fl2_session_flap\x10\x0f\x12\x14\n\x10l2_database_size\x10\x10\x12\x1c\n\x18l2_broadcast_hellos_sent\x10\x11\x12 \n\x1cl2_broadcast_hellos_received\x10\x12\x12!\n\x1dl2_point_to_point_hellos_sent\x10\x13\x12%\n!l2_point_to_point_hellos_received\x10\x14\x12\x10\n\x0cl2_psnp_sent\x10\x15\x12\x14\n\x10l2_psnp_received\x10\x16\x12\x10\n\x0cl2_csnp_sent\x10\x17\x12\x14\n\x10l2_csnp_received\x10\x18\x12\x0f\n\x0bl2_lsp_sent\x10\x19\x12\x13\n\x0fl2_lsp_received\x10\x1a\"\xf4\x0b\n\nIsisMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0el1_sessions_up\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x1c\n\x0fl1_session_flap\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12%\n\x18l1_broadcast_hellos_sent\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12)\n\x1cl1_broadcast_hellos_received\x18\x05 \x01(\x05H\x04\x88\x01\x01\x12*\n\x1dl1_point_to_point_hellos_sent\x18\x06 \x01(\x05H\x05\x88\x01\x01\x12.\n!l1_point_to_point_hellos_received\x18\x07 \x01(\x05H\x06\x88\x01\x01\x12\x1d\n\x10l1_database_size\x18\x08 \x01(\x05H\x07\x88\x01\x01\x12\x19\n\x0cl1_psnp_sent\x18\t \x01(\x05H\x08\x88\x01\x01\x12\x1d\n\x10l1_psnp_received\x18\n \x01(\x05H\t\x88\x01\x01\x12\x19\n\x0cl1_csnp_sent\x18\x0b \x01(\x05H\n\x88\x01\x01\x12\x1d\n\x10l1_csnp_received\x18\x0c \x01(\x05H\x0b\x88\x01\x01\x12\x18\n\x0bl1_lsp_sent\x18\r \x01(\x05H\x0c\x88\x01\x01\x12\x1c\n\x0fl1_lsp_received\x18\x0e \x01(\x05H\r\x88\x01\x01\x12\x1b\n\x0el2_sessions_up\x18\x0f \x01(\x05H\x0e\x88\x01\x01\x12\x1c\n\x0fl2_session_flap\x18\x10 \x01(\x05H\x0f\x88\x01\x01\x12%\n\x18l2_broadcast_hellos_sent\x18\x11 \x01(\x05H\x10\x88\x01\x01\x12)\n\x1cl2_broadcast_hellos_received\x18\x12 \x01(\x05H\x11\x88\x01\x01\x12*\n\x1dl2_point_to_point_hellos_sent\x18\x13 \x01(\x05H\x12\x88\x01\x01\x12.\n!l2_point_to_point_hellos_received\x18\x14 \x01(\x05H\x13\x88\x01\x01\x12\x1d\n\x10l2_database_size\x18\x15 \x01(\x05H\x14\x88\x01\x01\x12\x19\n\x0cl2_psnp_sent\x18\x16 \x01(\x05H\x15\x88\x01\x01\x12\x1d\n\x10l2_psnp_received\x18\x17 \x01(\x05H\x16\x88\x01\x01\x12\x19\n\x0cl2_csnp_sent\x18\x18 \x01(\x05H\x17\x88\x01\x01\x12\x1d\n\x10l2_csnp_received\x18\x19 \x01(\x05H\x18\x88\x01\x01\x12\x18\n\x0bl2_lsp_sent\x18\x1a \x01(\x05H\x19\x88\x01\x01\x12\x1c\n\x0fl2_lsp_received\x18\x1b \x01(\x05H\x1a\x88\x01\x01\x42\x07\n\x05_nameB\x11\n\x0f_l1_sessions_upB\x12\n\x10_l1_session_flapB\x1b\n\x19_l1_broadcast_hellos_sentB\x1f\n\x1d_l1_broadcast_hellos_receivedB \n\x1e_l1_point_to_point_hellos_sentB$\n\"_l1_point_to_point_hellos_receivedB\x13\n\x11_l1_database_sizeB\x0f\n\r_l1_psnp_sentB\x13\n\x11_l1_psnp_receivedB\x0f\n\r_l1_csnp_sentB\x13\n\x11_l1_csnp_receivedB\x0e\n\x0c_l1_lsp_sentB\x12\n\x10_l1_lsp_receivedB\x11\n\x0f_l2_sessions_upB\x12\n\x10_l2_session_flapB\x1b\n\x19_l2_broadcast_hellos_sentB\x1f\n\x1d_l2_broadcast_hellos_receivedB \n\x1e_l2_point_to_point_hellos_sentB$\n\"_l2_point_to_point_hellos_receivedB\x13\n\x11_l2_database_sizeB\x0f\n\r_l2_psnp_sentB\x13\n\x11_l2_psnp_receivedB\x0f\n\r_l2_csnp_sentB\x13\n\x11_l2_csnp_receivedB\x0e\n\x0c_l2_lsp_sentB\x12\n\x10_l2_lsp_received\"\xbd\x02\n\x11LagMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12=\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32\'.otg.LagMetricsRequest.ColumnNames.Enum\x1a\xd5\x01\n\x0b\x43olumnNames\"\xc5\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0f\n\x0boper_status\x10\x01\x12\x13\n\x0fmember_ports_up\x10\x02\x12\r\n\tframes_tx\x10\x03\x12\r\n\tframes_rx\x10\x04\x12\x0c\n\x08\x62ytes_tx\x10\x05\x12\x0c\n\x08\x62ytes_rx\x10\x06\x12\x12\n\x0e\x66rames_tx_rate\x10\x07\x12\x12\n\x0e\x66rames_rx_rate\x10\x08\x12\x11\n\rbytes_tx_rate\x10\t\x12\x11\n\rbytes_rx_rate\x10\n\"\xac\x04\n\tLagMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x38\n\x0boper_status\x18\x02 \x01(\x0e\x32\x1e.otg.LagMetric.OperStatus.EnumH\x01\x88\x01\x01\x12\x1c\n\x0fmember_ports_up\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x16\n\tframes_tx\x18\x04 \x01(\x03H\x03\x88\x01\x01\x12\x16\n\tframes_rx\x18\x05 \x01(\x03H\x04\x88\x01\x01\x12\x15\n\x08\x62ytes_tx\x18\x06 \x01(\x03H\x05\x88\x01\x01\x12\x15\n\x08\x62ytes_rx\x18\x07 \x01(\x03H\x06\x88\x01\x01\x12\x1b\n\x0e\x66rames_tx_rate\x18\x08 \x01(\x02H\x07\x88\x01\x01\x12\x1b\n\x0e\x66rames_rx_rate\x18\t \x01(\x02H\x08\x88\x01\x01\x12\x1a\n\rbytes_tx_rate\x18\n \x01(\x02H\t\x88\x01\x01\x12\x1a\n\rbytes_rx_rate\x18\x0b \x01(\x02H\n\x88\x01\x01\x1a\x37\n\nOperStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x07\n\x05_nameB\x0e\n\x0c_oper_statusB\x12\n\x10_member_ports_upB\x0c\n\n_frames_txB\x0c\n\n_frames_rxB\x0b\n\t_bytes_txB\x0b\n\t_bytes_rxB\x11\n\x0f_frames_tx_rateB\x11\n\x0f_frames_rx_rateB\x10\n\x0e_bytes_tx_rateB\x10\n\x0e_bytes_rx_rate\"\xb4\x03\n\x12LacpMetricsRequest\x12\x11\n\tlag_names\x18\x01 \x03(\t\x12\x1d\n\x15lag_member_port_names\x18\x02 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x03 \x03(\x0e\x32(.otg.LacpMetricsRequest.ColumnNames.Enum\x1a\xab\x02\n\x0b\x43olumnNames\"\x9b\x02\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x13\n\x0flacp_packets_rx\x10\x01\x12\x13\n\x0flacp_packets_tx\x10\x02\x12\x12\n\x0elacp_rx_errors\x10\x03\x12\x0c\n\x08\x61\x63tivity\x10\x04\x12\x0b\n\x07timeout\x10\x05\x12\x13\n\x0fsynchronization\x10\x06\x12\x10\n\x0c\x61ggregatable\x10\x07\x12\x0e\n\ncollecting\x10\x08\x12\x10\n\x0c\x64istributing\x10\t\x12\r\n\tsystem_id\x10\n\x12\x0c\n\x08oper_key\x10\x0b\x12\x0e\n\npartner_id\x10\x0c\x12\x0f\n\x0bpartner_key\x10\r\x12\x0c\n\x08port_num\x10\x0e\x12\x14\n\x10partner_port_num\x10\x0f\"\x8d\x08\n\nLacpMetric\x12\x15\n\x08lag_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12!\n\x14lag_member_port_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1c\n\x0flacp_packets_rx\x18\x03 \x01(\x03H\x02\x88\x01\x01\x12\x1c\n\x0flacp_packets_tx\x18\x04 \x01(\x03H\x03\x88\x01\x01\x12\x1b\n\x0elacp_rx_errors\x18\x05 \x01(\x03H\x04\x88\x01\x01\x12\x34\n\x08\x61\x63tivity\x18\x06 \x01(\x0e\x32\x1d.otg.LacpMetric.Activity.EnumH\x05\x88\x01\x01\x12\x32\n\x07timeout\x18\x07 \x01(\x0e\x32\x1c.otg.LacpMetric.Timeout.EnumH\x06\x88\x01\x01\x12\x42\n\x0fsynchronization\x18\x08 \x01(\x0e\x32$.otg.LacpMetric.Synchronization.EnumH\x07\x88\x01\x01\x12\x19\n\x0c\x61ggregatable\x18\t \x01(\x08H\x08\x88\x01\x01\x12\x17\n\ncollecting\x18\n \x01(\x08H\t\x88\x01\x01\x12\x19\n\x0c\x64istributing\x18\x0b \x01(\x08H\n\x88\x01\x01\x12\x16\n\tsystem_id\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x15\n\x08oper_key\x18\r \x01(\x05H\x0c\x88\x01\x01\x12\x17\n\npartner_id\x18\x0e \x01(\tH\r\x88\x01\x01\x12\x18\n\x0bpartner_key\x18\x0f \x01(\x05H\x0e\x88\x01\x01\x12\x15\n\x08port_num\x18\x10 \x01(\x05H\x0f\x88\x01\x01\x12\x1d\n\x10partner_port_num\x18\x11 \x01(\x05H\x10\x88\x01\x01\x1a<\n\x08\x41\x63tivity\"0\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61\x63tive\x10\x01\x12\x0b\n\x07passive\x10\x02\x1a\x37\n\x07Timeout\",\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05short\x10\x01\x12\x08\n\x04long\x10\x02\x1a\x45\n\x0fSynchronization\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07in_sync\x10\x01\x12\x0c\n\x08out_sync\x10\x02\x42\x0b\n\t_lag_nameB\x17\n\x15_lag_member_port_nameB\x12\n\x10_lacp_packets_rxB\x12\n\x10_lacp_packets_txB\x11\n\x0f_lacp_rx_errorsB\x0b\n\t_activityB\n\n\x08_timeoutB\x12\n\x10_synchronizationB\x0f\n\r_aggregatableB\r\n\x0b_collectingB\x0f\n\r_distributingB\x0c\n\n_system_idB\x0b\n\t_oper_keyB\r\n\x0b_partner_idB\x0e\n\x0c_partner_keyB\x0b\n\t_port_numB\x13\n\x11_partner_port_num\"\xfd\x01\n\x12LldpMetricsRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.LldpMetricsRequest.ColumnNames.Enum\x1a\x92\x01\n\x0b\x43olumnNames\"\x82\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tframes_rx\x10\x01\x12\r\n\tframes_tx\x10\x02\x12\x13\n\x0f\x66rames_error_rx\x10\x03\x12\x12\n\x0e\x66rames_discard\x10\x04\x12\x10\n\x0ctlvs_discard\x10\x05\x12\x10\n\x0ctlvs_unknown\x10\x06\"\xae\x02\n\nLldpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x16\n\tframes_rx\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x16\n\tframes_tx\x18\x03 \x01(\x03H\x02\x88\x01\x01\x12\x1c\n\x0f\x66rames_error_rx\x18\x04 \x01(\x03H\x03\x88\x01\x01\x12\x1b\n\x0e\x66rames_discard\x18\x05 \x01(\x03H\x04\x88\x01\x01\x12\x19\n\x0ctlvs_discard\x18\x06 \x01(\x03H\x05\x88\x01\x01\x12\x19\n\x0ctlvs_unknown\x18\x07 \x01(\x03H\x06\x88\x01\x01\x42\x07\n\x05_nameB\x0c\n\n_frames_rxB\x0c\n\n_frames_txB\x12\n\x10_frames_error_rxB\x11\n\x0f_frames_discardB\x0f\n\r_tlvs_discardB\x0f\n\r_tlvs_unknown\"\xc2\x05\n\x12RsvpMetricsRequest\x12\x14\n\x0crouter_names\x18\x01 \x03(\t\x12>\n\x0c\x63olumn_names\x18\x02 \x03(\x0e\x32(.otg.RsvpMetricsRequest.ColumnNames.Enum\x1a\xd5\x04\n\x0b\x43olumnNames\"\xc5\x04\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x1f\n\x1bingress_p2p_lsps_configured\x10\x01\x12\x17\n\x13ingress_p2p_lsps_up\x10\x02\x12\x16\n\x12\x65gress_p2p_lsps_up\x10\x03\x12\x12\n\x0elsp_flap_count\x10\x04\x12\x0c\n\x08paths_tx\x10\x05\x12\x0c\n\x08paths_rx\x10\x06\x12\x0c\n\x08resvs_tx\x10\x07\x12\x0c\n\x08resvs_rx\x10\x08\x12\x11\n\rpath_tears_tx\x10\t\x12\x11\n\rpath_tears_rx\x10\n\x12\x11\n\rresv_tears_tx\x10\x0b\x12\x11\n\rresv_tears_rx\x10\x0c\x12\x12\n\x0epath_errors_tx\x10\r\x12\x12\n\x0epath_errors_rx\x10\x0e\x12\x12\n\x0eresv_errors_tx\x10\x0f\x12\x12\n\x0eresv_errors_rx\x10\x10\x12\x10\n\x0cresv_conf_tx\x10\x11\x12\x10\n\x0cresv_conf_rx\x10\x12\x12\r\n\thellos_tx\x10\x13\x12\r\n\thellos_rx\x10\x14\x12\x0b\n\x07\x61\x63ks_tx\x10\x15\x12\x0b\n\x07\x61\x63ks_rx\x10\x16\x12\x0c\n\x08nacks_tx\x10\x17\x12\x0c\n\x08nacks_rx\x10\x18\x12\x0f\n\x0bsrefresh_tx\x10\x19\x12\x0f\n\x0bsrefresh_rx\x10\x1a\x12\r\n\tbundle_tx\x10\x1b\x12\r\n\tbundle_rx\x10\x1c\x12 \n\x1cpath_reevaluation_request_tx\x10\x1d\x12\x18\n\x14path_reoptimizations\x10\x1e\"\xf4\n\n\nRsvpMetric\x12\x11\n\x04name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\x1bingress_p2p_lsps_configured\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12 \n\x13ingress_p2p_lsps_up\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12\x1f\n\x12\x65gress_p2p_lsps_up\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x1b\n\x0elsp_flap_count\x18\x05 \x01(\x05H\x04\x88\x01\x01\x12\x15\n\x08paths_tx\x18\x06 \x01(\x05H\x05\x88\x01\x01\x12\x15\n\x08paths_rx\x18\x07 \x01(\x05H\x06\x88\x01\x01\x12\x15\n\x08resvs_tx\x18\x08 \x01(\x05H\x07\x88\x01\x01\x12\x15\n\x08resvs_rx\x18\t \x01(\x05H\x08\x88\x01\x01\x12\x1a\n\rpath_tears_tx\x18\n \x01(\x05H\t\x88\x01\x01\x12\x1a\n\rpath_tears_rx\x18\x0b \x01(\x05H\n\x88\x01\x01\x12\x1a\n\rresv_tears_tx\x18\x0c \x01(\x05H\x0b\x88\x01\x01\x12\x1a\n\rresv_tears_rx\x18\r \x01(\x05H\x0c\x88\x01\x01\x12\x1b\n\x0epath_errors_tx\x18\x0e \x01(\x05H\r\x88\x01\x01\x12\x1b\n\x0epath_errors_rx\x18\x0f \x01(\x05H\x0e\x88\x01\x01\x12\x1b\n\x0eresv_errors_tx\x18\x10 \x01(\x05H\x0f\x88\x01\x01\x12\x1b\n\x0eresv_errors_rx\x18\x11 \x01(\x05H\x10\x88\x01\x01\x12\x19\n\x0cresv_conf_tx\x18\x12 \x01(\x05H\x11\x88\x01\x01\x12\x19\n\x0cresv_conf_rx\x18\x13 \x01(\x05H\x12\x88\x01\x01\x12\x16\n\thellos_tx\x18\x14 \x01(\x05H\x13\x88\x01\x01\x12\x16\n\thellos_rx\x18\x15 \x01(\x05H\x14\x88\x01\x01\x12\x14\n\x07\x61\x63ks_tx\x18\x16 \x01(\x05H\x15\x88\x01\x01\x12\x14\n\x07\x61\x63ks_rx\x18\x17 \x01(\x05H\x16\x88\x01\x01\x12\x15\n\x08nacks_tx\x18\x18 \x01(\x05H\x17\x88\x01\x01\x12\x15\n\x08nacks_rx\x18\x19 \x01(\x05H\x18\x88\x01\x01\x12\x18\n\x0bsrefresh_tx\x18\x1a \x01(\x05H\x19\x88\x01\x01\x12\x18\n\x0bsrefresh_rx\x18\x1b \x01(\x05H\x1a\x88\x01\x01\x12\x16\n\tbundle_tx\x18\x1c \x01(\x05H\x1b\x88\x01\x01\x12\x16\n\tbundle_rx\x18\x1d \x01(\x05H\x1c\x88\x01\x01\x12)\n\x1cpath_reevaluation_request_tx\x18\x1e \x01(\x05H\x1d\x88\x01\x01\x12!\n\x14path_reoptimizations\x18\x1f \x01(\x05H\x1e\x88\x01\x01\x42\x07\n\x05_nameB\x1e\n\x1c_ingress_p2p_lsps_configuredB\x16\n\x14_ingress_p2p_lsps_upB\x15\n\x13_egress_p2p_lsps_upB\x11\n\x0f_lsp_flap_countB\x0b\n\t_paths_txB\x0b\n\t_paths_rxB\x0b\n\t_resvs_txB\x0b\n\t_resvs_rxB\x10\n\x0e_path_tears_txB\x10\n\x0e_path_tears_rxB\x10\n\x0e_resv_tears_txB\x10\n\x0e_resv_tears_rxB\x11\n\x0f_path_errors_txB\x11\n\x0f_path_errors_rxB\x11\n\x0f_resv_errors_txB\x11\n\x0f_resv_errors_rxB\x0f\n\r_resv_conf_txB\x0f\n\r_resv_conf_rxB\x0c\n\n_hellos_txB\x0c\n\n_hellos_rxB\n\n\x08_acks_txB\n\n\x08_acks_rxB\x0b\n\t_nacks_txB\x0b\n\t_nacks_rxB\x0e\n\x0c_srefresh_txB\x0e\n\x0c_srefresh_rxB\x0c\n\n_bundle_txB\x0c\n\n_bundle_rxB\x1f\n\x1d_path_reevaluation_request_txB\x17\n\x15_path_reoptimizations\"\x98\x05\n\rStatesRequest\x12\x33\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1e.otg.StatesRequest.Choice.EnumH\x00\x88\x01\x01\x12:\n\x0eipv4_neighbors\x18\x02 \x01(\x0b\x32\x1d.otg.Neighborsv4StatesRequestH\x01\x88\x01\x01\x12:\n\x0eipv6_neighbors\x18\x03 \x01(\x0b\x32\x1d.otg.Neighborsv6StatesRequestH\x02\x88\x01\x01\x12\x35\n\x0c\x62gp_prefixes\x18\x04 \x01(\x0b\x32\x1a.otg.BgpPrefixStateRequestH\x03\x88\x01\x01\x12\x31\n\tisis_lsps\x18\x05 \x01(\x0b\x32\x19.otg.IsisLspsStateRequestH\x04\x88\x01\x01\x12;\n\x0elldp_neighbors\x18\x06 \x01(\x0b\x32\x1e.otg.LldpNeighborsStateRequestH\x05\x88\x01\x01\x12\x31\n\trsvp_lsps\x18\x07 \x01(\x0b\x32\x19.otg.RsvpLspsStateRequestH\x06\x88\x01\x01\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choiceB\x11\n\x0f_ipv4_neighborsB\x11\n\x0f_ipv6_neighborsB\x0f\n\r_bgp_prefixesB\x0c\n\n_isis_lspsB\x11\n\x0f_lldp_neighborsB\x0c\n\n_rsvp_lsps\"\xec\x03\n\x0eStatesResponse\x12\x34\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x1f.otg.StatesResponse.Choice.EnumH\x00\x88\x01\x01\x12-\n\x0eipv4_neighbors\x18\x02 \x03(\x0b\x32\x15.otg.Neighborsv4State\x12-\n\x0eipv6_neighbors\x18\x03 \x03(\x0b\x32\x15.otg.Neighborsv6State\x12+\n\x0c\x62gp_prefixes\x18\x04 \x03(\x0b\x32\x15.otg.BgpPrefixesState\x12%\n\tisis_lsps\x18\x05 \x03(\x0b\x32\x12.otg.IsisLspsState\x12/\n\x0elldp_neighbors\x18\x06 \x03(\x0b\x32\x17.otg.LldpNeighborsState\x12%\n\trsvp_lsps\x18\x07 \x03(\x0b\x32\x12.otg.RsvpLspsState\x1a\x8e\x01\n\x06\x43hoice\"\x83\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eipv4_neighbors\x10\x01\x12\x12\n\x0eipv6_neighbors\x10\x02\x12\x10\n\x0c\x62gp_prefixes\x10\x03\x12\r\n\tisis_lsps\x10\x04\x12\x12\n\x0elldp_neighbors\x10\x05\x12\r\n\trsvp_lsps\x10\x06\x42\t\n\x07_choice\"2\n\x18Neighborsv4StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"w\n\x10Neighborsv4State\x12\x15\n\rethernet_name\x18\x01 \x01(\t\x12\x14\n\x0cipv4_address\x18\x02 \x01(\t\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x15\n\x13_link_layer_address\"2\n\x18Neighborsv6StatesRequest\x12\x16\n\x0e\x65thernet_names\x18\x01 \x03(\t\"w\n\x10Neighborsv6State\x12\x15\n\rethernet_name\x18\x01 \x01(\t\x12\x14\n\x0cipv6_address\x18\x02 \x01(\t\x12\x1f\n\x12link_layer_address\x18\x03 \x01(\tH\x00\x88\x01\x01\x42\x15\n\x13_link_layer_address\"\xc2\x02\n\x15\x42gpPrefixStateRequest\x12\x16\n\x0e\x62gp_peer_names\x18\x01 \x03(\t\x12\x45\n\x0eprefix_filters\x18\x02 \x03(\x0e\x32-.otg.BgpPrefixStateRequest.PrefixFilters.Enum\x12=\n\x14ipv4_unicast_filters\x18\x03 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv4UnicastFilter\x12=\n\x14ipv6_unicast_filters\x18\x04 \x03(\x0b\x32\x1f.otg.BgpPrefixIpv6UnicastFilter\x1aL\n\rPrefixFilters\";\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x10\n\x0cipv4_unicast\x10\x01\x12\x10\n\x0cipv6_unicast\x10\x02\"\x91\x02\n\x1a\x42gpPrefixIpv4UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv4UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\x05H\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\x91\x02\n\x1a\x42gpPrefixIpv6UnicastFilter\x12\x11\n\taddresses\x18\x01 \x03(\t\x12\x1a\n\rprefix_length\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12@\n\x06origin\x18\x03 \x01(\x0e\x32+.otg.BgpPrefixIpv6UnicastFilter.Origin.EnumH\x01\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\x05H\x02\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_id\"\xbe\x01\n\x10\x42gpPrefixesState\x12\x1a\n\rbgp_peer_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12=\n\x15ipv4_unicast_prefixes\x18\x02 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv4UnicastState\x12=\n\x15ipv6_unicast_prefixes\x18\x03 \x03(\x0b\x32\x1e.otg.BgpPrefixIpv6UnicastStateB\x10\n\x0e_bgp_peer_name\"\xea\x03\n\x19\x42gpPrefixIpv4UnicastState\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv4UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12*\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPathH\x06\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\n\n\x08_as_path\"\xea\x03\n\x19\x42gpPrefixIpv6UnicastState\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12?\n\x06origin\x18\x03 \x01(\x0e\x32*.otg.BgpPrefixIpv6UnicastState.Origin.EnumH\x02\x88\x01\x01\x12\x14\n\x07path_id\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x1a\n\ripv4_next_hop\x18\x05 \x01(\tH\x04\x88\x01\x01\x12\x1a\n\ripv6_next_hop\x18\x06 \x01(\tH\x05\x88\x01\x01\x12,\n\x0b\x63ommunities\x18\x07 \x03(\x0b\x32\x17.otg.ResultBgpCommunity\x12*\n\x07\x61s_path\x18\x08 \x01(\x0b\x32\x14.otg.ResultBgpAsPathH\x06\x88\x01\x01\x1a\x43\n\x06Origin\"9\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x07\n\x03igp\x10\x01\x12\x07\n\x03\x65gp\x10\x02\x12\x0e\n\nincomplete\x10\x03\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_originB\n\n\x08_path_idB\x10\n\x0e_ipv4_next_hopB\x10\n\x0e_ipv6_next_hopB\n\n\x08_as_path\"\xb0\x02\n\x12ResultBgpCommunity\x12\x34\n\x04type\x18\x01 \x01(\x0e\x32!.otg.ResultBgpCommunity.Type.EnumH\x00\x88\x01\x01\x12\x16\n\tas_number\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x16\n\tas_custom\x18\x03 \x01(\x05H\x02\x88\x01\x01\x1a\x8e\x01\n\x04Type\"\x85\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x14\n\x10manual_as_number\x10\x01\x12\r\n\tno_export\x10\x02\x12\x11\n\rno_advertised\x10\x03\x12\x17\n\x13no_export_subconfed\x10\x04\x12\x0e\n\nllgr_stale\x10\x05\x12\x0b\n\x07no_llgr\x10\x06\x42\x07\n\x05_typeB\x0c\n\n_as_numberB\x0c\n\n_as_custom\"@\n\x0fResultBgpAsPath\x12-\n\x08segments\x18\x01 \x03(\x0b\x32\x1b.otg.ResultBgpAsPathSegment\"\xce\x01\n\x16ResultBgpAsPathSegment\x12\x38\n\x04type\x18\x01 \x01(\x0e\x32%.otg.ResultBgpAsPathSegment.Type.EnumH\x00\x88\x01\x01\x12\x12\n\nas_numbers\x18\x02 \x03(\x03\x1a]\n\x04Type\"U\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\n\n\x06\x61s_seq\x10\x01\x12\n\n\x06\x61s_set\x10\x02\x12\x11\n\ras_confed_seq\x10\x03\x12\x11\n\ras_confed_set\x10\x04\x42\x07\n\x05_type\"1\n\x14IsisLspsStateRequest\x12\x19\n\x11isis_router_names\x18\x01 \x03(\t\"d\n\rIsisLspsState\x12\x1d\n\x10isis_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1f\n\x04lsps\x18\x02 \x03(\x0b\x32\x11.otg.IsisLspStateB\x13\n\x11_isis_router_name\"\xb3\x03\n\x0cIsisLspState\x12\x0e\n\x06lsp_id\x18\x01 \x01(\t\x12\x35\n\x08pdu_type\x18\x02 \x01(\x0e\x32\x1e.otg.IsisLspState.PduType.EnumH\x00\x88\x01\x01\x12\x1f\n\x12remaining_lifetime\x18\x03 \x01(\x03H\x01\x88\x01\x01\x12\x1c\n\x0fsequence_number\x18\x04 \x01(\x03H\x02\x88\x01\x01\x12\x17\n\npdu_length\x18\x05 \x01(\x05H\x03\x88\x01\x01\x12%\n\x05\x66lags\x18\x06 \x01(\x0b\x32\x11.otg.IsisLspFlagsH\x04\x88\x01\x01\x12\x14\n\x07is_type\x18\x07 \x01(\x05H\x05\x88\x01\x01\x12#\n\x04tlvs\x18\x08 \x01(\x0b\x32\x10.otg.IsisLspTlvsH\x06\x88\x01\x01\x1a<\n\x07PduType\"1\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0b\n\x07level_1\x10\x01\x12\x0b\n\x07level_2\x10\x02\x42\x0b\n\t_pdu_typeB\x15\n\x13_remaining_lifetimeB\x12\n\x10_sequence_numberB\r\n\x0b_pdu_lengthB\x08\n\x06_flagsB\n\n\x08_is_typeB\x07\n\x05_tlvs\"\xfc\x03\n\x0bIsisLspTlvs\x12+\n\rhostname_tlvs\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspHostname\x12;\n\x14is_reachability_tlvs\x18\x02 \x03(\x0b\x32\x1d.otg.IsisLspIsReachabilityTlv\x12L\n\x1d\x65xtended_is_reachability_tlvs\x18\x03 \x03(\x0b\x32%.otg.IsisLspExtendedIsReachabilityTlv\x12P\n\x1fipv4_internal_reachability_tlvs\x18\x04 \x03(\x0b\x32\'.otg.IsisLspIpv4InternalReachabilityTlv\x12P\n\x1fipv4_external_reachability_tlvs\x18\x05 \x03(\x0b\x32\'.otg.IsisLspIpv4ExternalReachabilityTlv\x12P\n\x1f\x65xtended_ipv4_reachability_tlvs\x18\x06 \x03(\x0b\x32\'.otg.IsisLspExtendedIpv4ReachabilityTlv\x12?\n\x16ipv6_reachability_tlvs\x18\x07 \x03(\x0b\x32\x1f.otg.IsisLspIpv6ReachabilityTlv\"5\n\x0fIsisLspHostname\x12\x15\n\x08hostname\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0b\n\t_hostname\"\xae\x02\n\x0cIsisLspFlags\x12\x1d\n\x10partition_repair\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x1b\n\x0e\x61ttached_error\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x1d\n\x10\x61ttached_expense\x18\x03 \x01(\x08H\x02\x88\x01\x01\x12\x1b\n\x0e\x61ttached_delay\x18\x04 \x01(\x08H\x03\x88\x01\x01\x12\x1d\n\x10\x61ttached_default\x18\x05 \x01(\x08H\x04\x88\x01\x01\x12\x15\n\x08overload\x18\x06 \x01(\x08H\x05\x88\x01\x01\x42\x13\n\x11_partition_repairB\x11\n\x0f_attached_errorB\x13\n\x11_attached_expenseB\x11\n\x0f_attached_delayB\x13\n\x11_attached_defaultB\x0b\n\t_overload\"C\n\x18IsisLspIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"K\n IsisLspExtendedIsReachabilityTlv\x12\'\n\tneighbors\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspneighbor\"7\n\x0fIsisLspneighbor\x12\x16\n\tsystem_id\x18\x01 \x01(\tH\x00\x88\x01\x01\x42\x0c\n\n_system_id\"L\n\"IsisLspIpv4InternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"L\n\"IsisLspIpv4ExternalReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV4Prefix\"\xd7\x03\n\x0fIsisLspV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12N\n\x13redistribution_type\x18\x03 \x01(\x0e\x32,.otg.IsisLspV4Prefix.RedistributionType.EnumH\x02\x88\x01\x01\x12\x1b\n\x0e\x64\x65\x66\x61ult_metric\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV4Prefix.OriginType.EnumH\x04\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\x16\n\x14_redistribution_typeB\x11\n\x0f_default_metricB\x0e\n\x0c_origin_type\"T\n\"IsisLspExtendedIpv4ReachabilityTlv\x12.\n\x08prefixes\x18\x01 \x03(\x0b\x32\x1c.otg.IsisLspExtendedV4Prefix\"\x98\x03\n\x17IsisLspExtendedV4Prefix\x12\x19\n\x0cipv4_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12V\n\x13redistribution_type\x18\x04 \x01(\x0e\x32\x34.otg.IsisLspExtendedV4Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12<\n\x11prefix_attributes\x18\x05 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributesH\x04\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x42\x0f\n\r_ipv4_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_typeB\x14\n\x12_prefix_attributes\"D\n\x1aIsisLspIpv6ReachabilityTlv\x12&\n\x08prefixes\x18\x01 \x03(\x0b\x32\x14.otg.IsisLspV6Prefix\"\x9b\x04\n\x0fIsisLspV6Prefix\x12\x19\n\x0cipv6_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1a\n\rprefix_length\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x13\n\x06metric\x18\x03 \x01(\x05H\x02\x88\x01\x01\x12N\n\x13redistribution_type\x18\x04 \x01(\x0e\x32,.otg.IsisLspV6Prefix.RedistributionType.EnumH\x03\x88\x01\x01\x12>\n\x0borigin_type\x18\x05 \x01(\x0e\x32$.otg.IsisLspV6Prefix.OriginType.EnumH\x04\x88\x01\x01\x12<\n\x11prefix_attributes\x18\x06 \x01(\x0b\x32\x1c.otg.IsisLspPrefixAttributesH\x05\x88\x01\x01\x1a?\n\x12RedistributionType\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1a\x41\n\nOriginType\"3\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0c\n\x08internal\x10\x01\x12\x0c\n\x08\x65xternal\x10\x02\x42\x0f\n\r_ipv6_addressB\x10\n\x0e_prefix_lengthB\t\n\x07_metricB\x16\n\x14_redistribution_typeB\x0e\n\x0c_origin_typeB\x14\n\x12_prefix_attributes\"y\n\x17IsisLspPrefixAttributes\x12\x13\n\x06x_flag\x18\x01 \x01(\x08H\x00\x88\x01\x01\x12\x13\n\x06r_flag\x18\x02 \x01(\x08H\x01\x88\x01\x01\x12\x13\n\x06n_flag\x18\x03 \x01(\x08H\x02\x88\x01\x01\x42\t\n\x07_x_flagB\t\n\x07_r_flagB\t\n\x07_n_flag\"L\n\x19LldpNeighborsStateRequest\x12\x12\n\nlldp_names\x18\x01 \x03(\t\x12\x1b\n\x13neighbor_id_filters\x18\x02 \x03(\t\"\x8b\t\n\x12LldpNeighborsState\x12\x16\n\tlldp_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bsystem_name\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x1f\n\x12system_description\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x17\n\nchassis_id\x18\x04 \x01(\tH\x03\x88\x01\x01\x12H\n\x0f\x63hassis_id_type\x18\x05 \x01(\x0e\x32*.otg.LldpNeighborsState.ChassisIdType.EnumH\x04\x88\x01\x01\x12\x18\n\x0bneighbor_id\x18\x06 \x01(\tH\x05\x88\x01\x01\x12\x10\n\x03\x61ge\x18\x07 \x01(\x03H\x06\x88\x01\x01\x12\x18\n\x0blast_update\x18\x08 \x01(\x03H\x07\x88\x01\x01\x12\x10\n\x03ttl\x18\t \x01(\x05H\x08\x88\x01\x01\x12\x14\n\x07port_id\x18\n \x01(\tH\t\x88\x01\x01\x12\x42\n\x0cport_id_type\x18\x0b \x01(\x0e\x32\'.otg.LldpNeighborsState.PortIdType.EnumH\n\x88\x01\x01\x12\x1d\n\x10port_description\x18\x0c \x01(\tH\x0b\x88\x01\x01\x12\x1f\n\x12management_address\x18\r \x01(\tH\x0c\x88\x01\x01\x12$\n\x17management_address_type\x18\x0e \x01(\tH\r\x88\x01\x01\x12,\n\x0b\x63ustom_tlvs\x18\x0f \x03(\x0b\x32\x17.otg.LldpCustomTLVState\x12.\n\x0c\x63\x61pabilities\x18\x10 \x03(\x0b\x32\x18.otg.LldpCapabilityState\x1a\xae\x01\n\rChassisIdType\"\x9c\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x15\n\x11\x63hassis_component\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x1a\xaa\x01\n\nPortIdType\"\x9b\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x12\n\x0eport_component\x10\x01\x12\x13\n\x0fnetwork_address\x10\x02\x12\x14\n\x10\x61gent_circuit_id\x10\x03\x12\x0f\n\x0bmac_address\x10\x04\x12\x12\n\x0einterface_name\x10\x05\x12\t\n\x05local\x10\x06\x12\x13\n\x0finterface_alias\x10\x07\x42\x0c\n\n_lldp_nameB\x0e\n\x0c_system_nameB\x15\n\x13_system_descriptionB\r\n\x0b_chassis_idB\x12\n\x10_chassis_id_typeB\x0e\n\x0c_neighbor_idB\x06\n\x04_ageB\x0e\n\x0c_last_updateB\x06\n\x04_ttlB\n\n\x08_port_idB\x0f\n\r_port_id_typeB\x13\n\x11_port_descriptionB\x15\n\x13_management_addressB\x1a\n\x18_management_address_type\"\x82\x01\n\x12LldpCustomTLVState\x12\x18\n\x0b\x63ustom_type\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x10\n\x03oui\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0boui_subtype\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x0e\n\x0c_custom_typeB\x06\n\x04_ouiB\x0e\n\x0c_oui_subtype\"\x90\x03\n\x13LldpCapabilityState\x12J\n\x0f\x63\x61pability_name\x18\x01 \x01(\x0e\x32,.otg.LldpCapabilityState.CapabilityName.EnumH\x00\x88\x01\x01\x12\x1f\n\x12\x63\x61pability_enabled\x18\x02 \x01(\x08H\x01\x88\x01\x01\x1a\xe0\x01\n\x0e\x43\x61pabilityName\"\xcd\x01\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x0e\n\nmac_bridge\x10\x01\x12\x16\n\x12two_port_mac_relay\x10\x02\x12\x0c\n\x08repeater\x10\x03\x12\x17\n\x13\x64ocsis_cable_device\x10\x04\x12\n\n\x06s_vlan\x10\x05\x12\r\n\ttelephone\x10\x06\x12\t\n\x05other\x10\x07\x12\n\n\x06router\x10\x08\x12\n\n\x06\x63_vlan\x10\t\x12\x10\n\x0cstation_only\x10\n\x12\x15\n\x11wlan_access_point\x10\x0b\x42\x12\n\x10_capability_nameB\x15\n\x13_capability_enabled\"1\n\x14RsvpLspsStateRequest\x12\x19\n\x11rsvp_router_names\x18\x01 \x03(\t\"m\n\rRsvpLspsState\x12\x1d\n\x10rsvp_router_name\x18\x01 \x01(\tH\x00\x88\x01\x01\x12(\n\tipv4_lsps\x18\x02 \x03(\x0b\x32\x15.otg.RsvpIPv4LspStateB\x13\n\x11_rsvp_router_name\"\xef\x01\n\x10RsvpIPv4LspState\x12\x1b\n\x0esource_address\x18\x01 \x01(\tH\x00\x88\x01\x01\x12 \n\x13\x64\x65stination_address\x18\x02 \x01(\tH\x01\x88\x01\x01\x12#\n\x03lsp\x18\x03 \x01(\x0b\x32\x11.otg.RsvpLspStateH\x02\x88\x01\x01\x12!\n\x04rros\x18\x04 \x03(\x0b\x32\x13.otg.RsvpLspIpv4Rro\x12!\n\x04\x65ros\x18\x05 \x03(\x0b\x32\x13.otg.RsvpLspIpv4EroB\x11\n\x0f_source_addressB\x16\n\x14_destination_addressB\x06\n\x04_lsp\"\xb4\x04\n\x0cRsvpLspState\x12\x16\n\ttunnel_id\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06lsp_id\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x19\n\x0csession_name\x18\x03 \x01(\tH\x02\x88\x01\x01\x12\x15\n\x08label_in\x18\x04 \x01(\x05H\x03\x88\x01\x01\x12\x16\n\tlabel_out\x18\x05 \x01(\x05H\x04\x88\x01\x01\x12\x41\n\x0esession_status\x18\x06 \x01(\x0e\x32$.otg.RsvpLspState.SessionStatus.EnumH\x05\x88\x01\x01\x12\x44\n\x10last_flap_reason\x18\x07 \x01(\x0e\x32%.otg.RsvpLspState.LastFlapReason.EnumH\x06\x88\x01\x01\x12\x14\n\x07up_time\x18\x08 \x01(\x03H\x07\x88\x01\x01\x1a:\n\rSessionStatus\")\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x06\n\x02up\x10\x01\x12\x08\n\x04\x64own\x10\x02\x1aY\n\x0eLastFlapReason\"G\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tresv_tear\x10\x01\x12\r\n\tpath_tear\x10\x02\x12\x10\n\x0cpath_timeout\x10\x03\x42\x0c\n\n_tunnel_idB\t\n\x07_lsp_idB\x0f\n\r_session_nameB\x0b\n\t_label_inB\x0c\n\n_label_outB\x11\n\x0f_session_statusB\x13\n\x11_last_flap_reasonB\n\n\x08_up_time\"b\n\x0eRsvpLspIpv4Rro\x12\x14\n\x07\x61\x64\x64ress\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x1b\n\x0ereported_label\x18\x02 \x01(\x05H\x01\x88\x01\x01\x42\n\n\x08_addressB\x11\n\x0f_reported_label\"\xf2\x01\n\x0eRsvpLspIpv4Ero\x12\x13\n\x06prefix\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x10\n\x03\x61sn\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x30\n\x04type\x18\x03 \x01(\x0e\x32\x1d.otg.RsvpLspIpv4Ero.Type.EnumH\x02\x88\x01\x01\x1ak\n\x04Type\"c\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04ipv4\x10\x01\x12\x08\n\x04ipv6\x10\x02\x12\x07\n\x03\x61sn\x10\x03\x12\x08\n\x04\x61sn4\x10\x04\x12\t\n\x05label\x10\x05\x12\x18\n\x14unnumbered_interface\x10\x06\x42\t\n\x07_prefixB\x06\n\x04_asnB\x07\n\x05_type\"#\n\x0e\x43\x61ptureRequest\x12\x11\n\tport_name\x18\x01 \x01(\t\"o\n\x1fPatternFlowEthernetDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"w\n\x1dPatternFlowEthernetDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xdc\x03\n\x16PatternFlowEthernetDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x11\n\x04\x61uto\x18\x04 \x01(\tH\x02\x88\x01\x01\x12\x39\n\x0bmetric_tags\x18\x06 \x03(\x0b\x32$.otg.PatternFlowEthernetDstMetricTag\x12:\n\tincrement\x18\x07 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounterH\x03\x88\x01\x01\x12:\n\tdecrement\x18\x08 \x01(\x0b\x32\".otg.PatternFlowEthernetDstCounterH\x04\x88\x01\x01\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"o\n\x1fPatternFlowEthernetSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"w\n\x1dPatternFlowEthernetSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb6\x03\n\x16PatternFlowEthernetSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowEthernetSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x39\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32$.otg.PatternFlowEthernetSrcMetricTag\x12:\n\tincrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x07 \x01(\x0b\x32\".otg.PatternFlowEthernetSrcCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n%PatternFlowEthernetEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"}\n#PatternFlowEthernetEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xfa\x03\n\x1cPatternFlowEthernetEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x11\n\x04\x61uto\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x06 \x03(\x0b\x32*.otg.PatternFlowEthernetEtherTypeMetricTag\x12@\n\tincrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x08 \x01(\x0b\x32(.otg.PatternFlowEthernetEtherTypeCounterH\x04\x88\x01\x01\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n$PatternFlowEthernetPfcQueueMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"|\n\"PatternFlowEthernetPfcQueueCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xcf\x03\n\x1bPatternFlowEthernetPfcQueue\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPfcQueue.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12>\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32).otg.PatternFlowEthernetPfcQueueMetricTag\x12?\n\tincrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x07 \x01(\x0b\x32\'.otg.PatternFlowEthernetPfcQueueCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"p\n PatternFlowVlanPriorityMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"x\n\x1ePatternFlowVlanPriorityCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbb\x03\n\x17PatternFlowVlanPriority\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowVlanPriority.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12:\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32%.otg.PatternFlowVlanPriorityMetricTag\x12;\n\tincrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowVlanPriorityCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"k\n\x1bPatternFlowVlanCfiMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"s\n\x19PatternFlowVlanCfiCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa2\x03\n\x12PatternFlowVlanCfi\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowVlanCfi.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x35\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32 .otg.PatternFlowVlanCfiMetricTag\x12\x36\n\tincrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x07 \x01(\x0b\x32\x1e.otg.PatternFlowVlanCfiCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"j\n\x1aPatternFlowVlanIdMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"r\n\x18PatternFlowVlanIdCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x9d\x03\n\x11PatternFlowVlanId\x12\x37\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\".otg.PatternFlowVlanId.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x34\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\x1f.otg.PatternFlowVlanIdMetricTag\x12\x35\n\tincrement\x18\x06 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounterH\x02\x88\x01\x01\x12\x35\n\tdecrement\x18\x07 \x01(\x0b\x32\x1d.otg.PatternFlowVlanIdCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"l\n\x1cPatternFlowVlanTpidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"t\n\x1aPatternFlowVlanTpidCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa7\x03\n\x13PatternFlowVlanTpid\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVlanTpid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x36\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32!.otg.PatternFlowVlanTpidMetricTag\x12\x37\n\tincrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounterH\x02\x88\x01\x01\x12\x37\n\tdecrement\x18\x07 \x01(\x0b\x32\x1f.otg.PatternFlowVlanTpidCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"n\n\x1ePatternFlowVxlanFlagsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"v\n\x1cPatternFlowVxlanFlagsCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb1\x03\n\x15PatternFlowVxlanFlags\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowVxlanFlags.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x38\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32#.otg.PatternFlowVxlanFlagsMetricTag\x12\x39\n\tincrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x07 \x01(\x0b\x32!.otg.PatternFlowVxlanFlagsCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"r\n\"PatternFlowVxlanReserved0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"z\n PatternFlowVxlanReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc5\x03\n\x19PatternFlowVxlanReserved0\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12<\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\'.otg.PatternFlowVxlanReserved0MetricTag\x12=\n\tincrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0CounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x07 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved0CounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"l\n\x1cPatternFlowVxlanVniMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"t\n\x1aPatternFlowVxlanVniCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xcd\x03\n\x13PatternFlowVxlanVni\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowVxlanVni.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x11\n\x04\x61uto\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x36\n\x0bmetric_tags\x18\x06 \x03(\x0b\x32!.otg.PatternFlowVxlanVniMetricTag\x12\x37\n\tincrement\x18\x07 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounterH\x03\x88\x01\x01\x12\x37\n\tdecrement\x18\x08 \x01(\x0b\x32\x1f.otg.PatternFlowVxlanVniCounterH\x04\x88\x01\x01\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"r\n\"PatternFlowVxlanReserved1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"z\n PatternFlowVxlanReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc5\x03\n\x19PatternFlowVxlanReserved1\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowVxlanReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12<\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\'.otg.PatternFlowVxlanReserved1MetricTag\x12=\n\tincrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1CounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x07 \x01(\x0b\x32%.otg.PatternFlowVxlanReserved1CounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"o\n\x1fPatternFlowIpv4VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"w\n\x1dPatternFlowIpv4VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb6\x03\n\x16PatternFlowIpv4Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x39\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32$.otg.PatternFlowIpv4VersionMetricTag\x12:\n\tincrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x07 \x01(\x0b\x32\".otg.PatternFlowIpv4VersionCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n$PatternFlowIpv4HeaderLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"|\n\"PatternFlowIpv4HeaderLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xf5\x03\n\x1bPatternFlowIpv4HeaderLength\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4HeaderLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x11\n\x04\x61uto\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12>\n\x0bmetric_tags\x18\x06 \x03(\x0b\x32).otg.PatternFlowIpv4HeaderLengthMetricTag\x12?\n\tincrement\x18\x07 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounterH\x03\x88\x01\x01\x12?\n\tdecrement\x18\x08 \x01(\x0b\x32\'.otg.PatternFlowIpv4HeaderLengthCounterH\x04\x88\x01\x01\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n#PatternFlowIpv4TotalLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"{\n!PatternFlowIpv4TotalLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xf0\x03\n\x1aPatternFlowIpv4TotalLength\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TotalLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x11\n\x04\x61uto\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x06 \x03(\x0b\x32(.otg.PatternFlowIpv4TotalLengthMetricTag\x12>\n\tincrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounterH\x03\x88\x01\x01\x12>\n\tdecrement\x18\x08 \x01(\x0b\x32&.otg.PatternFlowIpv4TotalLengthCounterH\x04\x88\x01\x01\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n&PatternFlowIpv4IdentificationMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"~\n$PatternFlowIpv4IdentificationCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xd9\x03\n\x1dPatternFlowIpv4Identification\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4Identification.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12@\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32+.otg.PatternFlowIpv4IdentificationMetricTag\x12\x41\n\tincrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x07 \x01(\x0b\x32).otg.PatternFlowIpv4IdentificationCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"p\n PatternFlowIpv4ReservedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"x\n\x1ePatternFlowIpv4ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbb\x03\n\x17PatternFlowIpv4Reserved\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12:\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32%.otg.PatternFlowIpv4ReservedMetricTag\x12;\n\tincrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowIpv4ReservedCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n$PatternFlowIpv4DontFragmentMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"|\n\"PatternFlowIpv4DontFragmentCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xcf\x03\n\x1bPatternFlowIpv4DontFragment\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv4DontFragment.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12>\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32).otg.PatternFlowIpv4DontFragmentMetricTag\x12?\n\tincrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x07 \x01(\x0b\x32\'.otg.PatternFlowIpv4DontFragmentCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n%PatternFlowIpv4MoreFragmentsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"}\n#PatternFlowIpv4MoreFragmentsCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xd4\x03\n\x1cPatternFlowIpv4MoreFragments\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4MoreFragments.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12?\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32*.otg.PatternFlowIpv4MoreFragmentsMetricTag\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowIpv4MoreFragmentsCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n&PatternFlowIpv4FragmentOffsetMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"~\n$PatternFlowIpv4FragmentOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xd9\x03\n\x1dPatternFlowIpv4FragmentOffset\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4FragmentOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12@\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32+.otg.PatternFlowIpv4FragmentOffsetMetricTag\x12\x41\n\tincrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x07 \x01(\x0b\x32).otg.PatternFlowIpv4FragmentOffsetCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"r\n\"PatternFlowIpv4TimeToLiveMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"z\n PatternFlowIpv4TimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc5\x03\n\x19PatternFlowIpv4TimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv4TimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12<\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\'.otg.PatternFlowIpv4TimeToLiveMetricTag\x12=\n\tincrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x07 \x01(\x0b\x32%.otg.PatternFlowIpv4TimeToLiveCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"p\n PatternFlowIpv4ProtocolMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"x\n\x1ePatternFlowIpv4ProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xe1\x03\n\x17PatternFlowIpv4Protocol\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4Protocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x11\n\x04\x61uto\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12:\n\x0bmetric_tags\x18\x06 \x03(\x0b\x32%.otg.PatternFlowIpv4ProtocolMetricTag\x12;\n\tincrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounterH\x03\x88\x01\x01\x12;\n\tdecrement\x18\x08 \x01(\x0b\x32#.otg.PatternFlowIpv4ProtocolCounterH\x04\x88\x01\x01\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIpv4HeaderChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4HeaderChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIpv4HeaderChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\x05H\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"k\n\x1bPatternFlowIpv4SrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"s\n\x19PatternFlowIpv4SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa2\x03\n\x12PatternFlowIpv4Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x35\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32 .otg.PatternFlowIpv4SrcMetricTag\x12\x36\n\tincrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x07 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4SrcCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"k\n\x1bPatternFlowIpv4DstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"s\n\x19PatternFlowIpv4DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa2\x03\n\x12PatternFlowIpv4Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv4Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x35\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32 .otg.PatternFlowIpv4DstMetricTag\x12\x36\n\tincrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x07 \x01(\x0b\x32\x1e.otg.PatternFlowIpv4DstCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n#PatternFlowIpv4PriorityRawMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"{\n!PatternFlowIpv4PriorityRawCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xca\x03\n\x1aPatternFlowIpv4PriorityRaw\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4PriorityRaw.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12=\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32(.otg.PatternFlowIpv4PriorityRawMetricTag\x12>\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowIpv4PriorityRawCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"o\n\x1fPatternFlowIpv4DscpPhbMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"w\n\x1dPatternFlowIpv4DscpPhbCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb6\x03\n\x16PatternFlowIpv4DscpPhb\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpPhb.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x39\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32$.otg.PatternFlowIpv4DscpPhbMetricTag\x12:\n\tincrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x07 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpPhbCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"o\n\x1fPatternFlowIpv4DscpEcnMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"w\n\x1dPatternFlowIpv4DscpEcnCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb6\x03\n\x16PatternFlowIpv4DscpEcn\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv4DscpEcn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x39\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32$.otg.PatternFlowIpv4DscpEcnMetricTag\x12:\n\tincrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x07 \x01(\x0b\x32\".otg.PatternFlowIpv4DscpEcnCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n%PatternFlowIpv4TosPrecedenceMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"}\n#PatternFlowIpv4TosPrecedenceCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xd4\x03\n\x1cPatternFlowIpv4TosPrecedence\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosPrecedence.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12?\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32*.otg.PatternFlowIpv4TosPrecedenceMetricTag\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowIpv4TosPrecedenceCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"p\n PatternFlowIpv4TosDelayMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"x\n\x1ePatternFlowIpv4TosDelayCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbb\x03\n\x17PatternFlowIpv4TosDelay\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv4TosDelay.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12:\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32%.otg.PatternFlowIpv4TosDelayMetricTag\x12;\n\tincrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowIpv4TosDelayCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n%PatternFlowIpv4TosThroughputMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"}\n#PatternFlowIpv4TosThroughputCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xd4\x03\n\x1cPatternFlowIpv4TosThroughput\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv4TosThroughput.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12?\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32*.otg.PatternFlowIpv4TosThroughputMetricTag\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowIpv4TosThroughputCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n&PatternFlowIpv4TosReliabilityMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"~\n$PatternFlowIpv4TosReliabilityCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xd9\x03\n\x1dPatternFlowIpv4TosReliability\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIpv4TosReliability.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12@\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32+.otg.PatternFlowIpv4TosReliabilityMetricTag\x12\x41\n\tincrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x07 \x01(\x0b\x32).otg.PatternFlowIpv4TosReliabilityCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n#PatternFlowIpv4TosMonetaryMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"{\n!PatternFlowIpv4TosMonetaryCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xca\x03\n\x1aPatternFlowIpv4TosMonetary\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowIpv4TosMonetary.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12=\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32(.otg.PatternFlowIpv4TosMonetaryMetricTag\x12>\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowIpv4TosMonetaryCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"q\n!PatternFlowIpv4TosUnusedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"y\n\x1fPatternFlowIpv4TosUnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc0\x03\n\x18PatternFlowIpv4TosUnused\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv4TosUnused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12;\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32&.otg.PatternFlowIpv4TosUnusedMetricTag\x12<\n\tincrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x07 \x01(\x0b\x32$.otg.PatternFlowIpv4TosUnusedCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"o\n\x1fPatternFlowIpv6VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"w\n\x1dPatternFlowIpv6VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb6\x03\n\x16PatternFlowIpv6Version\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowIpv6Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x39\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32$.otg.PatternFlowIpv6VersionMetricTag\x12:\n\tincrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x07 \x01(\x0b\x32\".otg.PatternFlowIpv6VersionCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n$PatternFlowIpv6TrafficClassMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"|\n\"PatternFlowIpv6TrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xcf\x03\n\x1bPatternFlowIpv6TrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIpv6TrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12>\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32).otg.PatternFlowIpv6TrafficClassMetricTag\x12?\n\tincrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x07 \x01(\x0b\x32\'.otg.PatternFlowIpv6TrafficClassCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"q\n!PatternFlowIpv6FlowLabelMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"y\n\x1fPatternFlowIpv6FlowLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc0\x03\n\x18PatternFlowIpv6FlowLabel\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIpv6FlowLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12;\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32&.otg.PatternFlowIpv6FlowLabelMetricTag\x12<\n\tincrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x07 \x01(\x0b\x32$.otg.PatternFlowIpv6FlowLabelCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n%PatternFlowIpv6PayloadLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"}\n#PatternFlowIpv6PayloadLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xfa\x03\n\x1cPatternFlowIpv6PayloadLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowIpv6PayloadLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x11\n\x04\x61uto\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x06 \x03(\x0b\x32*.otg.PatternFlowIpv6PayloadLengthMetricTag\x12@\n\tincrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x08 \x01(\x0b\x32(.otg.PatternFlowIpv6PayloadLengthCounterH\x04\x88\x01\x01\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"r\n\"PatternFlowIpv6NextHeaderMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"z\n PatternFlowIpv6NextHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xeb\x03\n\x19PatternFlowIpv6NextHeader\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIpv6NextHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x11\n\x04\x61uto\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12<\n\x0bmetric_tags\x18\x06 \x03(\x0b\x32\'.otg.PatternFlowIpv6NextHeaderMetricTag\x12=\n\tincrement\x18\x07 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounterH\x03\x88\x01\x01\x12=\n\tdecrement\x18\x08 \x01(\x0b\x32%.otg.PatternFlowIpv6NextHeaderCounterH\x04\x88\x01\x01\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"p\n PatternFlowIpv6HopLimitMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"x\n\x1ePatternFlowIpv6HopLimitCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbb\x03\n\x17PatternFlowIpv6HopLimit\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIpv6HopLimit.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12:\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32%.otg.PatternFlowIpv6HopLimitMetricTag\x12;\n\tincrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowIpv6HopLimitCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"k\n\x1bPatternFlowIpv6SrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"s\n\x19PatternFlowIpv6SrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa2\x03\n\x12PatternFlowIpv6Src\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Src.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x35\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32 .otg.PatternFlowIpv6SrcMetricTag\x12\x36\n\tincrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x07 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6SrcCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"k\n\x1bPatternFlowIpv6DstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"s\n\x19PatternFlowIpv6DstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa2\x03\n\x12PatternFlowIpv6Dst\x12\x38\n\x06\x63hoice\x18\x01 \x01(\x0e\x32#.otg.PatternFlowIpv6Dst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x35\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32 .otg.PatternFlowIpv6DstMetricTag\x12\x36\n\tincrement\x18\x06 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounterH\x02\x88\x01\x01\x12\x36\n\tdecrement\x18\x07 \x01(\x0b\x32\x1e.otg.PatternFlowIpv6DstCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"o\n\x1fPatternFlowPfcPauseDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"w\n\x1dPatternFlowPfcPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb6\x03\n\x16PatternFlowPfcPauseDst\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x39\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32$.otg.PatternFlowPfcPauseDstMetricTag\x12:\n\tincrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x07 \x01(\x0b\x32\".otg.PatternFlowPfcPauseDstCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"o\n\x1fPatternFlowPfcPauseSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"w\n\x1dPatternFlowPfcPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb6\x03\n\x16PatternFlowPfcPauseSrc\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowPfcPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x39\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32$.otg.PatternFlowPfcPauseSrcMetricTag\x12:\n\tincrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x07 \x01(\x0b\x32\".otg.PatternFlowPfcPauseSrcCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n%PatternFlowPfcPauseEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"}\n#PatternFlowPfcPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xd4\x03\n\x1cPatternFlowPfcPauseEtherType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowPfcPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12?\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32*.otg.PatternFlowPfcPauseEtherTypeMetricTag\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowPfcPauseEtherTypeCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n)PatternFlowPfcPauseControlOpCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x81\x01\n\'PatternFlowPfcPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xe8\x03\n PatternFlowPfcPauseControlOpCode\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowPfcPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x43\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32..otg.PatternFlowPfcPauseControlOpCodeMetricTag\x12\x44\n\tincrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x07 \x01(\x0b\x32,.otg.PatternFlowPfcPauseControlOpCodeCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"}\n-PatternFlowPfcPauseClassEnableVectorMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x85\x01\n+PatternFlowPfcPauseClassEnableVectorCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xfc\x03\n$PatternFlowPfcPauseClassEnableVector\x12J\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x35.otg.PatternFlowPfcPauseClassEnableVector.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12G\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\x32.otg.PatternFlowPfcPauseClassEnableVectorMetricTag\x12H\n\tincrement\x18\x06 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounterH\x02\x88\x01\x01\x12H\n\tdecrement\x18\x07 \x01(\x0b\x32\x30.otg.PatternFlowPfcPauseClassEnableVectorCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\'PatternFlowPfcPausePauseClass0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x7f\n%PatternFlowPfcPausePauseClass0Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass0\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x41\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass0MetricTag\x12\x42\n\tincrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x07 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass0CounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\'PatternFlowPfcPausePauseClass1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x7f\n%PatternFlowPfcPausePauseClass1Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass1\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x41\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass1MetricTag\x12\x42\n\tincrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x07 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass1CounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\'PatternFlowPfcPausePauseClass2MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x7f\n%PatternFlowPfcPausePauseClass2Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass2\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x41\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass2MetricTag\x12\x42\n\tincrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x07 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass2CounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\'PatternFlowPfcPausePauseClass3MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x7f\n%PatternFlowPfcPausePauseClass3Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass3\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass3.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x41\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass3MetricTag\x12\x42\n\tincrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x07 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass3CounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\'PatternFlowPfcPausePauseClass4MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x7f\n%PatternFlowPfcPausePauseClass4Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass4\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass4.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x41\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass4MetricTag\x12\x42\n\tincrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x07 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass4CounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\'PatternFlowPfcPausePauseClass5MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x7f\n%PatternFlowPfcPausePauseClass5Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass5\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass5.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x41\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass5MetricTag\x12\x42\n\tincrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x07 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass5CounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\'PatternFlowPfcPausePauseClass6MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x7f\n%PatternFlowPfcPausePauseClass6Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass6\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass6.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x41\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass6MetricTag\x12\x42\n\tincrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x07 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass6CounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\'PatternFlowPfcPausePauseClass7MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x7f\n%PatternFlowPfcPausePauseClass7Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xde\x03\n\x1ePatternFlowPfcPausePauseClass7\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowPfcPausePauseClass7.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x41\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32,.otg.PatternFlowPfcPausePauseClass7MetricTag\x12\x42\n\tincrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7CounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x07 \x01(\x0b\x32*.otg.PatternFlowPfcPausePauseClass7CounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n$PatternFlowEthernetPauseDstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"|\n\"PatternFlowEthernetPauseDstCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xcf\x03\n\x1bPatternFlowEthernetPauseDst\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseDst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12>\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32).otg.PatternFlowEthernetPauseDstMetricTag\x12?\n\tincrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x07 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseDstCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n$PatternFlowEthernetPauseSrcMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"|\n\"PatternFlowEthernetPauseSrcCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xcf\x03\n\x1bPatternFlowEthernetPauseSrc\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowEthernetPauseSrc.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12>\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32).otg.PatternFlowEthernetPauseSrcMetricTag\x12?\n\tincrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x07 \x01(\x0b\x32\'.otg.PatternFlowEthernetPauseSrcCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n*PatternFlowEthernetPauseEtherTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x82\x01\n(PatternFlowEthernetPauseEtherTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xed\x03\n!PatternFlowEthernetPauseEtherType\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowEthernetPauseEtherType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x44\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32/.otg.PatternFlowEthernetPauseEtherTypeMetricTag\x12\x45\n\tincrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounterH\x02\x88\x01\x01\x12\x45\n\tdecrement\x18\x07 \x01(\x0b\x32-.otg.PatternFlowEthernetPauseEtherTypeCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"~\n.PatternFlowEthernetPauseControlOpCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x86\x01\n,PatternFlowEthernetPauseControlOpCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x81\x04\n%PatternFlowEthernetPauseControlOpCode\x12K\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x36.otg.PatternFlowEthernetPauseControlOpCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12H\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\x33.otg.PatternFlowEthernetPauseControlOpCodeMetricTag\x12I\n\tincrement\x18\x06 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounterH\x02\x88\x01\x01\x12I\n\tdecrement\x18\x07 \x01(\x0b\x32\x31.otg.PatternFlowEthernetPauseControlOpCodeCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n%PatternFlowEthernetPauseTimeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"}\n#PatternFlowEthernetPauseTimeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xd4\x03\n\x1cPatternFlowEthernetPauseTime\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowEthernetPauseTime.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12?\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32*.otg.PatternFlowEthernetPauseTimeMetricTag\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowEthernetPauseTimeCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"n\n\x1ePatternFlowTcpSrcPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"v\n\x1cPatternFlowTcpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb1\x03\n\x15PatternFlowTcpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x38\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32#.otg.PatternFlowTcpSrcPortMetricTag\x12\x39\n\tincrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x07 \x01(\x0b\x32!.otg.PatternFlowTcpSrcPortCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"n\n\x1ePatternFlowTcpDstPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"v\n\x1cPatternFlowTcpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb1\x03\n\x15PatternFlowTcpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x38\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32#.otg.PatternFlowTcpDstPortMetricTag\x12\x39\n\tincrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x07 \x01(\x0b\x32!.otg.PatternFlowTcpDstPortCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"m\n\x1dPatternFlowTcpSeqNumMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"u\n\x1bPatternFlowTcpSeqNumCounter\x12\x12\n\x05start\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xac\x03\n\x14PatternFlowTcpSeqNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpSeqNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x03\x12\x37\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\".otg.PatternFlowTcpSeqNumMetricTag\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowTcpSeqNumCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"m\n\x1dPatternFlowTcpAckNumMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"u\n\x1bPatternFlowTcpAckNumCounter\x12\x12\n\x05start\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xac\x03\n\x14PatternFlowTcpAckNum\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpAckNum.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x03\x12\x37\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\".otg.PatternFlowTcpAckNumMetricTag\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowTcpAckNumCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"q\n!PatternFlowTcpDataOffsetMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"y\n\x1fPatternFlowTcpDataOffsetCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc0\x03\n\x18PatternFlowTcpDataOffset\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowTcpDataOffset.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12;\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32&.otg.PatternFlowTcpDataOffsetMetricTag\x12<\n\tincrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x07 \x01(\x0b\x32$.otg.PatternFlowTcpDataOffsetCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"l\n\x1cPatternFlowTcpEcnNsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"t\n\x1aPatternFlowTcpEcnNsCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xa7\x03\n\x13PatternFlowTcpEcnNs\x12\x39\n\x06\x63hoice\x18\x01 \x01(\x0e\x32$.otg.PatternFlowTcpEcnNs.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x36\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32!.otg.PatternFlowTcpEcnNsMetricTag\x12\x37\n\tincrement\x18\x06 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounterH\x02\x88\x01\x01\x12\x37\n\tdecrement\x18\x07 \x01(\x0b\x32\x1f.otg.PatternFlowTcpEcnNsCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"m\n\x1dPatternFlowTcpEcnCwrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"u\n\x1bPatternFlowTcpEcnCwrCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xac\x03\n\x14PatternFlowTcpEcnCwr\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpEcnCwr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x37\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\".otg.PatternFlowTcpEcnCwrMetricTag\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowTcpEcnCwrCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"n\n\x1ePatternFlowTcpEcnEchoMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"v\n\x1cPatternFlowTcpEcnEchoCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb1\x03\n\x15PatternFlowTcpEcnEcho\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowTcpEcnEcho.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x38\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32#.otg.PatternFlowTcpEcnEchoMetricTag\x12\x39\n\tincrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x07 \x01(\x0b\x32!.otg.PatternFlowTcpEcnEchoCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"m\n\x1dPatternFlowTcpCtlUrgMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"u\n\x1bPatternFlowTcpCtlUrgCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xac\x03\n\x14PatternFlowTcpCtlUrg\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlUrg.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x37\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\".otg.PatternFlowTcpCtlUrgMetricTag\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowTcpCtlUrgCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"m\n\x1dPatternFlowTcpCtlAckMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"u\n\x1bPatternFlowTcpCtlAckCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xac\x03\n\x14PatternFlowTcpCtlAck\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlAck.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x37\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\".otg.PatternFlowTcpCtlAckMetricTag\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowTcpCtlAckCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"m\n\x1dPatternFlowTcpCtlPshMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"u\n\x1bPatternFlowTcpCtlPshCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xac\x03\n\x14PatternFlowTcpCtlPsh\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlPsh.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x37\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\".otg.PatternFlowTcpCtlPshMetricTag\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowTcpCtlPshCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"m\n\x1dPatternFlowTcpCtlRstMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"u\n\x1bPatternFlowTcpCtlRstCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xac\x03\n\x14PatternFlowTcpCtlRst\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlRst.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x37\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\".otg.PatternFlowTcpCtlRstMetricTag\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowTcpCtlRstCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"m\n\x1dPatternFlowTcpCtlSynMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"u\n\x1bPatternFlowTcpCtlSynCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xac\x03\n\x14PatternFlowTcpCtlSyn\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlSyn.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x37\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\".otg.PatternFlowTcpCtlSynMetricTag\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowTcpCtlSynCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"m\n\x1dPatternFlowTcpCtlFinMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"u\n\x1bPatternFlowTcpCtlFinCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xac\x03\n\x14PatternFlowTcpCtlFin\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpCtlFin.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x37\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\".otg.PatternFlowTcpCtlFinMetricTag\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowTcpCtlFinCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"m\n\x1dPatternFlowTcpWindowMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"u\n\x1bPatternFlowTcpWindowCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xac\x03\n\x14PatternFlowTcpWindow\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowTcpWindow.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x37\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\".otg.PatternFlowTcpWindowMetricTag\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowTcpWindowCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"n\n\x1ePatternFlowUdpSrcPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"v\n\x1cPatternFlowUdpSrcPortCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb1\x03\n\x15PatternFlowUdpSrcPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpSrcPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x38\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32#.otg.PatternFlowUdpSrcPortMetricTag\x12\x39\n\tincrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x07 \x01(\x0b\x32!.otg.PatternFlowUdpSrcPortCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"n\n\x1ePatternFlowUdpDstPortMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"v\n\x1cPatternFlowUdpDstPortCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb1\x03\n\x15PatternFlowUdpDstPort\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowUdpDstPort.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x38\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32#.otg.PatternFlowUdpDstPortMetricTag\x12\x39\n\tincrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x07 \x01(\x0b\x32!.otg.PatternFlowUdpDstPortCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"m\n\x1dPatternFlowUdpLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"u\n\x1bPatternFlowUdpLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xac\x03\n\x14PatternFlowUdpLength\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowUdpLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x37\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\".otg.PatternFlowUdpLengthMetricTag\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowUdpLengthCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xca\x02\n\x16PatternFlowUdpChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowUdpChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowUdpChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\x05H\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"v\n&PatternFlowGreChecksumPresentMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"~\n$PatternFlowGreChecksumPresentCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xd9\x03\n\x1dPatternFlowGreChecksumPresent\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGreChecksumPresent.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12@\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32+.otg.PatternFlowGreChecksumPresentMetricTag\x12\x41\n\tincrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x07 \x01(\x0b\x32).otg.PatternFlowGreChecksumPresentCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"p\n PatternFlowGreReserved0MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"x\n\x1ePatternFlowGreReserved0Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbb\x03\n\x17PatternFlowGreReserved0\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved0.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12:\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32%.otg.PatternFlowGreReserved0MetricTag\x12;\n\tincrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved0CounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowGreReserved0CounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"n\n\x1ePatternFlowGreVersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"v\n\x1cPatternFlowGreVersionCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb1\x03\n\x15PatternFlowGreVersion\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGreVersion.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x38\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32#.otg.PatternFlowGreVersionMetricTag\x12\x39\n\tincrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x07 \x01(\x0b\x32!.otg.PatternFlowGreVersionCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"o\n\x1fPatternFlowGreProtocolMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"w\n\x1dPatternFlowGreProtocolCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb6\x03\n\x16PatternFlowGreProtocol\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreProtocol.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x39\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32$.otg.PatternFlowGreProtocolMetricTag\x12:\n\tincrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x07 \x01(\x0b\x32\".otg.PatternFlowGreProtocolCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xca\x02\n\x16PatternFlowGreChecksum\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGreChecksum.Choice.EnumH\x00\x88\x01\x01\x12\x42\n\tgenerated\x18\x02 \x01(\x0e\x32*.otg.PatternFlowGreChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\x05H\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"p\n PatternFlowGreReserved1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"x\n\x1ePatternFlowGreReserved1Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbb\x03\n\x17PatternFlowGreReserved1\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGreReserved1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12:\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32%.otg.PatternFlowGreReserved1MetricTag\x12;\n\tincrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGreReserved1CounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowGreReserved1CounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"p\n PatternFlowGtpv1VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"x\n\x1ePatternFlowGtpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbb\x03\n\x17PatternFlowGtpv1Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12:\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32%.otg.PatternFlowGtpv1VersionMetricTag\x12;\n\tincrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowGtpv1VersionCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n%PatternFlowGtpv1ProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"}\n#PatternFlowGtpv1ProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xd4\x03\n\x1cPatternFlowGtpv1ProtocolType\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowGtpv1ProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12?\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32*.otg.PatternFlowGtpv1ProtocolTypeMetricTag\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowGtpv1ProtocolTypeCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"q\n!PatternFlowGtpv1ReservedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"y\n\x1fPatternFlowGtpv1ReservedCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc0\x03\n\x18PatternFlowGtpv1Reserved\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv1Reserved.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12;\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32&.otg.PatternFlowGtpv1ReservedMetricTag\x12<\n\tincrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x07 \x01(\x0b\x32$.otg.PatternFlowGtpv1ReservedCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"n\n\x1ePatternFlowGtpv1EFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"v\n\x1cPatternFlowGtpv1EFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb1\x03\n\x15PatternFlowGtpv1EFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1EFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x38\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32#.otg.PatternFlowGtpv1EFlagMetricTag\x12\x39\n\tincrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x07 \x01(\x0b\x32!.otg.PatternFlowGtpv1EFlagCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"n\n\x1ePatternFlowGtpv1SFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"v\n\x1cPatternFlowGtpv1SFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb1\x03\n\x15PatternFlowGtpv1SFlag\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowGtpv1SFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x38\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32#.otg.PatternFlowGtpv1SFlagMetricTag\x12\x39\n\tincrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x07 \x01(\x0b\x32!.otg.PatternFlowGtpv1SFlagCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"o\n\x1fPatternFlowGtpv1PnFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"w\n\x1dPatternFlowGtpv1PnFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb6\x03\n\x16PatternFlowGtpv1PnFlag\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv1PnFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x39\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32$.otg.PatternFlowGtpv1PnFlagMetricTag\x12:\n\tincrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x07 \x01(\x0b\x32\".otg.PatternFlowGtpv1PnFlagCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n$PatternFlowGtpv1MessageTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"|\n\"PatternFlowGtpv1MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xcf\x03\n\x1bPatternFlowGtpv1MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv1MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12>\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32).otg.PatternFlowGtpv1MessageTypeMetricTag\x12?\n\tincrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x07 \x01(\x0b\x32\'.otg.PatternFlowGtpv1MessageTypeCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n&PatternFlowGtpv1MessageLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"~\n$PatternFlowGtpv1MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xd9\x03\n\x1dPatternFlowGtpv1MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12@\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32+.otg.PatternFlowGtpv1MessageLengthMetricTag\x12\x41\n\tincrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x07 \x01(\x0b\x32).otg.PatternFlowGtpv1MessageLengthCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"m\n\x1dPatternFlowGtpv1TeidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"u\n\x1bPatternFlowGtpv1TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xac\x03\n\x14PatternFlowGtpv1Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv1Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x03\x12\x37\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\".otg.PatternFlowGtpv1TeidMetricTag\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowGtpv1TeidCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n&PatternFlowGtpv1SquenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"~\n$PatternFlowGtpv1SquenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xd9\x03\n\x1dPatternFlowGtpv1SquenceNumber\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv1SquenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12@\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32+.otg.PatternFlowGtpv1SquenceNumberMetricTag\x12\x41\n\tincrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x07 \x01(\x0b\x32).otg.PatternFlowGtpv1SquenceNumberCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n#PatternFlowGtpv1NPduNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"{\n!PatternFlowGtpv1NPduNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xca\x03\n\x1aPatternFlowGtpv1NPduNumber\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowGtpv1NPduNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12=\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32(.otg.PatternFlowGtpv1NPduNumberMetricTag\x12>\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowGtpv1NPduNumberCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x80\x01\n0PatternFlowGtpv1NextExtensionHeaderTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x88\x01\n.PatternFlowGtpv1NextExtensionHeaderTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x8b\x04\n\'PatternFlowGtpv1NextExtensionHeaderType\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowGtpv1NextExtensionHeaderType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12J\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\x35.otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag\x12K\n\tincrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounterH\x02\x88\x01\x01\x12K\n\tdecrement\x18\x07 \x01(\x0b\x32\x33.otg.PatternFlowGtpv1NextExtensionHeaderTypeCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x7f\n/PatternFlowGtpExtensionExtensionLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x87\x01\n-PatternFlowGtpExtensionExtensionLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x86\x04\n&PatternFlowGtpExtensionExtensionLength\x12L\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x37.otg.PatternFlowGtpExtensionExtensionLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12I\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\x34.otg.PatternFlowGtpExtensionExtensionLengthMetricTag\x12J\n\tincrement\x18\x06 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounterH\x02\x88\x01\x01\x12J\n\tdecrement\x18\x07 \x01(\x0b\x32\x32.otg.PatternFlowGtpExtensionExtensionLengthCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n(PatternFlowGtpExtensionContentsMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x80\x01\n&PatternFlowGtpExtensionContentsCounter\x12\x12\n\x05start\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xe3\x03\n\x1fPatternFlowGtpExtensionContents\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowGtpExtensionContents.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x03\x12\x42\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32-.otg.PatternFlowGtpExtensionContentsMetricTag\x12\x43\n\tincrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounterH\x02\x88\x01\x01\x12\x43\n\tdecrement\x18\x07 \x01(\x0b\x32+.otg.PatternFlowGtpExtensionContentsCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x83\x01\n3PatternFlowGtpExtensionNextExtensionHeaderMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x8b\x01\n1PatternFlowGtpExtensionNextExtensionHeaderCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x9a\x04\n*PatternFlowGtpExtensionNextExtensionHeader\x12P\n\x06\x63hoice\x18\x01 \x01(\x0e\x32;.otg.PatternFlowGtpExtensionNextExtensionHeader.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12M\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\x38.otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag\x12N\n\tincrement\x18\x06 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounterH\x02\x88\x01\x01\x12N\n\tdecrement\x18\x07 \x01(\x0b\x32\x36.otg.PatternFlowGtpExtensionNextExtensionHeaderCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"p\n PatternFlowGtpv2VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"x\n\x1ePatternFlowGtpv2VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbb\x03\n\x17PatternFlowGtpv2Version\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowGtpv2Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12:\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32%.otg.PatternFlowGtpv2VersionMetricTag\x12;\n\tincrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowGtpv2VersionCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n)PatternFlowGtpv2PiggybackingFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x81\x01\n\'PatternFlowGtpv2PiggybackingFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xe8\x03\n PatternFlowGtpv2PiggybackingFlag\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowGtpv2PiggybackingFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x43\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32..otg.PatternFlowGtpv2PiggybackingFlagMetricTag\x12\x44\n\tincrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x07 \x01(\x0b\x32,.otg.PatternFlowGtpv2PiggybackingFlagCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"q\n!PatternFlowGtpv2TeidFlagMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"y\n\x1fPatternFlowGtpv2TeidFlagCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc0\x03\n\x18PatternFlowGtpv2TeidFlag\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowGtpv2TeidFlag.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12;\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32&.otg.PatternFlowGtpv2TeidFlagMetricTag\x12<\n\tincrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x07 \x01(\x0b\x32$.otg.PatternFlowGtpv2TeidFlagCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"o\n\x1fPatternFlowGtpv2Spare1MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"w\n\x1dPatternFlowGtpv2Spare1Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb6\x03\n\x16PatternFlowGtpv2Spare1\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare1.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x39\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32$.otg.PatternFlowGtpv2Spare1MetricTag\x12:\n\tincrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1CounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x07 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare1CounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n$PatternFlowGtpv2MessageTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"|\n\"PatternFlowGtpv2MessageTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xcf\x03\n\x1bPatternFlowGtpv2MessageType\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowGtpv2MessageType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12>\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32).otg.PatternFlowGtpv2MessageTypeMetricTag\x12?\n\tincrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x07 \x01(\x0b\x32\'.otg.PatternFlowGtpv2MessageTypeCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"v\n&PatternFlowGtpv2MessageLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"~\n$PatternFlowGtpv2MessageLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xd9\x03\n\x1dPatternFlowGtpv2MessageLength\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowGtpv2MessageLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12@\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32+.otg.PatternFlowGtpv2MessageLengthMetricTag\x12\x41\n\tincrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x07 \x01(\x0b\x32).otg.PatternFlowGtpv2MessageLengthCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"m\n\x1dPatternFlowGtpv2TeidMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"u\n\x1bPatternFlowGtpv2TeidCounter\x12\x12\n\x05start\x18\x01 \x01(\x03H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xac\x03\n\x14PatternFlowGtpv2Teid\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowGtpv2Teid.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x03H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x03\x12\x37\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\".otg.PatternFlowGtpv2TeidMetricTag\x12\x38\n\tincrement\x18\x06 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounterH\x02\x88\x01\x01\x12\x38\n\tdecrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowGtpv2TeidCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"w\n\'PatternFlowGtpv2SequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x7f\n%PatternFlowGtpv2SequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xde\x03\n\x1ePatternFlowGtpv2SequenceNumber\x12\x44\n\x06\x63hoice\x18\x01 \x01(\x0e\x32/.otg.PatternFlowGtpv2SequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x41\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32,.otg.PatternFlowGtpv2SequenceNumberMetricTag\x12\x42\n\tincrement\x18\x06 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounterH\x02\x88\x01\x01\x12\x42\n\tdecrement\x18\x07 \x01(\x0b\x32*.otg.PatternFlowGtpv2SequenceNumberCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"o\n\x1fPatternFlowGtpv2Spare2MetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"w\n\x1dPatternFlowGtpv2Spare2Counter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb6\x03\n\x16PatternFlowGtpv2Spare2\x12<\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\'.otg.PatternFlowGtpv2Spare2.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x39\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32$.otg.PatternFlowGtpv2Spare2MetricTag\x12:\n\tincrement\x18\x06 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2CounterH\x02\x88\x01\x01\x12:\n\tdecrement\x18\x07 \x01(\x0b\x32\".otg.PatternFlowGtpv2Spare2CounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n#PatternFlowArpHardwareTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"{\n!PatternFlowArpHardwareTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xca\x03\n\x1aPatternFlowArpHardwareType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpHardwareType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12=\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32(.otg.PatternFlowArpHardwareTypeMetricTag\x12>\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowArpHardwareTypeCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n#PatternFlowArpProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"{\n!PatternFlowArpProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xca\x03\n\x1aPatternFlowArpProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowArpProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12=\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32(.otg.PatternFlowArpProtocolTypeMetricTag\x12>\n\tincrement\x18\x06 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounterH\x02\x88\x01\x01\x12>\n\tdecrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowArpProtocolTypeCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n%PatternFlowArpHardwareLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"}\n#PatternFlowArpHardwareLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xd4\x03\n\x1cPatternFlowArpHardwareLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpHardwareLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12?\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32*.otg.PatternFlowArpHardwareLengthMetricTag\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowArpHardwareLengthCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n%PatternFlowArpProtocolLengthMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"}\n#PatternFlowArpProtocolLengthCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xd4\x03\n\x1cPatternFlowArpProtocolLength\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowArpProtocolLength.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12?\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32*.otg.PatternFlowArpProtocolLengthMetricTag\x12@\n\tincrement\x18\x06 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounterH\x02\x88\x01\x01\x12@\n\tdecrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowArpProtocolLengthCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"p\n PatternFlowArpOperationMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"x\n\x1ePatternFlowArpOperationCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbb\x03\n\x17PatternFlowArpOperation\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowArpOperation.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12:\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32%.otg.PatternFlowArpOperationMetricTag\x12;\n\tincrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowArpOperationCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n)PatternFlowArpSenderHardwareAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x81\x01\n\'PatternFlowArpSenderHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xe8\x03\n PatternFlowArpSenderHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x43\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32..otg.PatternFlowArpSenderHardwareAddrMetricTag\x12\x44\n\tincrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x07 \x01(\x0b\x32,.otg.PatternFlowArpSenderHardwareAddrCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n)PatternFlowArpSenderProtocolAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x81\x01\n\'PatternFlowArpSenderProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xe8\x03\n PatternFlowArpSenderProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpSenderProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x43\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32..otg.PatternFlowArpSenderProtocolAddrMetricTag\x12\x44\n\tincrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x07 \x01(\x0b\x32,.otg.PatternFlowArpSenderProtocolAddrCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n)PatternFlowArpTargetHardwareAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x81\x01\n\'PatternFlowArpTargetHardwareAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xe8\x03\n PatternFlowArpTargetHardwareAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetHardwareAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x43\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32..otg.PatternFlowArpTargetHardwareAddrMetricTag\x12\x44\n\tincrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x07 \x01(\x0b\x32,.otg.PatternFlowArpTargetHardwareAddrCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"y\n)PatternFlowArpTargetProtocolAddrMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x81\x01\n\'PatternFlowArpTargetProtocolAddrCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xe8\x03\n PatternFlowArpTargetProtocolAddr\x12\x46\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x31.otg.PatternFlowArpTargetProtocolAddr.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12\x43\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32..otg.PatternFlowArpTargetProtocolAddrMetricTag\x12\x44\n\tincrement\x18\x06 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounterH\x02\x88\x01\x01\x12\x44\n\tdecrement\x18\x07 \x01(\x0b\x32,.otg.PatternFlowArpTargetProtocolAddrCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"p\n PatternFlowIcmpEchoTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"x\n\x1ePatternFlowIcmpEchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbb\x03\n\x17PatternFlowIcmpEchoType\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12:\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32%.otg.PatternFlowIcmpEchoTypeMetricTag\x12;\n\tincrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoTypeCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"p\n PatternFlowIcmpEchoCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"x\n\x1ePatternFlowIcmpEchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbb\x03\n\x17PatternFlowIcmpEchoCode\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIcmpEchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12:\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32%.otg.PatternFlowIcmpEchoCodeMetricTag\x12;\n\tincrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowIcmpEchoCodeCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xd9\x02\n\x1bPatternFlowIcmpEchoChecksum\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowIcmpEchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12G\n\tgenerated\x18\x02 \x01(\x0e\x32/.otg.PatternFlowIcmpEchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\x05H\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"v\n&PatternFlowIcmpEchoIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"~\n$PatternFlowIcmpEchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xd9\x03\n\x1dPatternFlowIcmpEchoIdentifier\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpEchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12@\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32+.otg.PatternFlowIcmpEchoIdentifierMetricTag\x12\x41\n\tincrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x07 \x01(\x0b\x32).otg.PatternFlowIcmpEchoIdentifierCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"z\n*PatternFlowIcmpEchoSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x82\x01\n(PatternFlowIcmpEchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xed\x03\n!PatternFlowIcmpEchoSequenceNumber\x12G\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x32.otg.PatternFlowIcmpEchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x44\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32/.otg.PatternFlowIcmpEchoSequenceNumberMetricTag\x12\x45\n\tincrement\x18\x06 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounterH\x02\x88\x01\x01\x12\x45\n\tdecrement\x18\x07 \x01(\x0b\x32-.otg.PatternFlowIcmpEchoSequenceNumberCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIcmpCommonChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpCommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpCommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\x05H\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"|\n,PatternFlowIcmpNextFieldsIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x84\x01\n*PatternFlowIcmpNextFieldsIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xf7\x03\n#PatternFlowIcmpNextFieldsIdentifier\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpNextFieldsIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x46\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\x31.otg.PatternFlowIcmpNextFieldsIdentifierMetricTag\x12G\n\tincrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounterH\x02\x88\x01\x01\x12G\n\tdecrement\x18\x07 \x01(\x0b\x32/.otg.PatternFlowIcmpNextFieldsIdentifierCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x80\x01\n0PatternFlowIcmpNextFieldsSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x88\x01\n.PatternFlowIcmpNextFieldsSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\x8b\x04\n\'PatternFlowIcmpNextFieldsSequenceNumber\x12M\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x38.otg.PatternFlowIcmpNextFieldsSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12J\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\x35.otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag\x12K\n\tincrement\x18\x06 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounterH\x02\x88\x01\x01\x12K\n\tdecrement\x18\x07 \x01(\x0b\x32\x33.otg.PatternFlowIcmpNextFieldsSequenceNumberCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"r\n\"PatternFlowIcmpv6EchoTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"z\n PatternFlowIcmpv6EchoTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc5\x03\n\x19PatternFlowIcmpv6EchoType\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12<\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\'.otg.PatternFlowIcmpv6EchoTypeMetricTag\x12=\n\tincrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x07 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoTypeCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"r\n\"PatternFlowIcmpv6EchoCodeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"z\n PatternFlowIcmpv6EchoCodeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc5\x03\n\x19PatternFlowIcmpv6EchoCode\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIcmpv6EchoCode.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12<\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\'.otg.PatternFlowIcmpv6EchoCodeMetricTag\x12=\n\tincrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x07 \x01(\x0b\x32%.otg.PatternFlowIcmpv6EchoCodeCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"x\n(PatternFlowIcmpv6EchoIdentifierMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x80\x01\n&PatternFlowIcmpv6EchoIdentifierCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xe3\x03\n\x1fPatternFlowIcmpv6EchoIdentifier\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6EchoIdentifier.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x42\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32-.otg.PatternFlowIcmpv6EchoIdentifierMetricTag\x12\x43\n\tincrement\x18\x06 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounterH\x02\x88\x01\x01\x12\x43\n\tdecrement\x18\x07 \x01(\x0b\x32+.otg.PatternFlowIcmpv6EchoIdentifierCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"|\n,PatternFlowIcmpv6EchoSequenceNumberMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"\x84\x01\n*PatternFlowIcmpv6EchoSequenceNumberCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xf7\x03\n#PatternFlowIcmpv6EchoSequenceNumber\x12I\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x34.otg.PatternFlowIcmpv6EchoSequenceNumber.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x46\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\x31.otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag\x12G\n\tincrement\x18\x06 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounterH\x02\x88\x01\x01\x12G\n\tdecrement\x18\x07 \x01(\x0b\x32/.otg.PatternFlowIcmpv6EchoSequenceNumberCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xdf\x02\n\x1dPatternFlowIcmpv6EchoChecksum\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIcmpv6EchoChecksum.Choice.EnumH\x00\x88\x01\x01\x12I\n\tgenerated\x18\x02 \x01(\x0e\x32\x31.otg.PatternFlowIcmpv6EchoChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\x05H\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"\xe5\x02\n\x1fPatternFlowIcmpv6CommonChecksum\x12\x45\n\x06\x63hoice\x18\x01 \x01(\x0e\x32\x30.otg.PatternFlowIcmpv6CommonChecksum.Choice.EnumH\x00\x88\x01\x01\x12K\n\tgenerated\x18\x02 \x01(\x0e\x32\x33.otg.PatternFlowIcmpv6CommonChecksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\x05H\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"n\n\x1ePatternFlowPppAddressMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"v\n\x1cPatternFlowPppAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb1\x03\n\x15PatternFlowPppAddress\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x38\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32#.otg.PatternFlowPppAddressMetricTag\x12\x39\n\tincrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x07 \x01(\x0b\x32!.otg.PatternFlowPppAddressCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"n\n\x1ePatternFlowPppControlMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"v\n\x1cPatternFlowPppControlCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb1\x03\n\x15PatternFlowPppControl\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowPppControl.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x38\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32#.otg.PatternFlowPppControlMetricTag\x12\x39\n\tincrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowPppControlCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x07 \x01(\x0b\x32!.otg.PatternFlowPppControlCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"s\n#PatternFlowPppProtocolTypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"{\n!PatternFlowPppProtocolTypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xf0\x03\n\x1aPatternFlowPppProtocolType\x12@\n\x06\x63hoice\x18\x01 \x01(\x0e\x32+.otg.PatternFlowPppProtocolType.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x11\n\x04\x61uto\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12=\n\x0bmetric_tags\x18\x06 \x03(\x0b\x32(.otg.PatternFlowPppProtocolTypeMetricTag\x12>\n\tincrement\x18\x07 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounterH\x03\x88\x01\x01\x12>\n\tdecrement\x18\x08 \x01(\x0b\x32&.otg.PatternFlowPppProtocolTypeCounterH\x04\x88\x01\x01\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"q\n!PatternFlowIgmpv1VersionMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"y\n\x1fPatternFlowIgmpv1VersionCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc0\x03\n\x18PatternFlowIgmpv1Version\x12>\n\x06\x63hoice\x18\x01 \x01(\x0e\x32).otg.PatternFlowIgmpv1Version.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12;\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32&.otg.PatternFlowIgmpv1VersionMetricTag\x12<\n\tincrement\x18\x06 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounterH\x02\x88\x01\x01\x12<\n\tdecrement\x18\x07 \x01(\x0b\x32$.otg.PatternFlowIgmpv1VersionCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"n\n\x1ePatternFlowIgmpv1TypeMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"v\n\x1cPatternFlowIgmpv1TypeCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xb1\x03\n\x15PatternFlowIgmpv1Type\x12;\n\x06\x63hoice\x18\x01 \x01(\x0e\x32&.otg.PatternFlowIgmpv1Type.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x38\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32#.otg.PatternFlowIgmpv1TypeMetricTag\x12\x39\n\tincrement\x18\x06 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounterH\x02\x88\x01\x01\x12\x39\n\tdecrement\x18\x07 \x01(\x0b\x32!.otg.PatternFlowIgmpv1TypeCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"p\n PatternFlowIgmpv1UnusedMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"x\n\x1ePatternFlowIgmpv1UnusedCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xbb\x03\n\x17PatternFlowIgmpv1Unused\x12=\n\x06\x63hoice\x18\x01 \x01(\x0e\x32(.otg.PatternFlowIgmpv1Unused.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12:\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32%.otg.PatternFlowIgmpv1UnusedMetricTag\x12;\n\tincrement\x18\x06 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounterH\x02\x88\x01\x01\x12;\n\tdecrement\x18\x07 \x01(\x0b\x32#.otg.PatternFlowIgmpv1UnusedCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\xd3\x02\n\x19PatternFlowIgmpv1Checksum\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowIgmpv1Checksum.Choice.EnumH\x00\x88\x01\x01\x12\x45\n\tgenerated\x18\x02 \x01(\x0e\x32-.otg.PatternFlowIgmpv1Checksum.Generated.EnumH\x01\x88\x01\x01\x12\x13\n\x06\x63ustom\x18\x03 \x01(\x05H\x02\x88\x01\x01\x1a<\n\x06\x43hoice\"2\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\r\n\tgenerated\x10\x01\x12\n\n\x06\x63ustom\x10\x02\x1a\x37\n\tGenerated\"*\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\x08\n\x04good\x10\x01\x12\x07\n\x03\x62\x61\x64\x10\x02\x42\t\n\x07_choiceB\x0c\n\n_generatedB\t\n\x07_custom\"v\n&PatternFlowIgmpv1GroupAddressMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"~\n$PatternFlowIgmpv1GroupAddressCounter\x12\x12\n\x05start\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xd9\x03\n\x1dPatternFlowIgmpv1GroupAddress\x12\x43\n\x06\x63hoice\x18\x01 \x01(\x0e\x32..otg.PatternFlowIgmpv1GroupAddress.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\t\x12@\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32+.otg.PatternFlowIgmpv1GroupAddressMetricTag\x12\x41\n\tincrement\x18\x06 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounterH\x02\x88\x01\x01\x12\x41\n\tdecrement\x18\x07 \x01(\x0b\x32).otg.PatternFlowIgmpv1GroupAddressCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"m\n\x1dPatternFlowMplsLabelMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"u\n\x1bPatternFlowMplsLabelCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xd2\x03\n\x14PatternFlowMplsLabel\x12:\n\x06\x63hoice\x18\x01 \x01(\x0e\x32%.otg.PatternFlowMplsLabel.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x11\n\x04\x61uto\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12\x37\n\x0bmetric_tags\x18\x06 \x03(\x0b\x32\".otg.PatternFlowMplsLabelMetricTag\x12\x38\n\tincrement\x18\x07 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounterH\x03\x88\x01\x01\x12\x38\n\tdecrement\x18\x08 \x01(\x0b\x32 .otg.PatternFlowMplsLabelCounterH\x04\x88\x01\x01\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"t\n$PatternFlowMplsTrafficClassMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"|\n\"PatternFlowMplsTrafficClassCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xcf\x03\n\x1bPatternFlowMplsTrafficClass\x12\x41\n\x06\x63hoice\x18\x01 \x01(\x0e\x32,.otg.PatternFlowMplsTrafficClass.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12>\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32).otg.PatternFlowMplsTrafficClassMetricTag\x12?\n\tincrement\x18\x06 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounterH\x02\x88\x01\x01\x12?\n\tdecrement\x18\x07 \x01(\x0b\x32\'.otg.PatternFlowMplsTrafficClassCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"u\n%PatternFlowMplsBottomOfStackMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"}\n#PatternFlowMplsBottomOfStackCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xfa\x03\n\x1cPatternFlowMplsBottomOfStack\x12\x42\n\x06\x63hoice\x18\x01 \x01(\x0e\x32-.otg.PatternFlowMplsBottomOfStack.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12\x11\n\x04\x61uto\x18\x04 \x01(\x05H\x02\x88\x01\x01\x12?\n\x0bmetric_tags\x18\x06 \x03(\x0b\x32*.otg.PatternFlowMplsBottomOfStackMetricTag\x12@\n\tincrement\x18\x07 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounterH\x03\x88\x01\x01\x12@\n\tdecrement\x18\x08 \x01(\x0b\x32(.otg.PatternFlowMplsBottomOfStackCounterH\x04\x88\x01\x01\x1a`\n\x06\x43hoice\"V\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\x08\n\x04\x61uto\x10\x01\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x07\n\x05_autoB\x0c\n\n_incrementB\x0c\n\n_decrement\"r\n\"PatternFlowMplsTimeToLiveMetricTag\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x06offset\x18\x02 \x01(\x05H\x00\x88\x01\x01\x12\x13\n\x06length\x18\x03 \x01(\x05H\x01\x88\x01\x01\x42\t\n\x07_offsetB\t\n\x07_length\"z\n PatternFlowMplsTimeToLiveCounter\x12\x12\n\x05start\x18\x01 \x01(\x05H\x00\x88\x01\x01\x12\x11\n\x04step\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x12\n\x05\x63ount\x18\x03 \x01(\x05H\x02\x88\x01\x01\x42\x08\n\x06_startB\x07\n\x05_stepB\x08\n\x06_count\"\xc5\x03\n\x19PatternFlowMplsTimeToLive\x12?\n\x06\x63hoice\x18\x01 \x01(\x0e\x32*.otg.PatternFlowMplsTimeToLive.Choice.EnumH\x00\x88\x01\x01\x12\x12\n\x05value\x18\x02 \x01(\x05H\x01\x88\x01\x01\x12\x0e\n\x06values\x18\x03 \x03(\x05\x12<\n\x0bmetric_tags\x18\x05 \x03(\x0b\x32\'.otg.PatternFlowMplsTimeToLiveMetricTag\x12=\n\tincrement\x18\x06 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounterH\x02\x88\x01\x01\x12=\n\tdecrement\x18\x07 \x01(\x0b\x32%.otg.PatternFlowMplsTimeToLiveCounterH\x03\x88\x01\x01\x1aV\n\x06\x43hoice\"L\n\x04\x45num\x12\x0f\n\x0bunspecified\x10\x00\x12\t\n\x05value\x10\x02\x12\n\n\x06values\x10\x03\x12\r\n\tincrement\x10\x04\x12\r\n\tdecrement\x10\x05\x42\t\n\x07_choiceB\x08\n\x06_valueB\x0c\n\n_incrementB\x0c\n\n_decrement\"\x91\x01\n\x07Version\x12\x1d\n\x10\x61pi_spec_version\x18\x01 \x01(\tH\x00\x88\x01\x01\x12\x18\n\x0bsdk_version\x18\x02 \x01(\tH\x01\x88\x01\x01\x12\x18\n\x0b\x61pp_version\x18\x03 \x01(\tH\x02\x88\x01\x01\x42\x13\n\x11_api_spec_versionB\x0e\n\x0c_sdk_versionB\x0e\n\x0c_app_version\"(\n\x07Success\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"$\n\x07\x46\x61ilure\x12\x19\n\x05\x65rror\x18\x01 \x01(\x0b\x32\n.otg.Error\"/\n\x10SetConfigRequest\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"?\n\x13UpdateConfigRequest\x12(\n\rconfig_update\x18\x01 \x01(\x0b\x32\x11.otg.ConfigUpdate\"2\n\x11SetConfigResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"0\n\x11GetConfigResponse\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"5\n\x14UpdateConfigResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"B\n\x16SetControlStateRequest\x12(\n\rcontrol_state\x18\x01 \x01(\x0b\x32\x11.otg.ControlState\"8\n\x17SetControlStateResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"E\n\x17SetControlActionRequest\x12*\n\x0e\x63ontrol_action\x18\x01 \x01(\x0b\x32\x12.otg.ControlAction\"W\n\x18SetControlActionResponse\x12;\n\x17\x63ontrol_action_response\x18\x01 \x01(\x0b\x32\x1a.otg.ControlActionResponse\"E\n\x17SetTransmitStateRequest\x12*\n\x0etransmit_state\x18\x01 \x01(\x0b\x32\x12.otg.TransmitState\"9\n\x18SetTransmitStateResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"9\n\x13SetLinkStateRequest\x12\"\n\nlink_state\x18\x01 \x01(\x0b\x32\x0e.otg.LinkState\"5\n\x14SetLinkStateResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"B\n\x16SetCaptureStateRequest\x12(\n\rcapture_state\x18\x01 \x01(\x0b\x32\x11.otg.CaptureState\"8\n\x17SetCaptureStateResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"<\n\x12UpdateFlowsRequest\x12&\n\x0c\x66lows_update\x18\x01 \x01(\x0b\x32\x10.otg.FlowsUpdate\"2\n\x13UpdateFlowsResponse\x12\x1b\n\x06\x63onfig\x18\x01 \x01(\x0b\x32\x0b.otg.Config\"<\n\x14SetRouteStateRequest\x12$\n\x0broute_state\x18\x01 \x01(\x0b\x32\x0f.otg.RouteState\"6\n\x15SetRouteStateResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"9\n\x0fSendPingRequest\x12&\n\x0cping_request\x18\x01 \x01(\x0b\x32\x10.otg.PingRequest\"<\n\x10SendPingResponse\x12(\n\rping_response\x18\x01 \x01(\x0b\x32\x11.otg.PingResponse\"E\n\x17SetProtocolStateRequest\x12*\n\x0eprotocol_state\x18\x01 \x01(\x0b\x32\x12.otg.ProtocolState\"9\n\x18SetProtocolStateResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"?\n\x15SetDeviceStateRequest\x12&\n\x0c\x64\x65vice_state\x18\x01 \x01(\x0b\x32\x10.otg.DeviceState\"7\n\x16SetDeviceStateResponse\x12\x1d\n\x07warning\x18\x01 \x01(\x0b\x32\x0c.otg.Warning\"A\n\x11GetMetricsRequest\x12,\n\x0fmetrics_request\x18\x01 \x01(\x0b\x32\x13.otg.MetricsRequest\"D\n\x12GetMetricsResponse\x12.\n\x10metrics_response\x18\x01 \x01(\x0b\x32\x14.otg.MetricsResponse\">\n\x10GetStatesRequest\x12*\n\x0estates_request\x18\x01 \x01(\x0b\x32\x12.otg.StatesRequest\"A\n\x11GetStatesResponse\x12,\n\x0fstates_response\x18\x01 \x01(\x0b\x32\x13.otg.StatesResponse\"A\n\x11GetCaptureRequest\x12,\n\x0f\x63\x61pture_request\x18\x01 \x01(\x0b\x32\x13.otg.CaptureRequest\",\n\x12GetCaptureResponse\x12\x16\n\x0eresponse_bytes\x18\x01 \x01(\x0c\"3\n\x12GetVersionResponse\x12\x1d\n\x07version\x18\x01 \x01(\x0b\x32\x0c.otg.Version2\xa2\t\n\x07Openapi\x12:\n\tSetConfig\x12\x15.otg.SetConfigRequest\x1a\x16.otg.SetConfigResponse\x12;\n\tGetConfig\x12\x16.google.protobuf.Empty\x1a\x16.otg.GetConfigResponse\x12\x43\n\x0cUpdateConfig\x12\x18.otg.UpdateConfigRequest\x1a\x19.otg.UpdateConfigResponse\x12L\n\x0fSetControlState\x12\x1b.otg.SetControlStateRequest\x1a\x1c.otg.SetControlStateResponse\x12O\n\x10SetControlAction\x12\x1c.otg.SetControlActionRequest\x1a\x1d.otg.SetControlActionResponse\x12O\n\x10SetTransmitState\x12\x1c.otg.SetTransmitStateRequest\x1a\x1d.otg.SetTransmitStateResponse\x12\x43\n\x0cSetLinkState\x12\x18.otg.SetLinkStateRequest\x1a\x19.otg.SetLinkStateResponse\x12L\n\x0fSetCaptureState\x12\x1b.otg.SetCaptureStateRequest\x1a\x1c.otg.SetCaptureStateResponse\x12@\n\x0bUpdateFlows\x12\x17.otg.UpdateFlowsRequest\x1a\x18.otg.UpdateFlowsResponse\x12\x46\n\rSetRouteState\x12\x19.otg.SetRouteStateRequest\x1a\x1a.otg.SetRouteStateResponse\x12\x37\n\x08SendPing\x12\x14.otg.SendPingRequest\x1a\x15.otg.SendPingResponse\x12O\n\x10SetProtocolState\x12\x1c.otg.SetProtocolStateRequest\x1a\x1d.otg.SetProtocolStateResponse\x12I\n\x0eSetDeviceState\x12\x1a.otg.SetDeviceStateRequest\x1a\x1b.otg.SetDeviceStateResponse\x12=\n\nGetMetrics\x12\x16.otg.GetMetricsRequest\x1a\x17.otg.GetMetricsResponse\x12:\n\tGetStates\x12\x15.otg.GetStatesRequest\x1a\x16.otg.GetStatesResponse\x12=\n\nGetCapture\x12\x16.otg.GetCaptureRequest\x1a\x17.otg.GetCaptureResponse\x12=\n\nGetVersion\x12\x16.google.protobuf.Empty\x1a\x17.otg.GetVersionResponseB\x0bZ\t./otg;otgb\x06proto3') @@ -228,6 +228,7 @@ _FLOWHEADER = DESCRIPTOR.message_types_by_name['FlowHeader'] _FLOWHEADER_CHOICE = _FLOWHEADER.nested_types_by_name['Choice'] _FLOWCUSTOM = DESCRIPTOR.message_types_by_name['FlowCustom'] +_FLOWCUSTOMMETRICTAG = DESCRIPTOR.message_types_by_name['FlowCustomMetricTag'] _FLOWETHERNET = DESCRIPTOR.message_types_by_name['FlowEthernet'] _FLOWVLAN = DESCRIPTOR.message_types_by_name['FlowVlan'] _FLOWVXLAN = DESCRIPTOR.message_types_by_name['FlowVxlan'] @@ -389,11 +390,15 @@ _PORTMETRIC_TRANSMIT = _PORTMETRIC.nested_types_by_name['Transmit'] _FLOWMETRICSREQUEST = DESCRIPTOR.message_types_by_name['FlowMetricsRequest'] _FLOWMETRICSREQUEST_METRICNAMES = _FLOWMETRICSREQUEST.nested_types_by_name['MetricNames'] -_FLOWMETRICGROUPREQUEST = DESCRIPTOR.message_types_by_name['FlowMetricGroupRequest'] -_FLOWMETRICGROUPREQUEST_CHOICE = _FLOWMETRICGROUPREQUEST.nested_types_by_name['Choice'] +_FLOWTAGGEDMETRICSFILTER = DESCRIPTOR.message_types_by_name['FlowTaggedMetricsFilter'] +_FLOWTAGGEDMETRICSFILTER_METRICNAMES = _FLOWTAGGEDMETRICSFILTER.nested_types_by_name['MetricNames'] +_FLOWMETRICTAGFILTER = DESCRIPTOR.message_types_by_name['FlowMetricTagFilter'] _FLOWMETRIC = DESCRIPTOR.message_types_by_name['FlowMetric'] _FLOWMETRIC_TRANSMIT = _FLOWMETRIC.nested_types_by_name['Transmit'] -_FLOWMETRICGROUP = DESCRIPTOR.message_types_by_name['FlowMetricGroup'] +_FLOWTAGGEDMETRIC = DESCRIPTOR.message_types_by_name['FlowTaggedMetric'] +_FLOWMETRICTAG = DESCRIPTOR.message_types_by_name['FlowMetricTag'] +_FLOWMETRICTAGVALUE = DESCRIPTOR.message_types_by_name['FlowMetricTagValue'] +_FLOWMETRICTAGVALUE_CHOICE = _FLOWMETRICTAGVALUE.nested_types_by_name['Choice'] _METRICTIMESTAMP = DESCRIPTOR.message_types_by_name['MetricTimestamp'] _METRICLATENCY = DESCRIPTOR.message_types_by_name['MetricLatency'] _BGPV4METRICSREQUEST = DESCRIPTOR.message_types_by_name['Bgpv4MetricsRequest'] @@ -489,393 +494,518 @@ _RSVPLSPIPV4ERO = DESCRIPTOR.message_types_by_name['RsvpLspIpv4Ero'] _RSVPLSPIPV4ERO_TYPE = _RSVPLSPIPV4ERO.nested_types_by_name['Type'] _CAPTUREREQUEST = DESCRIPTOR.message_types_by_name['CaptureRequest'] +_PATTERNFLOWETHERNETDSTMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowEthernetDstMetricTag'] _PATTERNFLOWETHERNETDSTCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowEthernetDstCounter'] _PATTERNFLOWETHERNETDST = DESCRIPTOR.message_types_by_name['PatternFlowEthernetDst'] _PATTERNFLOWETHERNETDST_CHOICE = _PATTERNFLOWETHERNETDST.nested_types_by_name['Choice'] +_PATTERNFLOWETHERNETSRCMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowEthernetSrcMetricTag'] _PATTERNFLOWETHERNETSRCCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowEthernetSrcCounter'] _PATTERNFLOWETHERNETSRC = DESCRIPTOR.message_types_by_name['PatternFlowEthernetSrc'] _PATTERNFLOWETHERNETSRC_CHOICE = _PATTERNFLOWETHERNETSRC.nested_types_by_name['Choice'] +_PATTERNFLOWETHERNETETHERTYPEMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowEthernetEtherTypeMetricTag'] _PATTERNFLOWETHERNETETHERTYPECOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowEthernetEtherTypeCounter'] _PATTERNFLOWETHERNETETHERTYPE = DESCRIPTOR.message_types_by_name['PatternFlowEthernetEtherType'] _PATTERNFLOWETHERNETETHERTYPE_CHOICE = _PATTERNFLOWETHERNETETHERTYPE.nested_types_by_name['Choice'] +_PATTERNFLOWETHERNETPFCQUEUEMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowEthernetPfcQueueMetricTag'] _PATTERNFLOWETHERNETPFCQUEUECOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowEthernetPfcQueueCounter'] _PATTERNFLOWETHERNETPFCQUEUE = DESCRIPTOR.message_types_by_name['PatternFlowEthernetPfcQueue'] _PATTERNFLOWETHERNETPFCQUEUE_CHOICE = _PATTERNFLOWETHERNETPFCQUEUE.nested_types_by_name['Choice'] +_PATTERNFLOWVLANPRIORITYMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowVlanPriorityMetricTag'] _PATTERNFLOWVLANPRIORITYCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowVlanPriorityCounter'] _PATTERNFLOWVLANPRIORITY = DESCRIPTOR.message_types_by_name['PatternFlowVlanPriority'] _PATTERNFLOWVLANPRIORITY_CHOICE = _PATTERNFLOWVLANPRIORITY.nested_types_by_name['Choice'] +_PATTERNFLOWVLANCFIMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowVlanCfiMetricTag'] _PATTERNFLOWVLANCFICOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowVlanCfiCounter'] _PATTERNFLOWVLANCFI = DESCRIPTOR.message_types_by_name['PatternFlowVlanCfi'] _PATTERNFLOWVLANCFI_CHOICE = _PATTERNFLOWVLANCFI.nested_types_by_name['Choice'] +_PATTERNFLOWVLANIDMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowVlanIdMetricTag'] _PATTERNFLOWVLANIDCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowVlanIdCounter'] _PATTERNFLOWVLANID = DESCRIPTOR.message_types_by_name['PatternFlowVlanId'] _PATTERNFLOWVLANID_CHOICE = _PATTERNFLOWVLANID.nested_types_by_name['Choice'] +_PATTERNFLOWVLANTPIDMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowVlanTpidMetricTag'] _PATTERNFLOWVLANTPIDCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowVlanTpidCounter'] _PATTERNFLOWVLANTPID = DESCRIPTOR.message_types_by_name['PatternFlowVlanTpid'] _PATTERNFLOWVLANTPID_CHOICE = _PATTERNFLOWVLANTPID.nested_types_by_name['Choice'] +_PATTERNFLOWVXLANFLAGSMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowVxlanFlagsMetricTag'] _PATTERNFLOWVXLANFLAGSCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowVxlanFlagsCounter'] _PATTERNFLOWVXLANFLAGS = DESCRIPTOR.message_types_by_name['PatternFlowVxlanFlags'] _PATTERNFLOWVXLANFLAGS_CHOICE = _PATTERNFLOWVXLANFLAGS.nested_types_by_name['Choice'] +_PATTERNFLOWVXLANRESERVED0METRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowVxlanReserved0MetricTag'] _PATTERNFLOWVXLANRESERVED0COUNTER = DESCRIPTOR.message_types_by_name['PatternFlowVxlanReserved0Counter'] _PATTERNFLOWVXLANRESERVED0 = DESCRIPTOR.message_types_by_name['PatternFlowVxlanReserved0'] _PATTERNFLOWVXLANRESERVED0_CHOICE = _PATTERNFLOWVXLANRESERVED0.nested_types_by_name['Choice'] +_PATTERNFLOWVXLANVNIMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowVxlanVniMetricTag'] _PATTERNFLOWVXLANVNICOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowVxlanVniCounter'] _PATTERNFLOWVXLANVNI = DESCRIPTOR.message_types_by_name['PatternFlowVxlanVni'] _PATTERNFLOWVXLANVNI_CHOICE = _PATTERNFLOWVXLANVNI.nested_types_by_name['Choice'] +_PATTERNFLOWVXLANRESERVED1METRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowVxlanReserved1MetricTag'] _PATTERNFLOWVXLANRESERVED1COUNTER = DESCRIPTOR.message_types_by_name['PatternFlowVxlanReserved1Counter'] _PATTERNFLOWVXLANRESERVED1 = DESCRIPTOR.message_types_by_name['PatternFlowVxlanReserved1'] _PATTERNFLOWVXLANRESERVED1_CHOICE = _PATTERNFLOWVXLANRESERVED1.nested_types_by_name['Choice'] +_PATTERNFLOWIPV4VERSIONMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv4VersionMetricTag'] _PATTERNFLOWIPV4VERSIONCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv4VersionCounter'] _PATTERNFLOWIPV4VERSION = DESCRIPTOR.message_types_by_name['PatternFlowIpv4Version'] _PATTERNFLOWIPV4VERSION_CHOICE = _PATTERNFLOWIPV4VERSION.nested_types_by_name['Choice'] +_PATTERNFLOWIPV4HEADERLENGTHMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv4HeaderLengthMetricTag'] _PATTERNFLOWIPV4HEADERLENGTHCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv4HeaderLengthCounter'] _PATTERNFLOWIPV4HEADERLENGTH = DESCRIPTOR.message_types_by_name['PatternFlowIpv4HeaderLength'] _PATTERNFLOWIPV4HEADERLENGTH_CHOICE = _PATTERNFLOWIPV4HEADERLENGTH.nested_types_by_name['Choice'] +_PATTERNFLOWIPV4TOTALLENGTHMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TotalLengthMetricTag'] _PATTERNFLOWIPV4TOTALLENGTHCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TotalLengthCounter'] _PATTERNFLOWIPV4TOTALLENGTH = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TotalLength'] _PATTERNFLOWIPV4TOTALLENGTH_CHOICE = _PATTERNFLOWIPV4TOTALLENGTH.nested_types_by_name['Choice'] +_PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv4IdentificationMetricTag'] _PATTERNFLOWIPV4IDENTIFICATIONCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv4IdentificationCounter'] _PATTERNFLOWIPV4IDENTIFICATION = DESCRIPTOR.message_types_by_name['PatternFlowIpv4Identification'] _PATTERNFLOWIPV4IDENTIFICATION_CHOICE = _PATTERNFLOWIPV4IDENTIFICATION.nested_types_by_name['Choice'] +_PATTERNFLOWIPV4RESERVEDMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv4ReservedMetricTag'] _PATTERNFLOWIPV4RESERVEDCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv4ReservedCounter'] _PATTERNFLOWIPV4RESERVED = DESCRIPTOR.message_types_by_name['PatternFlowIpv4Reserved'] _PATTERNFLOWIPV4RESERVED_CHOICE = _PATTERNFLOWIPV4RESERVED.nested_types_by_name['Choice'] +_PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv4DontFragmentMetricTag'] _PATTERNFLOWIPV4DONTFRAGMENTCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv4DontFragmentCounter'] _PATTERNFLOWIPV4DONTFRAGMENT = DESCRIPTOR.message_types_by_name['PatternFlowIpv4DontFragment'] _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE = _PATTERNFLOWIPV4DONTFRAGMENT.nested_types_by_name['Choice'] +_PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv4MoreFragmentsMetricTag'] _PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv4MoreFragmentsCounter'] _PATTERNFLOWIPV4MOREFRAGMENTS = DESCRIPTOR.message_types_by_name['PatternFlowIpv4MoreFragments'] _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE = _PATTERNFLOWIPV4MOREFRAGMENTS.nested_types_by_name['Choice'] +_PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv4FragmentOffsetMetricTag'] _PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv4FragmentOffsetCounter'] _PATTERNFLOWIPV4FRAGMENTOFFSET = DESCRIPTOR.message_types_by_name['PatternFlowIpv4FragmentOffset'] _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE = _PATTERNFLOWIPV4FRAGMENTOFFSET.nested_types_by_name['Choice'] +_PATTERNFLOWIPV4TIMETOLIVEMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TimeToLiveMetricTag'] _PATTERNFLOWIPV4TIMETOLIVECOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TimeToLiveCounter'] _PATTERNFLOWIPV4TIMETOLIVE = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TimeToLive'] _PATTERNFLOWIPV4TIMETOLIVE_CHOICE = _PATTERNFLOWIPV4TIMETOLIVE.nested_types_by_name['Choice'] +_PATTERNFLOWIPV4PROTOCOLMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv4ProtocolMetricTag'] _PATTERNFLOWIPV4PROTOCOLCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv4ProtocolCounter'] _PATTERNFLOWIPV4PROTOCOL = DESCRIPTOR.message_types_by_name['PatternFlowIpv4Protocol'] _PATTERNFLOWIPV4PROTOCOL_CHOICE = _PATTERNFLOWIPV4PROTOCOL.nested_types_by_name['Choice'] _PATTERNFLOWIPV4HEADERCHECKSUM = DESCRIPTOR.message_types_by_name['PatternFlowIpv4HeaderChecksum'] _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE = _PATTERNFLOWIPV4HEADERCHECKSUM.nested_types_by_name['Choice'] _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED = _PATTERNFLOWIPV4HEADERCHECKSUM.nested_types_by_name['Generated'] +_PATTERNFLOWIPV4SRCMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv4SrcMetricTag'] _PATTERNFLOWIPV4SRCCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv4SrcCounter'] _PATTERNFLOWIPV4SRC = DESCRIPTOR.message_types_by_name['PatternFlowIpv4Src'] _PATTERNFLOWIPV4SRC_CHOICE = _PATTERNFLOWIPV4SRC.nested_types_by_name['Choice'] +_PATTERNFLOWIPV4DSTMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv4DstMetricTag'] _PATTERNFLOWIPV4DSTCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv4DstCounter'] _PATTERNFLOWIPV4DST = DESCRIPTOR.message_types_by_name['PatternFlowIpv4Dst'] _PATTERNFLOWIPV4DST_CHOICE = _PATTERNFLOWIPV4DST.nested_types_by_name['Choice'] +_PATTERNFLOWIPV4PRIORITYRAWMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv4PriorityRawMetricTag'] _PATTERNFLOWIPV4PRIORITYRAWCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv4PriorityRawCounter'] _PATTERNFLOWIPV4PRIORITYRAW = DESCRIPTOR.message_types_by_name['PatternFlowIpv4PriorityRaw'] _PATTERNFLOWIPV4PRIORITYRAW_CHOICE = _PATTERNFLOWIPV4PRIORITYRAW.nested_types_by_name['Choice'] +_PATTERNFLOWIPV4DSCPPHBMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv4DscpPhbMetricTag'] _PATTERNFLOWIPV4DSCPPHBCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv4DscpPhbCounter'] _PATTERNFLOWIPV4DSCPPHB = DESCRIPTOR.message_types_by_name['PatternFlowIpv4DscpPhb'] _PATTERNFLOWIPV4DSCPPHB_CHOICE = _PATTERNFLOWIPV4DSCPPHB.nested_types_by_name['Choice'] +_PATTERNFLOWIPV4DSCPECNMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv4DscpEcnMetricTag'] _PATTERNFLOWIPV4DSCPECNCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv4DscpEcnCounter'] _PATTERNFLOWIPV4DSCPECN = DESCRIPTOR.message_types_by_name['PatternFlowIpv4DscpEcn'] _PATTERNFLOWIPV4DSCPECN_CHOICE = _PATTERNFLOWIPV4DSCPECN.nested_types_by_name['Choice'] +_PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TosPrecedenceMetricTag'] _PATTERNFLOWIPV4TOSPRECEDENCECOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TosPrecedenceCounter'] _PATTERNFLOWIPV4TOSPRECEDENCE = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TosPrecedence'] _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE = _PATTERNFLOWIPV4TOSPRECEDENCE.nested_types_by_name['Choice'] +_PATTERNFLOWIPV4TOSDELAYMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TosDelayMetricTag'] _PATTERNFLOWIPV4TOSDELAYCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TosDelayCounter'] _PATTERNFLOWIPV4TOSDELAY = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TosDelay'] _PATTERNFLOWIPV4TOSDELAY_CHOICE = _PATTERNFLOWIPV4TOSDELAY.nested_types_by_name['Choice'] +_PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TosThroughputMetricTag'] _PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TosThroughputCounter'] _PATTERNFLOWIPV4TOSTHROUGHPUT = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TosThroughput'] _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE = _PATTERNFLOWIPV4TOSTHROUGHPUT.nested_types_by_name['Choice'] +_PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TosReliabilityMetricTag'] _PATTERNFLOWIPV4TOSRELIABILITYCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TosReliabilityCounter'] _PATTERNFLOWIPV4TOSRELIABILITY = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TosReliability'] _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE = _PATTERNFLOWIPV4TOSRELIABILITY.nested_types_by_name['Choice'] +_PATTERNFLOWIPV4TOSMONETARYMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TosMonetaryMetricTag'] _PATTERNFLOWIPV4TOSMONETARYCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TosMonetaryCounter'] _PATTERNFLOWIPV4TOSMONETARY = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TosMonetary'] _PATTERNFLOWIPV4TOSMONETARY_CHOICE = _PATTERNFLOWIPV4TOSMONETARY.nested_types_by_name['Choice'] +_PATTERNFLOWIPV4TOSUNUSEDMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TosUnusedMetricTag'] _PATTERNFLOWIPV4TOSUNUSEDCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TosUnusedCounter'] _PATTERNFLOWIPV4TOSUNUSED = DESCRIPTOR.message_types_by_name['PatternFlowIpv4TosUnused'] _PATTERNFLOWIPV4TOSUNUSED_CHOICE = _PATTERNFLOWIPV4TOSUNUSED.nested_types_by_name['Choice'] +_PATTERNFLOWIPV6VERSIONMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv6VersionMetricTag'] _PATTERNFLOWIPV6VERSIONCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv6VersionCounter'] _PATTERNFLOWIPV6VERSION = DESCRIPTOR.message_types_by_name['PatternFlowIpv6Version'] _PATTERNFLOWIPV6VERSION_CHOICE = _PATTERNFLOWIPV6VERSION.nested_types_by_name['Choice'] +_PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv6TrafficClassMetricTag'] _PATTERNFLOWIPV6TRAFFICCLASSCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv6TrafficClassCounter'] _PATTERNFLOWIPV6TRAFFICCLASS = DESCRIPTOR.message_types_by_name['PatternFlowIpv6TrafficClass'] _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE = _PATTERNFLOWIPV6TRAFFICCLASS.nested_types_by_name['Choice'] +_PATTERNFLOWIPV6FLOWLABELMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv6FlowLabelMetricTag'] _PATTERNFLOWIPV6FLOWLABELCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv6FlowLabelCounter'] _PATTERNFLOWIPV6FLOWLABEL = DESCRIPTOR.message_types_by_name['PatternFlowIpv6FlowLabel'] _PATTERNFLOWIPV6FLOWLABEL_CHOICE = _PATTERNFLOWIPV6FLOWLABEL.nested_types_by_name['Choice'] +_PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv6PayloadLengthMetricTag'] _PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv6PayloadLengthCounter'] _PATTERNFLOWIPV6PAYLOADLENGTH = DESCRIPTOR.message_types_by_name['PatternFlowIpv6PayloadLength'] _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE = _PATTERNFLOWIPV6PAYLOADLENGTH.nested_types_by_name['Choice'] +_PATTERNFLOWIPV6NEXTHEADERMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv6NextHeaderMetricTag'] _PATTERNFLOWIPV6NEXTHEADERCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv6NextHeaderCounter'] _PATTERNFLOWIPV6NEXTHEADER = DESCRIPTOR.message_types_by_name['PatternFlowIpv6NextHeader'] _PATTERNFLOWIPV6NEXTHEADER_CHOICE = _PATTERNFLOWIPV6NEXTHEADER.nested_types_by_name['Choice'] +_PATTERNFLOWIPV6HOPLIMITMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv6HopLimitMetricTag'] _PATTERNFLOWIPV6HOPLIMITCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv6HopLimitCounter'] _PATTERNFLOWIPV6HOPLIMIT = DESCRIPTOR.message_types_by_name['PatternFlowIpv6HopLimit'] _PATTERNFLOWIPV6HOPLIMIT_CHOICE = _PATTERNFLOWIPV6HOPLIMIT.nested_types_by_name['Choice'] +_PATTERNFLOWIPV6SRCMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv6SrcMetricTag'] _PATTERNFLOWIPV6SRCCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv6SrcCounter'] _PATTERNFLOWIPV6SRC = DESCRIPTOR.message_types_by_name['PatternFlowIpv6Src'] _PATTERNFLOWIPV6SRC_CHOICE = _PATTERNFLOWIPV6SRC.nested_types_by_name['Choice'] +_PATTERNFLOWIPV6DSTMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIpv6DstMetricTag'] _PATTERNFLOWIPV6DSTCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIpv6DstCounter'] _PATTERNFLOWIPV6DST = DESCRIPTOR.message_types_by_name['PatternFlowIpv6Dst'] _PATTERNFLOWIPV6DST_CHOICE = _PATTERNFLOWIPV6DST.nested_types_by_name['Choice'] +_PATTERNFLOWPFCPAUSEDSTMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowPfcPauseDstMetricTag'] _PATTERNFLOWPFCPAUSEDSTCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowPfcPauseDstCounter'] _PATTERNFLOWPFCPAUSEDST = DESCRIPTOR.message_types_by_name['PatternFlowPfcPauseDst'] _PATTERNFLOWPFCPAUSEDST_CHOICE = _PATTERNFLOWPFCPAUSEDST.nested_types_by_name['Choice'] +_PATTERNFLOWPFCPAUSESRCMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowPfcPauseSrcMetricTag'] _PATTERNFLOWPFCPAUSESRCCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowPfcPauseSrcCounter'] _PATTERNFLOWPFCPAUSESRC = DESCRIPTOR.message_types_by_name['PatternFlowPfcPauseSrc'] _PATTERNFLOWPFCPAUSESRC_CHOICE = _PATTERNFLOWPFCPAUSESRC.nested_types_by_name['Choice'] +_PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowPfcPauseEtherTypeMetricTag'] _PATTERNFLOWPFCPAUSEETHERTYPECOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowPfcPauseEtherTypeCounter'] _PATTERNFLOWPFCPAUSEETHERTYPE = DESCRIPTOR.message_types_by_name['PatternFlowPfcPauseEtherType'] _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE = _PATTERNFLOWPFCPAUSEETHERTYPE.nested_types_by_name['Choice'] +_PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowPfcPauseControlOpCodeMetricTag'] _PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowPfcPauseControlOpCodeCounter'] _PATTERNFLOWPFCPAUSECONTROLOPCODE = DESCRIPTOR.message_types_by_name['PatternFlowPfcPauseControlOpCode'] _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE = _PATTERNFLOWPFCPAUSECONTROLOPCODE.nested_types_by_name['Choice'] +_PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowPfcPauseClassEnableVectorMetricTag'] _PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowPfcPauseClassEnableVectorCounter'] _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR = DESCRIPTOR.message_types_by_name['PatternFlowPfcPauseClassEnableVector'] _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE = _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR.nested_types_by_name['Choice'] +_PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass0MetricTag'] _PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass0Counter'] _PATTERNFLOWPFCPAUSEPAUSECLASS0 = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass0'] _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE = _PATTERNFLOWPFCPAUSEPAUSECLASS0.nested_types_by_name['Choice'] +_PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass1MetricTag'] _PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass1Counter'] _PATTERNFLOWPFCPAUSEPAUSECLASS1 = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass1'] _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE = _PATTERNFLOWPFCPAUSEPAUSECLASS1.nested_types_by_name['Choice'] +_PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass2MetricTag'] _PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass2Counter'] _PATTERNFLOWPFCPAUSEPAUSECLASS2 = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass2'] _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE = _PATTERNFLOWPFCPAUSEPAUSECLASS2.nested_types_by_name['Choice'] +_PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass3MetricTag'] _PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass3Counter'] _PATTERNFLOWPFCPAUSEPAUSECLASS3 = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass3'] _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE = _PATTERNFLOWPFCPAUSEPAUSECLASS3.nested_types_by_name['Choice'] +_PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass4MetricTag'] _PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass4Counter'] _PATTERNFLOWPFCPAUSEPAUSECLASS4 = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass4'] _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE = _PATTERNFLOWPFCPAUSEPAUSECLASS4.nested_types_by_name['Choice'] +_PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass5MetricTag'] _PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass5Counter'] _PATTERNFLOWPFCPAUSEPAUSECLASS5 = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass5'] _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE = _PATTERNFLOWPFCPAUSEPAUSECLASS5.nested_types_by_name['Choice'] +_PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass6MetricTag'] _PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass6Counter'] _PATTERNFLOWPFCPAUSEPAUSECLASS6 = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass6'] _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE = _PATTERNFLOWPFCPAUSEPAUSECLASS6.nested_types_by_name['Choice'] +_PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass7MetricTag'] _PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass7Counter'] _PATTERNFLOWPFCPAUSEPAUSECLASS7 = DESCRIPTOR.message_types_by_name['PatternFlowPfcPausePauseClass7'] _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE = _PATTERNFLOWPFCPAUSEPAUSECLASS7.nested_types_by_name['Choice'] +_PATTERNFLOWETHERNETPAUSEDSTMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowEthernetPauseDstMetricTag'] _PATTERNFLOWETHERNETPAUSEDSTCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowEthernetPauseDstCounter'] _PATTERNFLOWETHERNETPAUSEDST = DESCRIPTOR.message_types_by_name['PatternFlowEthernetPauseDst'] _PATTERNFLOWETHERNETPAUSEDST_CHOICE = _PATTERNFLOWETHERNETPAUSEDST.nested_types_by_name['Choice'] +_PATTERNFLOWETHERNETPAUSESRCMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowEthernetPauseSrcMetricTag'] _PATTERNFLOWETHERNETPAUSESRCCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowEthernetPauseSrcCounter'] _PATTERNFLOWETHERNETPAUSESRC = DESCRIPTOR.message_types_by_name['PatternFlowEthernetPauseSrc'] _PATTERNFLOWETHERNETPAUSESRC_CHOICE = _PATTERNFLOWETHERNETPAUSESRC.nested_types_by_name['Choice'] +_PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowEthernetPauseEtherTypeMetricTag'] _PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowEthernetPauseEtherTypeCounter'] _PATTERNFLOWETHERNETPAUSEETHERTYPE = DESCRIPTOR.message_types_by_name['PatternFlowEthernetPauseEtherType'] _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE = _PATTERNFLOWETHERNETPAUSEETHERTYPE.nested_types_by_name['Choice'] +_PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowEthernetPauseControlOpCodeMetricTag'] _PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowEthernetPauseControlOpCodeCounter'] _PATTERNFLOWETHERNETPAUSECONTROLOPCODE = DESCRIPTOR.message_types_by_name['PatternFlowEthernetPauseControlOpCode'] _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE = _PATTERNFLOWETHERNETPAUSECONTROLOPCODE.nested_types_by_name['Choice'] +_PATTERNFLOWETHERNETPAUSETIMEMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowEthernetPauseTimeMetricTag'] _PATTERNFLOWETHERNETPAUSETIMECOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowEthernetPauseTimeCounter'] _PATTERNFLOWETHERNETPAUSETIME = DESCRIPTOR.message_types_by_name['PatternFlowEthernetPauseTime'] _PATTERNFLOWETHERNETPAUSETIME_CHOICE = _PATTERNFLOWETHERNETPAUSETIME.nested_types_by_name['Choice'] +_PATTERNFLOWTCPSRCPORTMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowTcpSrcPortMetricTag'] _PATTERNFLOWTCPSRCPORTCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowTcpSrcPortCounter'] _PATTERNFLOWTCPSRCPORT = DESCRIPTOR.message_types_by_name['PatternFlowTcpSrcPort'] _PATTERNFLOWTCPSRCPORT_CHOICE = _PATTERNFLOWTCPSRCPORT.nested_types_by_name['Choice'] +_PATTERNFLOWTCPDSTPORTMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowTcpDstPortMetricTag'] _PATTERNFLOWTCPDSTPORTCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowTcpDstPortCounter'] _PATTERNFLOWTCPDSTPORT = DESCRIPTOR.message_types_by_name['PatternFlowTcpDstPort'] _PATTERNFLOWTCPDSTPORT_CHOICE = _PATTERNFLOWTCPDSTPORT.nested_types_by_name['Choice'] +_PATTERNFLOWTCPSEQNUMMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowTcpSeqNumMetricTag'] _PATTERNFLOWTCPSEQNUMCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowTcpSeqNumCounter'] _PATTERNFLOWTCPSEQNUM = DESCRIPTOR.message_types_by_name['PatternFlowTcpSeqNum'] _PATTERNFLOWTCPSEQNUM_CHOICE = _PATTERNFLOWTCPSEQNUM.nested_types_by_name['Choice'] +_PATTERNFLOWTCPACKNUMMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowTcpAckNumMetricTag'] _PATTERNFLOWTCPACKNUMCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowTcpAckNumCounter'] _PATTERNFLOWTCPACKNUM = DESCRIPTOR.message_types_by_name['PatternFlowTcpAckNum'] _PATTERNFLOWTCPACKNUM_CHOICE = _PATTERNFLOWTCPACKNUM.nested_types_by_name['Choice'] +_PATTERNFLOWTCPDATAOFFSETMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowTcpDataOffsetMetricTag'] _PATTERNFLOWTCPDATAOFFSETCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowTcpDataOffsetCounter'] _PATTERNFLOWTCPDATAOFFSET = DESCRIPTOR.message_types_by_name['PatternFlowTcpDataOffset'] _PATTERNFLOWTCPDATAOFFSET_CHOICE = _PATTERNFLOWTCPDATAOFFSET.nested_types_by_name['Choice'] +_PATTERNFLOWTCPECNNSMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowTcpEcnNsMetricTag'] _PATTERNFLOWTCPECNNSCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowTcpEcnNsCounter'] _PATTERNFLOWTCPECNNS = DESCRIPTOR.message_types_by_name['PatternFlowTcpEcnNs'] _PATTERNFLOWTCPECNNS_CHOICE = _PATTERNFLOWTCPECNNS.nested_types_by_name['Choice'] +_PATTERNFLOWTCPECNCWRMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowTcpEcnCwrMetricTag'] _PATTERNFLOWTCPECNCWRCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowTcpEcnCwrCounter'] _PATTERNFLOWTCPECNCWR = DESCRIPTOR.message_types_by_name['PatternFlowTcpEcnCwr'] _PATTERNFLOWTCPECNCWR_CHOICE = _PATTERNFLOWTCPECNCWR.nested_types_by_name['Choice'] +_PATTERNFLOWTCPECNECHOMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowTcpEcnEchoMetricTag'] _PATTERNFLOWTCPECNECHOCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowTcpEcnEchoCounter'] _PATTERNFLOWTCPECNECHO = DESCRIPTOR.message_types_by_name['PatternFlowTcpEcnEcho'] _PATTERNFLOWTCPECNECHO_CHOICE = _PATTERNFLOWTCPECNECHO.nested_types_by_name['Choice'] +_PATTERNFLOWTCPCTLURGMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowTcpCtlUrgMetricTag'] _PATTERNFLOWTCPCTLURGCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowTcpCtlUrgCounter'] _PATTERNFLOWTCPCTLURG = DESCRIPTOR.message_types_by_name['PatternFlowTcpCtlUrg'] _PATTERNFLOWTCPCTLURG_CHOICE = _PATTERNFLOWTCPCTLURG.nested_types_by_name['Choice'] +_PATTERNFLOWTCPCTLACKMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowTcpCtlAckMetricTag'] _PATTERNFLOWTCPCTLACKCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowTcpCtlAckCounter'] _PATTERNFLOWTCPCTLACK = DESCRIPTOR.message_types_by_name['PatternFlowTcpCtlAck'] _PATTERNFLOWTCPCTLACK_CHOICE = _PATTERNFLOWTCPCTLACK.nested_types_by_name['Choice'] +_PATTERNFLOWTCPCTLPSHMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowTcpCtlPshMetricTag'] _PATTERNFLOWTCPCTLPSHCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowTcpCtlPshCounter'] _PATTERNFLOWTCPCTLPSH = DESCRIPTOR.message_types_by_name['PatternFlowTcpCtlPsh'] _PATTERNFLOWTCPCTLPSH_CHOICE = _PATTERNFLOWTCPCTLPSH.nested_types_by_name['Choice'] +_PATTERNFLOWTCPCTLRSTMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowTcpCtlRstMetricTag'] _PATTERNFLOWTCPCTLRSTCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowTcpCtlRstCounter'] _PATTERNFLOWTCPCTLRST = DESCRIPTOR.message_types_by_name['PatternFlowTcpCtlRst'] _PATTERNFLOWTCPCTLRST_CHOICE = _PATTERNFLOWTCPCTLRST.nested_types_by_name['Choice'] +_PATTERNFLOWTCPCTLSYNMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowTcpCtlSynMetricTag'] _PATTERNFLOWTCPCTLSYNCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowTcpCtlSynCounter'] _PATTERNFLOWTCPCTLSYN = DESCRIPTOR.message_types_by_name['PatternFlowTcpCtlSyn'] _PATTERNFLOWTCPCTLSYN_CHOICE = _PATTERNFLOWTCPCTLSYN.nested_types_by_name['Choice'] +_PATTERNFLOWTCPCTLFINMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowTcpCtlFinMetricTag'] _PATTERNFLOWTCPCTLFINCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowTcpCtlFinCounter'] _PATTERNFLOWTCPCTLFIN = DESCRIPTOR.message_types_by_name['PatternFlowTcpCtlFin'] _PATTERNFLOWTCPCTLFIN_CHOICE = _PATTERNFLOWTCPCTLFIN.nested_types_by_name['Choice'] +_PATTERNFLOWTCPWINDOWMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowTcpWindowMetricTag'] _PATTERNFLOWTCPWINDOWCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowTcpWindowCounter'] _PATTERNFLOWTCPWINDOW = DESCRIPTOR.message_types_by_name['PatternFlowTcpWindow'] _PATTERNFLOWTCPWINDOW_CHOICE = _PATTERNFLOWTCPWINDOW.nested_types_by_name['Choice'] +_PATTERNFLOWUDPSRCPORTMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowUdpSrcPortMetricTag'] _PATTERNFLOWUDPSRCPORTCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowUdpSrcPortCounter'] _PATTERNFLOWUDPSRCPORT = DESCRIPTOR.message_types_by_name['PatternFlowUdpSrcPort'] _PATTERNFLOWUDPSRCPORT_CHOICE = _PATTERNFLOWUDPSRCPORT.nested_types_by_name['Choice'] +_PATTERNFLOWUDPDSTPORTMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowUdpDstPortMetricTag'] _PATTERNFLOWUDPDSTPORTCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowUdpDstPortCounter'] _PATTERNFLOWUDPDSTPORT = DESCRIPTOR.message_types_by_name['PatternFlowUdpDstPort'] _PATTERNFLOWUDPDSTPORT_CHOICE = _PATTERNFLOWUDPDSTPORT.nested_types_by_name['Choice'] +_PATTERNFLOWUDPLENGTHMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowUdpLengthMetricTag'] _PATTERNFLOWUDPLENGTHCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowUdpLengthCounter'] _PATTERNFLOWUDPLENGTH = DESCRIPTOR.message_types_by_name['PatternFlowUdpLength'] _PATTERNFLOWUDPLENGTH_CHOICE = _PATTERNFLOWUDPLENGTH.nested_types_by_name['Choice'] _PATTERNFLOWUDPCHECKSUM = DESCRIPTOR.message_types_by_name['PatternFlowUdpChecksum'] _PATTERNFLOWUDPCHECKSUM_CHOICE = _PATTERNFLOWUDPCHECKSUM.nested_types_by_name['Choice'] _PATTERNFLOWUDPCHECKSUM_GENERATED = _PATTERNFLOWUDPCHECKSUM.nested_types_by_name['Generated'] +_PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGreChecksumPresentMetricTag'] _PATTERNFLOWGRECHECKSUMPRESENTCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGreChecksumPresentCounter'] _PATTERNFLOWGRECHECKSUMPRESENT = DESCRIPTOR.message_types_by_name['PatternFlowGreChecksumPresent'] _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE = _PATTERNFLOWGRECHECKSUMPRESENT.nested_types_by_name['Choice'] +_PATTERNFLOWGRERESERVED0METRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGreReserved0MetricTag'] _PATTERNFLOWGRERESERVED0COUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGreReserved0Counter'] _PATTERNFLOWGRERESERVED0 = DESCRIPTOR.message_types_by_name['PatternFlowGreReserved0'] _PATTERNFLOWGRERESERVED0_CHOICE = _PATTERNFLOWGRERESERVED0.nested_types_by_name['Choice'] +_PATTERNFLOWGREVERSIONMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGreVersionMetricTag'] _PATTERNFLOWGREVERSIONCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGreVersionCounter'] _PATTERNFLOWGREVERSION = DESCRIPTOR.message_types_by_name['PatternFlowGreVersion'] _PATTERNFLOWGREVERSION_CHOICE = _PATTERNFLOWGREVERSION.nested_types_by_name['Choice'] +_PATTERNFLOWGREPROTOCOLMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGreProtocolMetricTag'] _PATTERNFLOWGREPROTOCOLCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGreProtocolCounter'] _PATTERNFLOWGREPROTOCOL = DESCRIPTOR.message_types_by_name['PatternFlowGreProtocol'] _PATTERNFLOWGREPROTOCOL_CHOICE = _PATTERNFLOWGREPROTOCOL.nested_types_by_name['Choice'] _PATTERNFLOWGRECHECKSUM = DESCRIPTOR.message_types_by_name['PatternFlowGreChecksum'] _PATTERNFLOWGRECHECKSUM_CHOICE = _PATTERNFLOWGRECHECKSUM.nested_types_by_name['Choice'] _PATTERNFLOWGRECHECKSUM_GENERATED = _PATTERNFLOWGRECHECKSUM.nested_types_by_name['Generated'] +_PATTERNFLOWGRERESERVED1METRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGreReserved1MetricTag'] _PATTERNFLOWGRERESERVED1COUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGreReserved1Counter'] _PATTERNFLOWGRERESERVED1 = DESCRIPTOR.message_types_by_name['PatternFlowGreReserved1'] _PATTERNFLOWGRERESERVED1_CHOICE = _PATTERNFLOWGRERESERVED1.nested_types_by_name['Choice'] +_PATTERNFLOWGTPV1VERSIONMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1VersionMetricTag'] _PATTERNFLOWGTPV1VERSIONCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1VersionCounter'] _PATTERNFLOWGTPV1VERSION = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1Version'] _PATTERNFLOWGTPV1VERSION_CHOICE = _PATTERNFLOWGTPV1VERSION.nested_types_by_name['Choice'] +_PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1ProtocolTypeMetricTag'] _PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1ProtocolTypeCounter'] _PATTERNFLOWGTPV1PROTOCOLTYPE = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1ProtocolType'] _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE = _PATTERNFLOWGTPV1PROTOCOLTYPE.nested_types_by_name['Choice'] +_PATTERNFLOWGTPV1RESERVEDMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1ReservedMetricTag'] _PATTERNFLOWGTPV1RESERVEDCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1ReservedCounter'] _PATTERNFLOWGTPV1RESERVED = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1Reserved'] _PATTERNFLOWGTPV1RESERVED_CHOICE = _PATTERNFLOWGTPV1RESERVED.nested_types_by_name['Choice'] +_PATTERNFLOWGTPV1EFLAGMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1EFlagMetricTag'] _PATTERNFLOWGTPV1EFLAGCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1EFlagCounter'] _PATTERNFLOWGTPV1EFLAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1EFlag'] _PATTERNFLOWGTPV1EFLAG_CHOICE = _PATTERNFLOWGTPV1EFLAG.nested_types_by_name['Choice'] +_PATTERNFLOWGTPV1SFLAGMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1SFlagMetricTag'] _PATTERNFLOWGTPV1SFLAGCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1SFlagCounter'] _PATTERNFLOWGTPV1SFLAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1SFlag'] _PATTERNFLOWGTPV1SFLAG_CHOICE = _PATTERNFLOWGTPV1SFLAG.nested_types_by_name['Choice'] +_PATTERNFLOWGTPV1PNFLAGMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1PnFlagMetricTag'] _PATTERNFLOWGTPV1PNFLAGCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1PnFlagCounter'] _PATTERNFLOWGTPV1PNFLAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1PnFlag'] _PATTERNFLOWGTPV1PNFLAG_CHOICE = _PATTERNFLOWGTPV1PNFLAG.nested_types_by_name['Choice'] +_PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1MessageTypeMetricTag'] _PATTERNFLOWGTPV1MESSAGETYPECOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1MessageTypeCounter'] _PATTERNFLOWGTPV1MESSAGETYPE = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1MessageType'] _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE = _PATTERNFLOWGTPV1MESSAGETYPE.nested_types_by_name['Choice'] +_PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1MessageLengthMetricTag'] _PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1MessageLengthCounter'] _PATTERNFLOWGTPV1MESSAGELENGTH = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1MessageLength'] _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE = _PATTERNFLOWGTPV1MESSAGELENGTH.nested_types_by_name['Choice'] +_PATTERNFLOWGTPV1TEIDMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1TeidMetricTag'] _PATTERNFLOWGTPV1TEIDCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1TeidCounter'] _PATTERNFLOWGTPV1TEID = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1Teid'] _PATTERNFLOWGTPV1TEID_CHOICE = _PATTERNFLOWGTPV1TEID.nested_types_by_name['Choice'] +_PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1SquenceNumberMetricTag'] _PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1SquenceNumberCounter'] _PATTERNFLOWGTPV1SQUENCENUMBER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1SquenceNumber'] _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE = _PATTERNFLOWGTPV1SQUENCENUMBER.nested_types_by_name['Choice'] +_PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1NPduNumberMetricTag'] _PATTERNFLOWGTPV1NPDUNUMBERCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1NPduNumberCounter'] _PATTERNFLOWGTPV1NPDUNUMBER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1NPduNumber'] _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE = _PATTERNFLOWGTPV1NPDUNUMBER.nested_types_by_name['Choice'] +_PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1NextExtensionHeaderTypeMetricTag'] _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1NextExtensionHeaderTypeCounter'] _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE = DESCRIPTOR.message_types_by_name['PatternFlowGtpv1NextExtensionHeaderType'] _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE = _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE.nested_types_by_name['Choice'] +_PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpExtensionExtensionLengthMetricTag'] _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpExtensionExtensionLengthCounter'] _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH = DESCRIPTOR.message_types_by_name['PatternFlowGtpExtensionExtensionLength'] _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE = _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH.nested_types_by_name['Choice'] +_PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpExtensionContentsMetricTag'] _PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpExtensionContentsCounter'] _PATTERNFLOWGTPEXTENSIONCONTENTS = DESCRIPTOR.message_types_by_name['PatternFlowGtpExtensionContents'] _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE = _PATTERNFLOWGTPEXTENSIONCONTENTS.nested_types_by_name['Choice'] +_PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpExtensionNextExtensionHeaderMetricTag'] _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpExtensionNextExtensionHeaderCounter'] _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER = DESCRIPTOR.message_types_by_name['PatternFlowGtpExtensionNextExtensionHeader'] _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE = _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER.nested_types_by_name['Choice'] +_PATTERNFLOWGTPV2VERSIONMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2VersionMetricTag'] _PATTERNFLOWGTPV2VERSIONCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2VersionCounter'] _PATTERNFLOWGTPV2VERSION = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2Version'] _PATTERNFLOWGTPV2VERSION_CHOICE = _PATTERNFLOWGTPV2VERSION.nested_types_by_name['Choice'] +_PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2PiggybackingFlagMetricTag'] _PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2PiggybackingFlagCounter'] _PATTERNFLOWGTPV2PIGGYBACKINGFLAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2PiggybackingFlag'] _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE = _PATTERNFLOWGTPV2PIGGYBACKINGFLAG.nested_types_by_name['Choice'] +_PATTERNFLOWGTPV2TEIDFLAGMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2TeidFlagMetricTag'] _PATTERNFLOWGTPV2TEIDFLAGCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2TeidFlagCounter'] _PATTERNFLOWGTPV2TEIDFLAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2TeidFlag'] _PATTERNFLOWGTPV2TEIDFLAG_CHOICE = _PATTERNFLOWGTPV2TEIDFLAG.nested_types_by_name['Choice'] +_PATTERNFLOWGTPV2SPARE1METRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2Spare1MetricTag'] _PATTERNFLOWGTPV2SPARE1COUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2Spare1Counter'] _PATTERNFLOWGTPV2SPARE1 = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2Spare1'] _PATTERNFLOWGTPV2SPARE1_CHOICE = _PATTERNFLOWGTPV2SPARE1.nested_types_by_name['Choice'] +_PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2MessageTypeMetricTag'] _PATTERNFLOWGTPV2MESSAGETYPECOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2MessageTypeCounter'] _PATTERNFLOWGTPV2MESSAGETYPE = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2MessageType'] _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE = _PATTERNFLOWGTPV2MESSAGETYPE.nested_types_by_name['Choice'] +_PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2MessageLengthMetricTag'] _PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2MessageLengthCounter'] _PATTERNFLOWGTPV2MESSAGELENGTH = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2MessageLength'] _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE = _PATTERNFLOWGTPV2MESSAGELENGTH.nested_types_by_name['Choice'] +_PATTERNFLOWGTPV2TEIDMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2TeidMetricTag'] _PATTERNFLOWGTPV2TEIDCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2TeidCounter'] _PATTERNFLOWGTPV2TEID = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2Teid'] _PATTERNFLOWGTPV2TEID_CHOICE = _PATTERNFLOWGTPV2TEID.nested_types_by_name['Choice'] +_PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2SequenceNumberMetricTag'] _PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2SequenceNumberCounter'] _PATTERNFLOWGTPV2SEQUENCENUMBER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2SequenceNumber'] _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE = _PATTERNFLOWGTPV2SEQUENCENUMBER.nested_types_by_name['Choice'] +_PATTERNFLOWGTPV2SPARE2METRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2Spare2MetricTag'] _PATTERNFLOWGTPV2SPARE2COUNTER = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2Spare2Counter'] _PATTERNFLOWGTPV2SPARE2 = DESCRIPTOR.message_types_by_name['PatternFlowGtpv2Spare2'] _PATTERNFLOWGTPV2SPARE2_CHOICE = _PATTERNFLOWGTPV2SPARE2.nested_types_by_name['Choice'] +_PATTERNFLOWARPHARDWARETYPEMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowArpHardwareTypeMetricTag'] _PATTERNFLOWARPHARDWARETYPECOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowArpHardwareTypeCounter'] _PATTERNFLOWARPHARDWARETYPE = DESCRIPTOR.message_types_by_name['PatternFlowArpHardwareType'] _PATTERNFLOWARPHARDWARETYPE_CHOICE = _PATTERNFLOWARPHARDWARETYPE.nested_types_by_name['Choice'] +_PATTERNFLOWARPPROTOCOLTYPEMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowArpProtocolTypeMetricTag'] _PATTERNFLOWARPPROTOCOLTYPECOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowArpProtocolTypeCounter'] _PATTERNFLOWARPPROTOCOLTYPE = DESCRIPTOR.message_types_by_name['PatternFlowArpProtocolType'] _PATTERNFLOWARPPROTOCOLTYPE_CHOICE = _PATTERNFLOWARPPROTOCOLTYPE.nested_types_by_name['Choice'] +_PATTERNFLOWARPHARDWARELENGTHMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowArpHardwareLengthMetricTag'] _PATTERNFLOWARPHARDWARELENGTHCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowArpHardwareLengthCounter'] _PATTERNFLOWARPHARDWARELENGTH = DESCRIPTOR.message_types_by_name['PatternFlowArpHardwareLength'] _PATTERNFLOWARPHARDWARELENGTH_CHOICE = _PATTERNFLOWARPHARDWARELENGTH.nested_types_by_name['Choice'] +_PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowArpProtocolLengthMetricTag'] _PATTERNFLOWARPPROTOCOLLENGTHCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowArpProtocolLengthCounter'] _PATTERNFLOWARPPROTOCOLLENGTH = DESCRIPTOR.message_types_by_name['PatternFlowArpProtocolLength'] _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE = _PATTERNFLOWARPPROTOCOLLENGTH.nested_types_by_name['Choice'] +_PATTERNFLOWARPOPERATIONMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowArpOperationMetricTag'] _PATTERNFLOWARPOPERATIONCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowArpOperationCounter'] _PATTERNFLOWARPOPERATION = DESCRIPTOR.message_types_by_name['PatternFlowArpOperation'] _PATTERNFLOWARPOPERATION_CHOICE = _PATTERNFLOWARPOPERATION.nested_types_by_name['Choice'] +_PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowArpSenderHardwareAddrMetricTag'] _PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowArpSenderHardwareAddrCounter'] _PATTERNFLOWARPSENDERHARDWAREADDR = DESCRIPTOR.message_types_by_name['PatternFlowArpSenderHardwareAddr'] _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE = _PATTERNFLOWARPSENDERHARDWAREADDR.nested_types_by_name['Choice'] +_PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowArpSenderProtocolAddrMetricTag'] _PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowArpSenderProtocolAddrCounter'] _PATTERNFLOWARPSENDERPROTOCOLADDR = DESCRIPTOR.message_types_by_name['PatternFlowArpSenderProtocolAddr'] _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE = _PATTERNFLOWARPSENDERPROTOCOLADDR.nested_types_by_name['Choice'] +_PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowArpTargetHardwareAddrMetricTag'] _PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowArpTargetHardwareAddrCounter'] _PATTERNFLOWARPTARGETHARDWAREADDR = DESCRIPTOR.message_types_by_name['PatternFlowArpTargetHardwareAddr'] _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE = _PATTERNFLOWARPTARGETHARDWAREADDR.nested_types_by_name['Choice'] +_PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowArpTargetProtocolAddrMetricTag'] _PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowArpTargetProtocolAddrCounter'] _PATTERNFLOWARPTARGETPROTOCOLADDR = DESCRIPTOR.message_types_by_name['PatternFlowArpTargetProtocolAddr'] _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE = _PATTERNFLOWARPTARGETPROTOCOLADDR.nested_types_by_name['Choice'] +_PATTERNFLOWICMPECHOTYPEMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIcmpEchoTypeMetricTag'] _PATTERNFLOWICMPECHOTYPECOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIcmpEchoTypeCounter'] _PATTERNFLOWICMPECHOTYPE = DESCRIPTOR.message_types_by_name['PatternFlowIcmpEchoType'] _PATTERNFLOWICMPECHOTYPE_CHOICE = _PATTERNFLOWICMPECHOTYPE.nested_types_by_name['Choice'] +_PATTERNFLOWICMPECHOCODEMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIcmpEchoCodeMetricTag'] _PATTERNFLOWICMPECHOCODECOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIcmpEchoCodeCounter'] _PATTERNFLOWICMPECHOCODE = DESCRIPTOR.message_types_by_name['PatternFlowIcmpEchoCode'] _PATTERNFLOWICMPECHOCODE_CHOICE = _PATTERNFLOWICMPECHOCODE.nested_types_by_name['Choice'] _PATTERNFLOWICMPECHOCHECKSUM = DESCRIPTOR.message_types_by_name['PatternFlowIcmpEchoChecksum'] _PATTERNFLOWICMPECHOCHECKSUM_CHOICE = _PATTERNFLOWICMPECHOCHECKSUM.nested_types_by_name['Choice'] _PATTERNFLOWICMPECHOCHECKSUM_GENERATED = _PATTERNFLOWICMPECHOCHECKSUM.nested_types_by_name['Generated'] +_PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIcmpEchoIdentifierMetricTag'] _PATTERNFLOWICMPECHOIDENTIFIERCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIcmpEchoIdentifierCounter'] _PATTERNFLOWICMPECHOIDENTIFIER = DESCRIPTOR.message_types_by_name['PatternFlowIcmpEchoIdentifier'] _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE = _PATTERNFLOWICMPECHOIDENTIFIER.nested_types_by_name['Choice'] +_PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIcmpEchoSequenceNumberMetricTag'] _PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIcmpEchoSequenceNumberCounter'] _PATTERNFLOWICMPECHOSEQUENCENUMBER = DESCRIPTOR.message_types_by_name['PatternFlowIcmpEchoSequenceNumber'] _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE = _PATTERNFLOWICMPECHOSEQUENCENUMBER.nested_types_by_name['Choice'] _PATTERNFLOWICMPCOMMONCHECKSUM = DESCRIPTOR.message_types_by_name['PatternFlowIcmpCommonChecksum'] _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE = _PATTERNFLOWICMPCOMMONCHECKSUM.nested_types_by_name['Choice'] _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED = _PATTERNFLOWICMPCOMMONCHECKSUM.nested_types_by_name['Generated'] +_PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIcmpNextFieldsIdentifierMetricTag'] _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIcmpNextFieldsIdentifierCounter'] _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER = DESCRIPTOR.message_types_by_name['PatternFlowIcmpNextFieldsIdentifier'] _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE = _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER.nested_types_by_name['Choice'] +_PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIcmpNextFieldsSequenceNumberMetricTag'] _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIcmpNextFieldsSequenceNumberCounter'] _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER = DESCRIPTOR.message_types_by_name['PatternFlowIcmpNextFieldsSequenceNumber'] _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE = _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER.nested_types_by_name['Choice'] +_PATTERNFLOWICMPV6ECHOTYPEMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIcmpv6EchoTypeMetricTag'] _PATTERNFLOWICMPV6ECHOTYPECOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIcmpv6EchoTypeCounter'] _PATTERNFLOWICMPV6ECHOTYPE = DESCRIPTOR.message_types_by_name['PatternFlowIcmpv6EchoType'] _PATTERNFLOWICMPV6ECHOTYPE_CHOICE = _PATTERNFLOWICMPV6ECHOTYPE.nested_types_by_name['Choice'] +_PATTERNFLOWICMPV6ECHOCODEMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIcmpv6EchoCodeMetricTag'] _PATTERNFLOWICMPV6ECHOCODECOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIcmpv6EchoCodeCounter'] _PATTERNFLOWICMPV6ECHOCODE = DESCRIPTOR.message_types_by_name['PatternFlowIcmpv6EchoCode'] _PATTERNFLOWICMPV6ECHOCODE_CHOICE = _PATTERNFLOWICMPV6ECHOCODE.nested_types_by_name['Choice'] +_PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIcmpv6EchoIdentifierMetricTag'] _PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIcmpv6EchoIdentifierCounter'] _PATTERNFLOWICMPV6ECHOIDENTIFIER = DESCRIPTOR.message_types_by_name['PatternFlowIcmpv6EchoIdentifier'] _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE = _PATTERNFLOWICMPV6ECHOIDENTIFIER.nested_types_by_name['Choice'] +_PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIcmpv6EchoSequenceNumberMetricTag'] _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIcmpv6EchoSequenceNumberCounter'] _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER = DESCRIPTOR.message_types_by_name['PatternFlowIcmpv6EchoSequenceNumber'] _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE = _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER.nested_types_by_name['Choice'] @@ -885,39 +1015,50 @@ _PATTERNFLOWICMPV6COMMONCHECKSUM = DESCRIPTOR.message_types_by_name['PatternFlowIcmpv6CommonChecksum'] _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE = _PATTERNFLOWICMPV6COMMONCHECKSUM.nested_types_by_name['Choice'] _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED = _PATTERNFLOWICMPV6COMMONCHECKSUM.nested_types_by_name['Generated'] +_PATTERNFLOWPPPADDRESSMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowPppAddressMetricTag'] _PATTERNFLOWPPPADDRESSCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowPppAddressCounter'] _PATTERNFLOWPPPADDRESS = DESCRIPTOR.message_types_by_name['PatternFlowPppAddress'] _PATTERNFLOWPPPADDRESS_CHOICE = _PATTERNFLOWPPPADDRESS.nested_types_by_name['Choice'] +_PATTERNFLOWPPPCONTROLMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowPppControlMetricTag'] _PATTERNFLOWPPPCONTROLCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowPppControlCounter'] _PATTERNFLOWPPPCONTROL = DESCRIPTOR.message_types_by_name['PatternFlowPppControl'] _PATTERNFLOWPPPCONTROL_CHOICE = _PATTERNFLOWPPPCONTROL.nested_types_by_name['Choice'] +_PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowPppProtocolTypeMetricTag'] _PATTERNFLOWPPPPROTOCOLTYPECOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowPppProtocolTypeCounter'] _PATTERNFLOWPPPPROTOCOLTYPE = DESCRIPTOR.message_types_by_name['PatternFlowPppProtocolType'] _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE = _PATTERNFLOWPPPPROTOCOLTYPE.nested_types_by_name['Choice'] +_PATTERNFLOWIGMPV1VERSIONMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIgmpv1VersionMetricTag'] _PATTERNFLOWIGMPV1VERSIONCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIgmpv1VersionCounter'] _PATTERNFLOWIGMPV1VERSION = DESCRIPTOR.message_types_by_name['PatternFlowIgmpv1Version'] _PATTERNFLOWIGMPV1VERSION_CHOICE = _PATTERNFLOWIGMPV1VERSION.nested_types_by_name['Choice'] +_PATTERNFLOWIGMPV1TYPEMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIgmpv1TypeMetricTag'] _PATTERNFLOWIGMPV1TYPECOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIgmpv1TypeCounter'] _PATTERNFLOWIGMPV1TYPE = DESCRIPTOR.message_types_by_name['PatternFlowIgmpv1Type'] _PATTERNFLOWIGMPV1TYPE_CHOICE = _PATTERNFLOWIGMPV1TYPE.nested_types_by_name['Choice'] +_PATTERNFLOWIGMPV1UNUSEDMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIgmpv1UnusedMetricTag'] _PATTERNFLOWIGMPV1UNUSEDCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIgmpv1UnusedCounter'] _PATTERNFLOWIGMPV1UNUSED = DESCRIPTOR.message_types_by_name['PatternFlowIgmpv1Unused'] _PATTERNFLOWIGMPV1UNUSED_CHOICE = _PATTERNFLOWIGMPV1UNUSED.nested_types_by_name['Choice'] _PATTERNFLOWIGMPV1CHECKSUM = DESCRIPTOR.message_types_by_name['PatternFlowIgmpv1Checksum'] _PATTERNFLOWIGMPV1CHECKSUM_CHOICE = _PATTERNFLOWIGMPV1CHECKSUM.nested_types_by_name['Choice'] _PATTERNFLOWIGMPV1CHECKSUM_GENERATED = _PATTERNFLOWIGMPV1CHECKSUM.nested_types_by_name['Generated'] +_PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowIgmpv1GroupAddressMetricTag'] _PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowIgmpv1GroupAddressCounter'] _PATTERNFLOWIGMPV1GROUPADDRESS = DESCRIPTOR.message_types_by_name['PatternFlowIgmpv1GroupAddress'] _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE = _PATTERNFLOWIGMPV1GROUPADDRESS.nested_types_by_name['Choice'] +_PATTERNFLOWMPLSLABELMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowMplsLabelMetricTag'] _PATTERNFLOWMPLSLABELCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowMplsLabelCounter'] _PATTERNFLOWMPLSLABEL = DESCRIPTOR.message_types_by_name['PatternFlowMplsLabel'] _PATTERNFLOWMPLSLABEL_CHOICE = _PATTERNFLOWMPLSLABEL.nested_types_by_name['Choice'] +_PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowMplsTrafficClassMetricTag'] _PATTERNFLOWMPLSTRAFFICCLASSCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowMplsTrafficClassCounter'] _PATTERNFLOWMPLSTRAFFICCLASS = DESCRIPTOR.message_types_by_name['PatternFlowMplsTrafficClass'] _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE = _PATTERNFLOWMPLSTRAFFICCLASS.nested_types_by_name['Choice'] +_PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowMplsBottomOfStackMetricTag'] _PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowMplsBottomOfStackCounter'] _PATTERNFLOWMPLSBOTTOMOFSTACK = DESCRIPTOR.message_types_by_name['PatternFlowMplsBottomOfStack'] _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE = _PATTERNFLOWMPLSBOTTOMOFSTACK.nested_types_by_name['Choice'] +_PATTERNFLOWMPLSTIMETOLIVEMETRICTAG = DESCRIPTOR.message_types_by_name['PatternFlowMplsTimeToLiveMetricTag'] _PATTERNFLOWMPLSTIMETOLIVECOUNTER = DESCRIPTOR.message_types_by_name['PatternFlowMplsTimeToLiveCounter'] _PATTERNFLOWMPLSTIMETOLIVE = DESCRIPTOR.message_types_by_name['PatternFlowMplsTimeToLive'] _PATTERNFLOWMPLSTIMETOLIVE_CHOICE = _PATTERNFLOWMPLSTIMETOLIVE.nested_types_by_name['Choice'] @@ -1076,8 +1217,9 @@ _PORTMETRIC_CAPTURE_ENUM = _PORTMETRIC_CAPTURE.enum_types_by_name['Enum'] _PORTMETRIC_TRANSMIT_ENUM = _PORTMETRIC_TRANSMIT.enum_types_by_name['Enum'] _FLOWMETRICSREQUEST_METRICNAMES_ENUM = _FLOWMETRICSREQUEST_METRICNAMES.enum_types_by_name['Enum'] -_FLOWMETRICGROUPREQUEST_CHOICE_ENUM = _FLOWMETRICGROUPREQUEST_CHOICE.enum_types_by_name['Enum'] +_FLOWTAGGEDMETRICSFILTER_METRICNAMES_ENUM = _FLOWTAGGEDMETRICSFILTER_METRICNAMES.enum_types_by_name['Enum'] _FLOWMETRIC_TRANSMIT_ENUM = _FLOWMETRIC_TRANSMIT.enum_types_by_name['Enum'] +_FLOWMETRICTAGVALUE_CHOICE_ENUM = _FLOWMETRICTAGVALUE_CHOICE.enum_types_by_name['Enum'] _BGPV4METRICSREQUEST_COLUMNNAMES_ENUM = _BGPV4METRICSREQUEST_COLUMNNAMES.enum_types_by_name['Enum'] _BGPV4METRIC_SESSIONSTATE_ENUM = _BGPV4METRIC_SESSIONSTATE.enum_types_by_name['Enum'] _BGPV4METRIC_FSMSTATE_ENUM = _BGPV4METRIC_FSMSTATE.enum_types_by_name['Enum'] @@ -2784,6 +2926,13 @@ }) _sym_db.RegisterMessage(FlowCustom) +FlowCustomMetricTag = _reflection.GeneratedProtocolMessageType('FlowCustomMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _FLOWCUSTOMMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.FlowCustomMetricTag) + }) +_sym_db.RegisterMessage(FlowCustomMetricTag) + FlowEthernet = _reflection.GeneratedProtocolMessageType('FlowEthernet', (_message.Message,), { 'DESCRIPTOR' : _FLOWETHERNET, '__module__' : 'otg_pb2' @@ -3969,20 +4118,27 @@ _sym_db.RegisterMessage(FlowMetricsRequest) _sym_db.RegisterMessage(FlowMetricsRequest.MetricNames) -FlowMetricGroupRequest = _reflection.GeneratedProtocolMessageType('FlowMetricGroupRequest', (_message.Message,), { +FlowTaggedMetricsFilter = _reflection.GeneratedProtocolMessageType('FlowTaggedMetricsFilter', (_message.Message,), { - 'Choice' : _reflection.GeneratedProtocolMessageType('Choice', (_message.Message,), { - 'DESCRIPTOR' : _FLOWMETRICGROUPREQUEST_CHOICE, + 'MetricNames' : _reflection.GeneratedProtocolMessageType('MetricNames', (_message.Message,), { + 'DESCRIPTOR' : _FLOWTAGGEDMETRICSFILTER_METRICNAMES, '__module__' : 'otg_pb2' - # @@protoc_insertion_point(class_scope:otg.FlowMetricGroupRequest.Choice) + # @@protoc_insertion_point(class_scope:otg.FlowTaggedMetricsFilter.MetricNames) }) , - 'DESCRIPTOR' : _FLOWMETRICGROUPREQUEST, + 'DESCRIPTOR' : _FLOWTAGGEDMETRICSFILTER, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.FlowTaggedMetricsFilter) + }) +_sym_db.RegisterMessage(FlowTaggedMetricsFilter) +_sym_db.RegisterMessage(FlowTaggedMetricsFilter.MetricNames) + +FlowMetricTagFilter = _reflection.GeneratedProtocolMessageType('FlowMetricTagFilter', (_message.Message,), { + 'DESCRIPTOR' : _FLOWMETRICTAGFILTER, '__module__' : 'otg_pb2' - # @@protoc_insertion_point(class_scope:otg.FlowMetricGroupRequest) + # @@protoc_insertion_point(class_scope:otg.FlowMetricTagFilter) }) -_sym_db.RegisterMessage(FlowMetricGroupRequest) -_sym_db.RegisterMessage(FlowMetricGroupRequest.Choice) +_sym_db.RegisterMessage(FlowMetricTagFilter) FlowMetric = _reflection.GeneratedProtocolMessageType('FlowMetric', (_message.Message,), { @@ -3999,12 +4155,34 @@ _sym_db.RegisterMessage(FlowMetric) _sym_db.RegisterMessage(FlowMetric.Transmit) -FlowMetricGroup = _reflection.GeneratedProtocolMessageType('FlowMetricGroup', (_message.Message,), { - 'DESCRIPTOR' : _FLOWMETRICGROUP, +FlowTaggedMetric = _reflection.GeneratedProtocolMessageType('FlowTaggedMetric', (_message.Message,), { + 'DESCRIPTOR' : _FLOWTAGGEDMETRIC, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.FlowTaggedMetric) + }) +_sym_db.RegisterMessage(FlowTaggedMetric) + +FlowMetricTag = _reflection.GeneratedProtocolMessageType('FlowMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _FLOWMETRICTAG, '__module__' : 'otg_pb2' - # @@protoc_insertion_point(class_scope:otg.FlowMetricGroup) + # @@protoc_insertion_point(class_scope:otg.FlowMetricTag) }) -_sym_db.RegisterMessage(FlowMetricGroup) +_sym_db.RegisterMessage(FlowMetricTag) + +FlowMetricTagValue = _reflection.GeneratedProtocolMessageType('FlowMetricTagValue', (_message.Message,), { + + 'Choice' : _reflection.GeneratedProtocolMessageType('Choice', (_message.Message,), { + 'DESCRIPTOR' : _FLOWMETRICTAGVALUE_CHOICE, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.FlowMetricTagValue.Choice) + }) + , + 'DESCRIPTOR' : _FLOWMETRICTAGVALUE, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.FlowMetricTagValue) + }) +_sym_db.RegisterMessage(FlowMetricTagValue) +_sym_db.RegisterMessage(FlowMetricTagValue.Choice) MetricTimestamp = _reflection.GeneratedProtocolMessageType('MetricTimestamp', (_message.Message,), { 'DESCRIPTOR' : _METRICTIMESTAMP, @@ -4707,6 +4885,13 @@ }) _sym_db.RegisterMessage(CaptureRequest) +PatternFlowEthernetDstMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowEthernetDstMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWETHERNETDSTMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowEthernetDstMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowEthernetDstMetricTag) + PatternFlowEthernetDstCounter = _reflection.GeneratedProtocolMessageType('PatternFlowEthernetDstCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWETHERNETDSTCOUNTER, '__module__' : 'otg_pb2' @@ -4729,6 +4914,13 @@ _sym_db.RegisterMessage(PatternFlowEthernetDst) _sym_db.RegisterMessage(PatternFlowEthernetDst.Choice) +PatternFlowEthernetSrcMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowEthernetSrcMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWETHERNETSRCMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowEthernetSrcMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowEthernetSrcMetricTag) + PatternFlowEthernetSrcCounter = _reflection.GeneratedProtocolMessageType('PatternFlowEthernetSrcCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWETHERNETSRCCOUNTER, '__module__' : 'otg_pb2' @@ -4751,6 +4943,13 @@ _sym_db.RegisterMessage(PatternFlowEthernetSrc) _sym_db.RegisterMessage(PatternFlowEthernetSrc.Choice) +PatternFlowEthernetEtherTypeMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowEthernetEtherTypeMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWETHERNETETHERTYPEMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowEthernetEtherTypeMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowEthernetEtherTypeMetricTag) + PatternFlowEthernetEtherTypeCounter = _reflection.GeneratedProtocolMessageType('PatternFlowEthernetEtherTypeCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWETHERNETETHERTYPECOUNTER, '__module__' : 'otg_pb2' @@ -4773,6 +4972,13 @@ _sym_db.RegisterMessage(PatternFlowEthernetEtherType) _sym_db.RegisterMessage(PatternFlowEthernetEtherType.Choice) +PatternFlowEthernetPfcQueueMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowEthernetPfcQueueMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWETHERNETPFCQUEUEMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowEthernetPfcQueueMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowEthernetPfcQueueMetricTag) + PatternFlowEthernetPfcQueueCounter = _reflection.GeneratedProtocolMessageType('PatternFlowEthernetPfcQueueCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWETHERNETPFCQUEUECOUNTER, '__module__' : 'otg_pb2' @@ -4795,6 +5001,13 @@ _sym_db.RegisterMessage(PatternFlowEthernetPfcQueue) _sym_db.RegisterMessage(PatternFlowEthernetPfcQueue.Choice) +PatternFlowVlanPriorityMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowVlanPriorityMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWVLANPRIORITYMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowVlanPriorityMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowVlanPriorityMetricTag) + PatternFlowVlanPriorityCounter = _reflection.GeneratedProtocolMessageType('PatternFlowVlanPriorityCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWVLANPRIORITYCOUNTER, '__module__' : 'otg_pb2' @@ -4817,6 +5030,13 @@ _sym_db.RegisterMessage(PatternFlowVlanPriority) _sym_db.RegisterMessage(PatternFlowVlanPriority.Choice) +PatternFlowVlanCfiMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowVlanCfiMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWVLANCFIMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowVlanCfiMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowVlanCfiMetricTag) + PatternFlowVlanCfiCounter = _reflection.GeneratedProtocolMessageType('PatternFlowVlanCfiCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWVLANCFICOUNTER, '__module__' : 'otg_pb2' @@ -4839,6 +5059,13 @@ _sym_db.RegisterMessage(PatternFlowVlanCfi) _sym_db.RegisterMessage(PatternFlowVlanCfi.Choice) +PatternFlowVlanIdMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowVlanIdMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWVLANIDMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowVlanIdMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowVlanIdMetricTag) + PatternFlowVlanIdCounter = _reflection.GeneratedProtocolMessageType('PatternFlowVlanIdCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWVLANIDCOUNTER, '__module__' : 'otg_pb2' @@ -4861,6 +5088,13 @@ _sym_db.RegisterMessage(PatternFlowVlanId) _sym_db.RegisterMessage(PatternFlowVlanId.Choice) +PatternFlowVlanTpidMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowVlanTpidMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWVLANTPIDMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowVlanTpidMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowVlanTpidMetricTag) + PatternFlowVlanTpidCounter = _reflection.GeneratedProtocolMessageType('PatternFlowVlanTpidCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWVLANTPIDCOUNTER, '__module__' : 'otg_pb2' @@ -4883,6 +5117,13 @@ _sym_db.RegisterMessage(PatternFlowVlanTpid) _sym_db.RegisterMessage(PatternFlowVlanTpid.Choice) +PatternFlowVxlanFlagsMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowVxlanFlagsMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWVXLANFLAGSMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowVxlanFlagsMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowVxlanFlagsMetricTag) + PatternFlowVxlanFlagsCounter = _reflection.GeneratedProtocolMessageType('PatternFlowVxlanFlagsCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWVXLANFLAGSCOUNTER, '__module__' : 'otg_pb2' @@ -4905,6 +5146,13 @@ _sym_db.RegisterMessage(PatternFlowVxlanFlags) _sym_db.RegisterMessage(PatternFlowVxlanFlags.Choice) +PatternFlowVxlanReserved0MetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowVxlanReserved0MetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWVXLANRESERVED0METRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowVxlanReserved0MetricTag) + }) +_sym_db.RegisterMessage(PatternFlowVxlanReserved0MetricTag) + PatternFlowVxlanReserved0Counter = _reflection.GeneratedProtocolMessageType('PatternFlowVxlanReserved0Counter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWVXLANRESERVED0COUNTER, '__module__' : 'otg_pb2' @@ -4927,6 +5175,13 @@ _sym_db.RegisterMessage(PatternFlowVxlanReserved0) _sym_db.RegisterMessage(PatternFlowVxlanReserved0.Choice) +PatternFlowVxlanVniMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowVxlanVniMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWVXLANVNIMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowVxlanVniMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowVxlanVniMetricTag) + PatternFlowVxlanVniCounter = _reflection.GeneratedProtocolMessageType('PatternFlowVxlanVniCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWVXLANVNICOUNTER, '__module__' : 'otg_pb2' @@ -4949,6 +5204,13 @@ _sym_db.RegisterMessage(PatternFlowVxlanVni) _sym_db.RegisterMessage(PatternFlowVxlanVni.Choice) +PatternFlowVxlanReserved1MetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowVxlanReserved1MetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWVXLANRESERVED1METRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowVxlanReserved1MetricTag) + }) +_sym_db.RegisterMessage(PatternFlowVxlanReserved1MetricTag) + PatternFlowVxlanReserved1Counter = _reflection.GeneratedProtocolMessageType('PatternFlowVxlanReserved1Counter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWVXLANRESERVED1COUNTER, '__module__' : 'otg_pb2' @@ -4971,6 +5233,13 @@ _sym_db.RegisterMessage(PatternFlowVxlanReserved1) _sym_db.RegisterMessage(PatternFlowVxlanReserved1.Choice) +PatternFlowIpv4VersionMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4VersionMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV4VERSIONMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv4VersionMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv4VersionMetricTag) + PatternFlowIpv4VersionCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4VersionCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV4VERSIONCOUNTER, '__module__' : 'otg_pb2' @@ -4993,6 +5262,13 @@ _sym_db.RegisterMessage(PatternFlowIpv4Version) _sym_db.RegisterMessage(PatternFlowIpv4Version.Choice) +PatternFlowIpv4HeaderLengthMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4HeaderLengthMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV4HEADERLENGTHMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv4HeaderLengthMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv4HeaderLengthMetricTag) + PatternFlowIpv4HeaderLengthCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4HeaderLengthCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV4HEADERLENGTHCOUNTER, '__module__' : 'otg_pb2' @@ -5015,6 +5291,13 @@ _sym_db.RegisterMessage(PatternFlowIpv4HeaderLength) _sym_db.RegisterMessage(PatternFlowIpv4HeaderLength.Choice) +PatternFlowIpv4TotalLengthMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4TotalLengthMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV4TOTALLENGTHMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv4TotalLengthMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv4TotalLengthMetricTag) + PatternFlowIpv4TotalLengthCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4TotalLengthCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV4TOTALLENGTHCOUNTER, '__module__' : 'otg_pb2' @@ -5037,6 +5320,13 @@ _sym_db.RegisterMessage(PatternFlowIpv4TotalLength) _sym_db.RegisterMessage(PatternFlowIpv4TotalLength.Choice) +PatternFlowIpv4IdentificationMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4IdentificationMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv4IdentificationMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv4IdentificationMetricTag) + PatternFlowIpv4IdentificationCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4IdentificationCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV4IDENTIFICATIONCOUNTER, '__module__' : 'otg_pb2' @@ -5059,6 +5349,13 @@ _sym_db.RegisterMessage(PatternFlowIpv4Identification) _sym_db.RegisterMessage(PatternFlowIpv4Identification.Choice) +PatternFlowIpv4ReservedMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4ReservedMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV4RESERVEDMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv4ReservedMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv4ReservedMetricTag) + PatternFlowIpv4ReservedCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4ReservedCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV4RESERVEDCOUNTER, '__module__' : 'otg_pb2' @@ -5081,6 +5378,13 @@ _sym_db.RegisterMessage(PatternFlowIpv4Reserved) _sym_db.RegisterMessage(PatternFlowIpv4Reserved.Choice) +PatternFlowIpv4DontFragmentMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4DontFragmentMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv4DontFragmentMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv4DontFragmentMetricTag) + PatternFlowIpv4DontFragmentCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4DontFragmentCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV4DONTFRAGMENTCOUNTER, '__module__' : 'otg_pb2' @@ -5103,6 +5407,13 @@ _sym_db.RegisterMessage(PatternFlowIpv4DontFragment) _sym_db.RegisterMessage(PatternFlowIpv4DontFragment.Choice) +PatternFlowIpv4MoreFragmentsMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4MoreFragmentsMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv4MoreFragmentsMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv4MoreFragmentsMetricTag) + PatternFlowIpv4MoreFragmentsCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4MoreFragmentsCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER, '__module__' : 'otg_pb2' @@ -5125,6 +5436,13 @@ _sym_db.RegisterMessage(PatternFlowIpv4MoreFragments) _sym_db.RegisterMessage(PatternFlowIpv4MoreFragments.Choice) +PatternFlowIpv4FragmentOffsetMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4FragmentOffsetMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv4FragmentOffsetMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv4FragmentOffsetMetricTag) + PatternFlowIpv4FragmentOffsetCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4FragmentOffsetCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER, '__module__' : 'otg_pb2' @@ -5147,6 +5465,13 @@ _sym_db.RegisterMessage(PatternFlowIpv4FragmentOffset) _sym_db.RegisterMessage(PatternFlowIpv4FragmentOffset.Choice) +PatternFlowIpv4TimeToLiveMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4TimeToLiveMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV4TIMETOLIVEMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv4TimeToLiveMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv4TimeToLiveMetricTag) + PatternFlowIpv4TimeToLiveCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4TimeToLiveCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV4TIMETOLIVECOUNTER, '__module__' : 'otg_pb2' @@ -5169,6 +5494,13 @@ _sym_db.RegisterMessage(PatternFlowIpv4TimeToLive) _sym_db.RegisterMessage(PatternFlowIpv4TimeToLive.Choice) +PatternFlowIpv4ProtocolMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4ProtocolMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV4PROTOCOLMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv4ProtocolMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv4ProtocolMetricTag) + PatternFlowIpv4ProtocolCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4ProtocolCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV4PROTOCOLCOUNTER, '__module__' : 'otg_pb2' @@ -5214,6 +5546,13 @@ _sym_db.RegisterMessage(PatternFlowIpv4HeaderChecksum.Choice) _sym_db.RegisterMessage(PatternFlowIpv4HeaderChecksum.Generated) +PatternFlowIpv4SrcMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4SrcMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV4SRCMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv4SrcMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv4SrcMetricTag) + PatternFlowIpv4SrcCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4SrcCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV4SRCCOUNTER, '__module__' : 'otg_pb2' @@ -5236,6 +5575,13 @@ _sym_db.RegisterMessage(PatternFlowIpv4Src) _sym_db.RegisterMessage(PatternFlowIpv4Src.Choice) +PatternFlowIpv4DstMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4DstMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV4DSTMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv4DstMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv4DstMetricTag) + PatternFlowIpv4DstCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4DstCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV4DSTCOUNTER, '__module__' : 'otg_pb2' @@ -5258,6 +5604,13 @@ _sym_db.RegisterMessage(PatternFlowIpv4Dst) _sym_db.RegisterMessage(PatternFlowIpv4Dst.Choice) +PatternFlowIpv4PriorityRawMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4PriorityRawMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV4PRIORITYRAWMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv4PriorityRawMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv4PriorityRawMetricTag) + PatternFlowIpv4PriorityRawCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4PriorityRawCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV4PRIORITYRAWCOUNTER, '__module__' : 'otg_pb2' @@ -5280,6 +5633,13 @@ _sym_db.RegisterMessage(PatternFlowIpv4PriorityRaw) _sym_db.RegisterMessage(PatternFlowIpv4PriorityRaw.Choice) +PatternFlowIpv4DscpPhbMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4DscpPhbMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV4DSCPPHBMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv4DscpPhbMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv4DscpPhbMetricTag) + PatternFlowIpv4DscpPhbCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4DscpPhbCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV4DSCPPHBCOUNTER, '__module__' : 'otg_pb2' @@ -5302,6 +5662,13 @@ _sym_db.RegisterMessage(PatternFlowIpv4DscpPhb) _sym_db.RegisterMessage(PatternFlowIpv4DscpPhb.Choice) +PatternFlowIpv4DscpEcnMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4DscpEcnMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV4DSCPECNMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv4DscpEcnMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv4DscpEcnMetricTag) + PatternFlowIpv4DscpEcnCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4DscpEcnCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV4DSCPECNCOUNTER, '__module__' : 'otg_pb2' @@ -5324,6 +5691,13 @@ _sym_db.RegisterMessage(PatternFlowIpv4DscpEcn) _sym_db.RegisterMessage(PatternFlowIpv4DscpEcn.Choice) +PatternFlowIpv4TosPrecedenceMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4TosPrecedenceMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv4TosPrecedenceMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv4TosPrecedenceMetricTag) + PatternFlowIpv4TosPrecedenceCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4TosPrecedenceCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV4TOSPRECEDENCECOUNTER, '__module__' : 'otg_pb2' @@ -5346,6 +5720,13 @@ _sym_db.RegisterMessage(PatternFlowIpv4TosPrecedence) _sym_db.RegisterMessage(PatternFlowIpv4TosPrecedence.Choice) +PatternFlowIpv4TosDelayMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4TosDelayMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV4TOSDELAYMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv4TosDelayMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv4TosDelayMetricTag) + PatternFlowIpv4TosDelayCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4TosDelayCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV4TOSDELAYCOUNTER, '__module__' : 'otg_pb2' @@ -5368,6 +5749,13 @@ _sym_db.RegisterMessage(PatternFlowIpv4TosDelay) _sym_db.RegisterMessage(PatternFlowIpv4TosDelay.Choice) +PatternFlowIpv4TosThroughputMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4TosThroughputMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv4TosThroughputMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv4TosThroughputMetricTag) + PatternFlowIpv4TosThroughputCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4TosThroughputCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER, '__module__' : 'otg_pb2' @@ -5390,6 +5778,13 @@ _sym_db.RegisterMessage(PatternFlowIpv4TosThroughput) _sym_db.RegisterMessage(PatternFlowIpv4TosThroughput.Choice) +PatternFlowIpv4TosReliabilityMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4TosReliabilityMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv4TosReliabilityMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv4TosReliabilityMetricTag) + PatternFlowIpv4TosReliabilityCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4TosReliabilityCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV4TOSRELIABILITYCOUNTER, '__module__' : 'otg_pb2' @@ -5412,6 +5807,13 @@ _sym_db.RegisterMessage(PatternFlowIpv4TosReliability) _sym_db.RegisterMessage(PatternFlowIpv4TosReliability.Choice) +PatternFlowIpv4TosMonetaryMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4TosMonetaryMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV4TOSMONETARYMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv4TosMonetaryMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv4TosMonetaryMetricTag) + PatternFlowIpv4TosMonetaryCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4TosMonetaryCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV4TOSMONETARYCOUNTER, '__module__' : 'otg_pb2' @@ -5434,6 +5836,13 @@ _sym_db.RegisterMessage(PatternFlowIpv4TosMonetary) _sym_db.RegisterMessage(PatternFlowIpv4TosMonetary.Choice) +PatternFlowIpv4TosUnusedMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4TosUnusedMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV4TOSUNUSEDMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv4TosUnusedMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv4TosUnusedMetricTag) + PatternFlowIpv4TosUnusedCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv4TosUnusedCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV4TOSUNUSEDCOUNTER, '__module__' : 'otg_pb2' @@ -5456,6 +5865,13 @@ _sym_db.RegisterMessage(PatternFlowIpv4TosUnused) _sym_db.RegisterMessage(PatternFlowIpv4TosUnused.Choice) +PatternFlowIpv6VersionMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv6VersionMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV6VERSIONMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv6VersionMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv6VersionMetricTag) + PatternFlowIpv6VersionCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv6VersionCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV6VERSIONCOUNTER, '__module__' : 'otg_pb2' @@ -5478,6 +5894,13 @@ _sym_db.RegisterMessage(PatternFlowIpv6Version) _sym_db.RegisterMessage(PatternFlowIpv6Version.Choice) +PatternFlowIpv6TrafficClassMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv6TrafficClassMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv6TrafficClassMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv6TrafficClassMetricTag) + PatternFlowIpv6TrafficClassCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv6TrafficClassCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV6TRAFFICCLASSCOUNTER, '__module__' : 'otg_pb2' @@ -5500,6 +5923,13 @@ _sym_db.RegisterMessage(PatternFlowIpv6TrafficClass) _sym_db.RegisterMessage(PatternFlowIpv6TrafficClass.Choice) +PatternFlowIpv6FlowLabelMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv6FlowLabelMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV6FLOWLABELMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv6FlowLabelMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv6FlowLabelMetricTag) + PatternFlowIpv6FlowLabelCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv6FlowLabelCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV6FLOWLABELCOUNTER, '__module__' : 'otg_pb2' @@ -5522,6 +5952,13 @@ _sym_db.RegisterMessage(PatternFlowIpv6FlowLabel) _sym_db.RegisterMessage(PatternFlowIpv6FlowLabel.Choice) +PatternFlowIpv6PayloadLengthMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv6PayloadLengthMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv6PayloadLengthMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv6PayloadLengthMetricTag) + PatternFlowIpv6PayloadLengthCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv6PayloadLengthCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER, '__module__' : 'otg_pb2' @@ -5544,6 +5981,13 @@ _sym_db.RegisterMessage(PatternFlowIpv6PayloadLength) _sym_db.RegisterMessage(PatternFlowIpv6PayloadLength.Choice) +PatternFlowIpv6NextHeaderMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv6NextHeaderMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV6NEXTHEADERMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv6NextHeaderMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv6NextHeaderMetricTag) + PatternFlowIpv6NextHeaderCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv6NextHeaderCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV6NEXTHEADERCOUNTER, '__module__' : 'otg_pb2' @@ -5566,6 +6010,13 @@ _sym_db.RegisterMessage(PatternFlowIpv6NextHeader) _sym_db.RegisterMessage(PatternFlowIpv6NextHeader.Choice) +PatternFlowIpv6HopLimitMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv6HopLimitMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV6HOPLIMITMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv6HopLimitMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv6HopLimitMetricTag) + PatternFlowIpv6HopLimitCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv6HopLimitCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV6HOPLIMITCOUNTER, '__module__' : 'otg_pb2' @@ -5588,6 +6039,13 @@ _sym_db.RegisterMessage(PatternFlowIpv6HopLimit) _sym_db.RegisterMessage(PatternFlowIpv6HopLimit.Choice) +PatternFlowIpv6SrcMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv6SrcMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV6SRCMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv6SrcMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv6SrcMetricTag) + PatternFlowIpv6SrcCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv6SrcCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV6SRCCOUNTER, '__module__' : 'otg_pb2' @@ -5610,6 +6068,13 @@ _sym_db.RegisterMessage(PatternFlowIpv6Src) _sym_db.RegisterMessage(PatternFlowIpv6Src.Choice) +PatternFlowIpv6DstMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIpv6DstMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIPV6DSTMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIpv6DstMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIpv6DstMetricTag) + PatternFlowIpv6DstCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIpv6DstCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIPV6DSTCOUNTER, '__module__' : 'otg_pb2' @@ -5632,6 +6097,13 @@ _sym_db.RegisterMessage(PatternFlowIpv6Dst) _sym_db.RegisterMessage(PatternFlowIpv6Dst.Choice) +PatternFlowPfcPauseDstMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPauseDstMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSEDSTMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowPfcPauseDstMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowPfcPauseDstMetricTag) + PatternFlowPfcPauseDstCounter = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPauseDstCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSEDSTCOUNTER, '__module__' : 'otg_pb2' @@ -5654,6 +6126,13 @@ _sym_db.RegisterMessage(PatternFlowPfcPauseDst) _sym_db.RegisterMessage(PatternFlowPfcPauseDst.Choice) +PatternFlowPfcPauseSrcMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPauseSrcMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSESRCMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowPfcPauseSrcMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowPfcPauseSrcMetricTag) + PatternFlowPfcPauseSrcCounter = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPauseSrcCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSESRCCOUNTER, '__module__' : 'otg_pb2' @@ -5676,6 +6155,13 @@ _sym_db.RegisterMessage(PatternFlowPfcPauseSrc) _sym_db.RegisterMessage(PatternFlowPfcPauseSrc.Choice) +PatternFlowPfcPauseEtherTypeMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPauseEtherTypeMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowPfcPauseEtherTypeMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowPfcPauseEtherTypeMetricTag) + PatternFlowPfcPauseEtherTypeCounter = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPauseEtherTypeCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSEETHERTYPECOUNTER, '__module__' : 'otg_pb2' @@ -5698,6 +6184,13 @@ _sym_db.RegisterMessage(PatternFlowPfcPauseEtherType) _sym_db.RegisterMessage(PatternFlowPfcPauseEtherType.Choice) +PatternFlowPfcPauseControlOpCodeMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPauseControlOpCodeMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowPfcPauseControlOpCodeMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowPfcPauseControlOpCodeMetricTag) + PatternFlowPfcPauseControlOpCodeCounter = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPauseControlOpCodeCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER, '__module__' : 'otg_pb2' @@ -5720,6 +6213,13 @@ _sym_db.RegisterMessage(PatternFlowPfcPauseControlOpCode) _sym_db.RegisterMessage(PatternFlowPfcPauseControlOpCode.Choice) +PatternFlowPfcPauseClassEnableVectorMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPauseClassEnableVectorMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowPfcPauseClassEnableVectorMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowPfcPauseClassEnableVectorMetricTag) + PatternFlowPfcPauseClassEnableVectorCounter = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPauseClassEnableVectorCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER, '__module__' : 'otg_pb2' @@ -5742,6 +6242,13 @@ _sym_db.RegisterMessage(PatternFlowPfcPauseClassEnableVector) _sym_db.RegisterMessage(PatternFlowPfcPauseClassEnableVector.Choice) +PatternFlowPfcPausePauseClass0MetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPausePauseClass0MetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowPfcPausePauseClass0MetricTag) + }) +_sym_db.RegisterMessage(PatternFlowPfcPausePauseClass0MetricTag) + PatternFlowPfcPausePauseClass0Counter = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPausePauseClass0Counter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER, '__module__' : 'otg_pb2' @@ -5764,6 +6271,13 @@ _sym_db.RegisterMessage(PatternFlowPfcPausePauseClass0) _sym_db.RegisterMessage(PatternFlowPfcPausePauseClass0.Choice) +PatternFlowPfcPausePauseClass1MetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPausePauseClass1MetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowPfcPausePauseClass1MetricTag) + }) +_sym_db.RegisterMessage(PatternFlowPfcPausePauseClass1MetricTag) + PatternFlowPfcPausePauseClass1Counter = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPausePauseClass1Counter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER, '__module__' : 'otg_pb2' @@ -5786,6 +6300,13 @@ _sym_db.RegisterMessage(PatternFlowPfcPausePauseClass1) _sym_db.RegisterMessage(PatternFlowPfcPausePauseClass1.Choice) +PatternFlowPfcPausePauseClass2MetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPausePauseClass2MetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowPfcPausePauseClass2MetricTag) + }) +_sym_db.RegisterMessage(PatternFlowPfcPausePauseClass2MetricTag) + PatternFlowPfcPausePauseClass2Counter = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPausePauseClass2Counter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER, '__module__' : 'otg_pb2' @@ -5808,6 +6329,13 @@ _sym_db.RegisterMessage(PatternFlowPfcPausePauseClass2) _sym_db.RegisterMessage(PatternFlowPfcPausePauseClass2.Choice) +PatternFlowPfcPausePauseClass3MetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPausePauseClass3MetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowPfcPausePauseClass3MetricTag) + }) +_sym_db.RegisterMessage(PatternFlowPfcPausePauseClass3MetricTag) + PatternFlowPfcPausePauseClass3Counter = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPausePauseClass3Counter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER, '__module__' : 'otg_pb2' @@ -5830,6 +6358,13 @@ _sym_db.RegisterMessage(PatternFlowPfcPausePauseClass3) _sym_db.RegisterMessage(PatternFlowPfcPausePauseClass3.Choice) +PatternFlowPfcPausePauseClass4MetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPausePauseClass4MetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowPfcPausePauseClass4MetricTag) + }) +_sym_db.RegisterMessage(PatternFlowPfcPausePauseClass4MetricTag) + PatternFlowPfcPausePauseClass4Counter = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPausePauseClass4Counter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER, '__module__' : 'otg_pb2' @@ -5852,6 +6387,13 @@ _sym_db.RegisterMessage(PatternFlowPfcPausePauseClass4) _sym_db.RegisterMessage(PatternFlowPfcPausePauseClass4.Choice) +PatternFlowPfcPausePauseClass5MetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPausePauseClass5MetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowPfcPausePauseClass5MetricTag) + }) +_sym_db.RegisterMessage(PatternFlowPfcPausePauseClass5MetricTag) + PatternFlowPfcPausePauseClass5Counter = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPausePauseClass5Counter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER, '__module__' : 'otg_pb2' @@ -5874,6 +6416,13 @@ _sym_db.RegisterMessage(PatternFlowPfcPausePauseClass5) _sym_db.RegisterMessage(PatternFlowPfcPausePauseClass5.Choice) +PatternFlowPfcPausePauseClass6MetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPausePauseClass6MetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowPfcPausePauseClass6MetricTag) + }) +_sym_db.RegisterMessage(PatternFlowPfcPausePauseClass6MetricTag) + PatternFlowPfcPausePauseClass6Counter = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPausePauseClass6Counter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER, '__module__' : 'otg_pb2' @@ -5896,6 +6445,13 @@ _sym_db.RegisterMessage(PatternFlowPfcPausePauseClass6) _sym_db.RegisterMessage(PatternFlowPfcPausePauseClass6.Choice) +PatternFlowPfcPausePauseClass7MetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPausePauseClass7MetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowPfcPausePauseClass7MetricTag) + }) +_sym_db.RegisterMessage(PatternFlowPfcPausePauseClass7MetricTag) + PatternFlowPfcPausePauseClass7Counter = _reflection.GeneratedProtocolMessageType('PatternFlowPfcPausePauseClass7Counter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER, '__module__' : 'otg_pb2' @@ -5918,6 +6474,13 @@ _sym_db.RegisterMessage(PatternFlowPfcPausePauseClass7) _sym_db.RegisterMessage(PatternFlowPfcPausePauseClass7.Choice) +PatternFlowEthernetPauseDstMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowEthernetPauseDstMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWETHERNETPAUSEDSTMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowEthernetPauseDstMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowEthernetPauseDstMetricTag) + PatternFlowEthernetPauseDstCounter = _reflection.GeneratedProtocolMessageType('PatternFlowEthernetPauseDstCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWETHERNETPAUSEDSTCOUNTER, '__module__' : 'otg_pb2' @@ -5940,6 +6503,13 @@ _sym_db.RegisterMessage(PatternFlowEthernetPauseDst) _sym_db.RegisterMessage(PatternFlowEthernetPauseDst.Choice) +PatternFlowEthernetPauseSrcMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowEthernetPauseSrcMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWETHERNETPAUSESRCMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowEthernetPauseSrcMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowEthernetPauseSrcMetricTag) + PatternFlowEthernetPauseSrcCounter = _reflection.GeneratedProtocolMessageType('PatternFlowEthernetPauseSrcCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWETHERNETPAUSESRCCOUNTER, '__module__' : 'otg_pb2' @@ -5962,6 +6532,13 @@ _sym_db.RegisterMessage(PatternFlowEthernetPauseSrc) _sym_db.RegisterMessage(PatternFlowEthernetPauseSrc.Choice) +PatternFlowEthernetPauseEtherTypeMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowEthernetPauseEtherTypeMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowEthernetPauseEtherTypeMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowEthernetPauseEtherTypeMetricTag) + PatternFlowEthernetPauseEtherTypeCounter = _reflection.GeneratedProtocolMessageType('PatternFlowEthernetPauseEtherTypeCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER, '__module__' : 'otg_pb2' @@ -5984,6 +6561,13 @@ _sym_db.RegisterMessage(PatternFlowEthernetPauseEtherType) _sym_db.RegisterMessage(PatternFlowEthernetPauseEtherType.Choice) +PatternFlowEthernetPauseControlOpCodeMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowEthernetPauseControlOpCodeMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowEthernetPauseControlOpCodeMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowEthernetPauseControlOpCodeMetricTag) + PatternFlowEthernetPauseControlOpCodeCounter = _reflection.GeneratedProtocolMessageType('PatternFlowEthernetPauseControlOpCodeCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER, '__module__' : 'otg_pb2' @@ -6006,6 +6590,13 @@ _sym_db.RegisterMessage(PatternFlowEthernetPauseControlOpCode) _sym_db.RegisterMessage(PatternFlowEthernetPauseControlOpCode.Choice) +PatternFlowEthernetPauseTimeMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowEthernetPauseTimeMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWETHERNETPAUSETIMEMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowEthernetPauseTimeMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowEthernetPauseTimeMetricTag) + PatternFlowEthernetPauseTimeCounter = _reflection.GeneratedProtocolMessageType('PatternFlowEthernetPauseTimeCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWETHERNETPAUSETIMECOUNTER, '__module__' : 'otg_pb2' @@ -6028,6 +6619,13 @@ _sym_db.RegisterMessage(PatternFlowEthernetPauseTime) _sym_db.RegisterMessage(PatternFlowEthernetPauseTime.Choice) +PatternFlowTcpSrcPortMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowTcpSrcPortMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWTCPSRCPORTMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowTcpSrcPortMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowTcpSrcPortMetricTag) + PatternFlowTcpSrcPortCounter = _reflection.GeneratedProtocolMessageType('PatternFlowTcpSrcPortCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWTCPSRCPORTCOUNTER, '__module__' : 'otg_pb2' @@ -6050,6 +6648,13 @@ _sym_db.RegisterMessage(PatternFlowTcpSrcPort) _sym_db.RegisterMessage(PatternFlowTcpSrcPort.Choice) +PatternFlowTcpDstPortMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowTcpDstPortMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWTCPDSTPORTMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowTcpDstPortMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowTcpDstPortMetricTag) + PatternFlowTcpDstPortCounter = _reflection.GeneratedProtocolMessageType('PatternFlowTcpDstPortCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWTCPDSTPORTCOUNTER, '__module__' : 'otg_pb2' @@ -6072,6 +6677,13 @@ _sym_db.RegisterMessage(PatternFlowTcpDstPort) _sym_db.RegisterMessage(PatternFlowTcpDstPort.Choice) +PatternFlowTcpSeqNumMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowTcpSeqNumMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWTCPSEQNUMMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowTcpSeqNumMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowTcpSeqNumMetricTag) + PatternFlowTcpSeqNumCounter = _reflection.GeneratedProtocolMessageType('PatternFlowTcpSeqNumCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWTCPSEQNUMCOUNTER, '__module__' : 'otg_pb2' @@ -6094,6 +6706,13 @@ _sym_db.RegisterMessage(PatternFlowTcpSeqNum) _sym_db.RegisterMessage(PatternFlowTcpSeqNum.Choice) +PatternFlowTcpAckNumMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowTcpAckNumMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWTCPACKNUMMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowTcpAckNumMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowTcpAckNumMetricTag) + PatternFlowTcpAckNumCounter = _reflection.GeneratedProtocolMessageType('PatternFlowTcpAckNumCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWTCPACKNUMCOUNTER, '__module__' : 'otg_pb2' @@ -6116,6 +6735,13 @@ _sym_db.RegisterMessage(PatternFlowTcpAckNum) _sym_db.RegisterMessage(PatternFlowTcpAckNum.Choice) +PatternFlowTcpDataOffsetMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowTcpDataOffsetMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWTCPDATAOFFSETMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowTcpDataOffsetMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowTcpDataOffsetMetricTag) + PatternFlowTcpDataOffsetCounter = _reflection.GeneratedProtocolMessageType('PatternFlowTcpDataOffsetCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWTCPDATAOFFSETCOUNTER, '__module__' : 'otg_pb2' @@ -6138,6 +6764,13 @@ _sym_db.RegisterMessage(PatternFlowTcpDataOffset) _sym_db.RegisterMessage(PatternFlowTcpDataOffset.Choice) +PatternFlowTcpEcnNsMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowTcpEcnNsMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWTCPECNNSMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowTcpEcnNsMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowTcpEcnNsMetricTag) + PatternFlowTcpEcnNsCounter = _reflection.GeneratedProtocolMessageType('PatternFlowTcpEcnNsCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWTCPECNNSCOUNTER, '__module__' : 'otg_pb2' @@ -6160,6 +6793,13 @@ _sym_db.RegisterMessage(PatternFlowTcpEcnNs) _sym_db.RegisterMessage(PatternFlowTcpEcnNs.Choice) +PatternFlowTcpEcnCwrMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowTcpEcnCwrMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWTCPECNCWRMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowTcpEcnCwrMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowTcpEcnCwrMetricTag) + PatternFlowTcpEcnCwrCounter = _reflection.GeneratedProtocolMessageType('PatternFlowTcpEcnCwrCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWTCPECNCWRCOUNTER, '__module__' : 'otg_pb2' @@ -6182,6 +6822,13 @@ _sym_db.RegisterMessage(PatternFlowTcpEcnCwr) _sym_db.RegisterMessage(PatternFlowTcpEcnCwr.Choice) +PatternFlowTcpEcnEchoMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowTcpEcnEchoMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWTCPECNECHOMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowTcpEcnEchoMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowTcpEcnEchoMetricTag) + PatternFlowTcpEcnEchoCounter = _reflection.GeneratedProtocolMessageType('PatternFlowTcpEcnEchoCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWTCPECNECHOCOUNTER, '__module__' : 'otg_pb2' @@ -6204,6 +6851,13 @@ _sym_db.RegisterMessage(PatternFlowTcpEcnEcho) _sym_db.RegisterMessage(PatternFlowTcpEcnEcho.Choice) +PatternFlowTcpCtlUrgMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowTcpCtlUrgMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWTCPCTLURGMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowTcpCtlUrgMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowTcpCtlUrgMetricTag) + PatternFlowTcpCtlUrgCounter = _reflection.GeneratedProtocolMessageType('PatternFlowTcpCtlUrgCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWTCPCTLURGCOUNTER, '__module__' : 'otg_pb2' @@ -6226,6 +6880,13 @@ _sym_db.RegisterMessage(PatternFlowTcpCtlUrg) _sym_db.RegisterMessage(PatternFlowTcpCtlUrg.Choice) +PatternFlowTcpCtlAckMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowTcpCtlAckMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWTCPCTLACKMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowTcpCtlAckMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowTcpCtlAckMetricTag) + PatternFlowTcpCtlAckCounter = _reflection.GeneratedProtocolMessageType('PatternFlowTcpCtlAckCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWTCPCTLACKCOUNTER, '__module__' : 'otg_pb2' @@ -6248,6 +6909,13 @@ _sym_db.RegisterMessage(PatternFlowTcpCtlAck) _sym_db.RegisterMessage(PatternFlowTcpCtlAck.Choice) +PatternFlowTcpCtlPshMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowTcpCtlPshMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWTCPCTLPSHMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowTcpCtlPshMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowTcpCtlPshMetricTag) + PatternFlowTcpCtlPshCounter = _reflection.GeneratedProtocolMessageType('PatternFlowTcpCtlPshCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWTCPCTLPSHCOUNTER, '__module__' : 'otg_pb2' @@ -6270,6 +6938,13 @@ _sym_db.RegisterMessage(PatternFlowTcpCtlPsh) _sym_db.RegisterMessage(PatternFlowTcpCtlPsh.Choice) +PatternFlowTcpCtlRstMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowTcpCtlRstMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWTCPCTLRSTMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowTcpCtlRstMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowTcpCtlRstMetricTag) + PatternFlowTcpCtlRstCounter = _reflection.GeneratedProtocolMessageType('PatternFlowTcpCtlRstCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWTCPCTLRSTCOUNTER, '__module__' : 'otg_pb2' @@ -6292,6 +6967,13 @@ _sym_db.RegisterMessage(PatternFlowTcpCtlRst) _sym_db.RegisterMessage(PatternFlowTcpCtlRst.Choice) +PatternFlowTcpCtlSynMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowTcpCtlSynMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWTCPCTLSYNMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowTcpCtlSynMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowTcpCtlSynMetricTag) + PatternFlowTcpCtlSynCounter = _reflection.GeneratedProtocolMessageType('PatternFlowTcpCtlSynCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWTCPCTLSYNCOUNTER, '__module__' : 'otg_pb2' @@ -6314,6 +6996,13 @@ _sym_db.RegisterMessage(PatternFlowTcpCtlSyn) _sym_db.RegisterMessage(PatternFlowTcpCtlSyn.Choice) +PatternFlowTcpCtlFinMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowTcpCtlFinMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWTCPCTLFINMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowTcpCtlFinMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowTcpCtlFinMetricTag) + PatternFlowTcpCtlFinCounter = _reflection.GeneratedProtocolMessageType('PatternFlowTcpCtlFinCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWTCPCTLFINCOUNTER, '__module__' : 'otg_pb2' @@ -6336,6 +7025,13 @@ _sym_db.RegisterMessage(PatternFlowTcpCtlFin) _sym_db.RegisterMessage(PatternFlowTcpCtlFin.Choice) +PatternFlowTcpWindowMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowTcpWindowMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWTCPWINDOWMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowTcpWindowMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowTcpWindowMetricTag) + PatternFlowTcpWindowCounter = _reflection.GeneratedProtocolMessageType('PatternFlowTcpWindowCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWTCPWINDOWCOUNTER, '__module__' : 'otg_pb2' @@ -6358,6 +7054,13 @@ _sym_db.RegisterMessage(PatternFlowTcpWindow) _sym_db.RegisterMessage(PatternFlowTcpWindow.Choice) +PatternFlowUdpSrcPortMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowUdpSrcPortMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWUDPSRCPORTMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowUdpSrcPortMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowUdpSrcPortMetricTag) + PatternFlowUdpSrcPortCounter = _reflection.GeneratedProtocolMessageType('PatternFlowUdpSrcPortCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWUDPSRCPORTCOUNTER, '__module__' : 'otg_pb2' @@ -6380,6 +7083,13 @@ _sym_db.RegisterMessage(PatternFlowUdpSrcPort) _sym_db.RegisterMessage(PatternFlowUdpSrcPort.Choice) +PatternFlowUdpDstPortMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowUdpDstPortMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWUDPDSTPORTMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowUdpDstPortMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowUdpDstPortMetricTag) + PatternFlowUdpDstPortCounter = _reflection.GeneratedProtocolMessageType('PatternFlowUdpDstPortCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWUDPDSTPORTCOUNTER, '__module__' : 'otg_pb2' @@ -6402,6 +7112,13 @@ _sym_db.RegisterMessage(PatternFlowUdpDstPort) _sym_db.RegisterMessage(PatternFlowUdpDstPort.Choice) +PatternFlowUdpLengthMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowUdpLengthMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWUDPLENGTHMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowUdpLengthMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowUdpLengthMetricTag) + PatternFlowUdpLengthCounter = _reflection.GeneratedProtocolMessageType('PatternFlowUdpLengthCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWUDPLENGTHCOUNTER, '__module__' : 'otg_pb2' @@ -6447,6 +7164,13 @@ _sym_db.RegisterMessage(PatternFlowUdpChecksum.Choice) _sym_db.RegisterMessage(PatternFlowUdpChecksum.Generated) +PatternFlowGreChecksumPresentMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGreChecksumPresentMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGreChecksumPresentMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGreChecksumPresentMetricTag) + PatternFlowGreChecksumPresentCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGreChecksumPresentCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGRECHECKSUMPRESENTCOUNTER, '__module__' : 'otg_pb2' @@ -6469,6 +7193,13 @@ _sym_db.RegisterMessage(PatternFlowGreChecksumPresent) _sym_db.RegisterMessage(PatternFlowGreChecksumPresent.Choice) +PatternFlowGreReserved0MetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGreReserved0MetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGRERESERVED0METRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGreReserved0MetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGreReserved0MetricTag) + PatternFlowGreReserved0Counter = _reflection.GeneratedProtocolMessageType('PatternFlowGreReserved0Counter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGRERESERVED0COUNTER, '__module__' : 'otg_pb2' @@ -6491,6 +7222,13 @@ _sym_db.RegisterMessage(PatternFlowGreReserved0) _sym_db.RegisterMessage(PatternFlowGreReserved0.Choice) +PatternFlowGreVersionMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGreVersionMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGREVERSIONMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGreVersionMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGreVersionMetricTag) + PatternFlowGreVersionCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGreVersionCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGREVERSIONCOUNTER, '__module__' : 'otg_pb2' @@ -6513,6 +7251,13 @@ _sym_db.RegisterMessage(PatternFlowGreVersion) _sym_db.RegisterMessage(PatternFlowGreVersion.Choice) +PatternFlowGreProtocolMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGreProtocolMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGREPROTOCOLMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGreProtocolMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGreProtocolMetricTag) + PatternFlowGreProtocolCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGreProtocolCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGREPROTOCOLCOUNTER, '__module__' : 'otg_pb2' @@ -6558,6 +7303,13 @@ _sym_db.RegisterMessage(PatternFlowGreChecksum.Choice) _sym_db.RegisterMessage(PatternFlowGreChecksum.Generated) +PatternFlowGreReserved1MetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGreReserved1MetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGRERESERVED1METRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGreReserved1MetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGreReserved1MetricTag) + PatternFlowGreReserved1Counter = _reflection.GeneratedProtocolMessageType('PatternFlowGreReserved1Counter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGRERESERVED1COUNTER, '__module__' : 'otg_pb2' @@ -6580,6 +7332,13 @@ _sym_db.RegisterMessage(PatternFlowGreReserved1) _sym_db.RegisterMessage(PatternFlowGreReserved1.Choice) +PatternFlowGtpv1VersionMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1VersionMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPV1VERSIONMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpv1VersionMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpv1VersionMetricTag) + PatternFlowGtpv1VersionCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1VersionCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPV1VERSIONCOUNTER, '__module__' : 'otg_pb2' @@ -6602,6 +7361,13 @@ _sym_db.RegisterMessage(PatternFlowGtpv1Version) _sym_db.RegisterMessage(PatternFlowGtpv1Version.Choice) +PatternFlowGtpv1ProtocolTypeMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1ProtocolTypeMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpv1ProtocolTypeMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpv1ProtocolTypeMetricTag) + PatternFlowGtpv1ProtocolTypeCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1ProtocolTypeCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER, '__module__' : 'otg_pb2' @@ -6624,6 +7390,13 @@ _sym_db.RegisterMessage(PatternFlowGtpv1ProtocolType) _sym_db.RegisterMessage(PatternFlowGtpv1ProtocolType.Choice) +PatternFlowGtpv1ReservedMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1ReservedMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPV1RESERVEDMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpv1ReservedMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpv1ReservedMetricTag) + PatternFlowGtpv1ReservedCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1ReservedCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPV1RESERVEDCOUNTER, '__module__' : 'otg_pb2' @@ -6646,6 +7419,13 @@ _sym_db.RegisterMessage(PatternFlowGtpv1Reserved) _sym_db.RegisterMessage(PatternFlowGtpv1Reserved.Choice) +PatternFlowGtpv1EFlagMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1EFlagMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPV1EFLAGMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpv1EFlagMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpv1EFlagMetricTag) + PatternFlowGtpv1EFlagCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1EFlagCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPV1EFLAGCOUNTER, '__module__' : 'otg_pb2' @@ -6668,6 +7448,13 @@ _sym_db.RegisterMessage(PatternFlowGtpv1EFlag) _sym_db.RegisterMessage(PatternFlowGtpv1EFlag.Choice) +PatternFlowGtpv1SFlagMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1SFlagMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPV1SFLAGMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpv1SFlagMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpv1SFlagMetricTag) + PatternFlowGtpv1SFlagCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1SFlagCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPV1SFLAGCOUNTER, '__module__' : 'otg_pb2' @@ -6690,6 +7477,13 @@ _sym_db.RegisterMessage(PatternFlowGtpv1SFlag) _sym_db.RegisterMessage(PatternFlowGtpv1SFlag.Choice) +PatternFlowGtpv1PnFlagMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1PnFlagMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPV1PNFLAGMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpv1PnFlagMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpv1PnFlagMetricTag) + PatternFlowGtpv1PnFlagCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1PnFlagCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPV1PNFLAGCOUNTER, '__module__' : 'otg_pb2' @@ -6712,6 +7506,13 @@ _sym_db.RegisterMessage(PatternFlowGtpv1PnFlag) _sym_db.RegisterMessage(PatternFlowGtpv1PnFlag.Choice) +PatternFlowGtpv1MessageTypeMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1MessageTypeMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpv1MessageTypeMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpv1MessageTypeMetricTag) + PatternFlowGtpv1MessageTypeCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1MessageTypeCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPV1MESSAGETYPECOUNTER, '__module__' : 'otg_pb2' @@ -6734,6 +7535,13 @@ _sym_db.RegisterMessage(PatternFlowGtpv1MessageType) _sym_db.RegisterMessage(PatternFlowGtpv1MessageType.Choice) +PatternFlowGtpv1MessageLengthMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1MessageLengthMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpv1MessageLengthMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpv1MessageLengthMetricTag) + PatternFlowGtpv1MessageLengthCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1MessageLengthCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER, '__module__' : 'otg_pb2' @@ -6756,6 +7564,13 @@ _sym_db.RegisterMessage(PatternFlowGtpv1MessageLength) _sym_db.RegisterMessage(PatternFlowGtpv1MessageLength.Choice) +PatternFlowGtpv1TeidMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1TeidMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPV1TEIDMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpv1TeidMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpv1TeidMetricTag) + PatternFlowGtpv1TeidCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1TeidCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPV1TEIDCOUNTER, '__module__' : 'otg_pb2' @@ -6778,6 +7593,13 @@ _sym_db.RegisterMessage(PatternFlowGtpv1Teid) _sym_db.RegisterMessage(PatternFlowGtpv1Teid.Choice) +PatternFlowGtpv1SquenceNumberMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1SquenceNumberMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpv1SquenceNumberMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpv1SquenceNumberMetricTag) + PatternFlowGtpv1SquenceNumberCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1SquenceNumberCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER, '__module__' : 'otg_pb2' @@ -6800,6 +7622,13 @@ _sym_db.RegisterMessage(PatternFlowGtpv1SquenceNumber) _sym_db.RegisterMessage(PatternFlowGtpv1SquenceNumber.Choice) +PatternFlowGtpv1NPduNumberMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1NPduNumberMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpv1NPduNumberMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpv1NPduNumberMetricTag) + PatternFlowGtpv1NPduNumberCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1NPduNumberCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPV1NPDUNUMBERCOUNTER, '__module__' : 'otg_pb2' @@ -6822,6 +7651,13 @@ _sym_db.RegisterMessage(PatternFlowGtpv1NPduNumber) _sym_db.RegisterMessage(PatternFlowGtpv1NPduNumber.Choice) +PatternFlowGtpv1NextExtensionHeaderTypeMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1NextExtensionHeaderTypeMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpv1NextExtensionHeaderTypeMetricTag) + PatternFlowGtpv1NextExtensionHeaderTypeCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv1NextExtensionHeaderTypeCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER, '__module__' : 'otg_pb2' @@ -6844,6 +7680,13 @@ _sym_db.RegisterMessage(PatternFlowGtpv1NextExtensionHeaderType) _sym_db.RegisterMessage(PatternFlowGtpv1NextExtensionHeaderType.Choice) +PatternFlowGtpExtensionExtensionLengthMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpExtensionExtensionLengthMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpExtensionExtensionLengthMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpExtensionExtensionLengthMetricTag) + PatternFlowGtpExtensionExtensionLengthCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpExtensionExtensionLengthCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER, '__module__' : 'otg_pb2' @@ -6866,6 +7709,13 @@ _sym_db.RegisterMessage(PatternFlowGtpExtensionExtensionLength) _sym_db.RegisterMessage(PatternFlowGtpExtensionExtensionLength.Choice) +PatternFlowGtpExtensionContentsMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpExtensionContentsMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpExtensionContentsMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpExtensionContentsMetricTag) + PatternFlowGtpExtensionContentsCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpExtensionContentsCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER, '__module__' : 'otg_pb2' @@ -6888,6 +7738,13 @@ _sym_db.RegisterMessage(PatternFlowGtpExtensionContents) _sym_db.RegisterMessage(PatternFlowGtpExtensionContents.Choice) +PatternFlowGtpExtensionNextExtensionHeaderMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpExtensionNextExtensionHeaderMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpExtensionNextExtensionHeaderMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpExtensionNextExtensionHeaderMetricTag) + PatternFlowGtpExtensionNextExtensionHeaderCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpExtensionNextExtensionHeaderCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER, '__module__' : 'otg_pb2' @@ -6910,6 +7767,13 @@ _sym_db.RegisterMessage(PatternFlowGtpExtensionNextExtensionHeader) _sym_db.RegisterMessage(PatternFlowGtpExtensionNextExtensionHeader.Choice) +PatternFlowGtpv2VersionMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv2VersionMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPV2VERSIONMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpv2VersionMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpv2VersionMetricTag) + PatternFlowGtpv2VersionCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv2VersionCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPV2VERSIONCOUNTER, '__module__' : 'otg_pb2' @@ -6932,6 +7796,13 @@ _sym_db.RegisterMessage(PatternFlowGtpv2Version) _sym_db.RegisterMessage(PatternFlowGtpv2Version.Choice) +PatternFlowGtpv2PiggybackingFlagMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv2PiggybackingFlagMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpv2PiggybackingFlagMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpv2PiggybackingFlagMetricTag) + PatternFlowGtpv2PiggybackingFlagCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv2PiggybackingFlagCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER, '__module__' : 'otg_pb2' @@ -6954,6 +7825,13 @@ _sym_db.RegisterMessage(PatternFlowGtpv2PiggybackingFlag) _sym_db.RegisterMessage(PatternFlowGtpv2PiggybackingFlag.Choice) +PatternFlowGtpv2TeidFlagMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv2TeidFlagMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPV2TEIDFLAGMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpv2TeidFlagMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpv2TeidFlagMetricTag) + PatternFlowGtpv2TeidFlagCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv2TeidFlagCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPV2TEIDFLAGCOUNTER, '__module__' : 'otg_pb2' @@ -6976,6 +7854,13 @@ _sym_db.RegisterMessage(PatternFlowGtpv2TeidFlag) _sym_db.RegisterMessage(PatternFlowGtpv2TeidFlag.Choice) +PatternFlowGtpv2Spare1MetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv2Spare1MetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPV2SPARE1METRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpv2Spare1MetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpv2Spare1MetricTag) + PatternFlowGtpv2Spare1Counter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv2Spare1Counter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPV2SPARE1COUNTER, '__module__' : 'otg_pb2' @@ -6998,6 +7883,13 @@ _sym_db.RegisterMessage(PatternFlowGtpv2Spare1) _sym_db.RegisterMessage(PatternFlowGtpv2Spare1.Choice) +PatternFlowGtpv2MessageTypeMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv2MessageTypeMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpv2MessageTypeMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpv2MessageTypeMetricTag) + PatternFlowGtpv2MessageTypeCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv2MessageTypeCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPV2MESSAGETYPECOUNTER, '__module__' : 'otg_pb2' @@ -7020,6 +7912,13 @@ _sym_db.RegisterMessage(PatternFlowGtpv2MessageType) _sym_db.RegisterMessage(PatternFlowGtpv2MessageType.Choice) +PatternFlowGtpv2MessageLengthMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv2MessageLengthMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpv2MessageLengthMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpv2MessageLengthMetricTag) + PatternFlowGtpv2MessageLengthCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv2MessageLengthCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER, '__module__' : 'otg_pb2' @@ -7042,6 +7941,13 @@ _sym_db.RegisterMessage(PatternFlowGtpv2MessageLength) _sym_db.RegisterMessage(PatternFlowGtpv2MessageLength.Choice) +PatternFlowGtpv2TeidMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv2TeidMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPV2TEIDMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpv2TeidMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpv2TeidMetricTag) + PatternFlowGtpv2TeidCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv2TeidCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPV2TEIDCOUNTER, '__module__' : 'otg_pb2' @@ -7064,6 +7970,13 @@ _sym_db.RegisterMessage(PatternFlowGtpv2Teid) _sym_db.RegisterMessage(PatternFlowGtpv2Teid.Choice) +PatternFlowGtpv2SequenceNumberMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv2SequenceNumberMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpv2SequenceNumberMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpv2SequenceNumberMetricTag) + PatternFlowGtpv2SequenceNumberCounter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv2SequenceNumberCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER, '__module__' : 'otg_pb2' @@ -7086,6 +7999,13 @@ _sym_db.RegisterMessage(PatternFlowGtpv2SequenceNumber) _sym_db.RegisterMessage(PatternFlowGtpv2SequenceNumber.Choice) +PatternFlowGtpv2Spare2MetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv2Spare2MetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWGTPV2SPARE2METRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowGtpv2Spare2MetricTag) + }) +_sym_db.RegisterMessage(PatternFlowGtpv2Spare2MetricTag) + PatternFlowGtpv2Spare2Counter = _reflection.GeneratedProtocolMessageType('PatternFlowGtpv2Spare2Counter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWGTPV2SPARE2COUNTER, '__module__' : 'otg_pb2' @@ -7108,6 +8028,13 @@ _sym_db.RegisterMessage(PatternFlowGtpv2Spare2) _sym_db.RegisterMessage(PatternFlowGtpv2Spare2.Choice) +PatternFlowArpHardwareTypeMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowArpHardwareTypeMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWARPHARDWARETYPEMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowArpHardwareTypeMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowArpHardwareTypeMetricTag) + PatternFlowArpHardwareTypeCounter = _reflection.GeneratedProtocolMessageType('PatternFlowArpHardwareTypeCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWARPHARDWARETYPECOUNTER, '__module__' : 'otg_pb2' @@ -7130,6 +8057,13 @@ _sym_db.RegisterMessage(PatternFlowArpHardwareType) _sym_db.RegisterMessage(PatternFlowArpHardwareType.Choice) +PatternFlowArpProtocolTypeMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowArpProtocolTypeMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWARPPROTOCOLTYPEMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowArpProtocolTypeMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowArpProtocolTypeMetricTag) + PatternFlowArpProtocolTypeCounter = _reflection.GeneratedProtocolMessageType('PatternFlowArpProtocolTypeCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWARPPROTOCOLTYPECOUNTER, '__module__' : 'otg_pb2' @@ -7152,6 +8086,13 @@ _sym_db.RegisterMessage(PatternFlowArpProtocolType) _sym_db.RegisterMessage(PatternFlowArpProtocolType.Choice) +PatternFlowArpHardwareLengthMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowArpHardwareLengthMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWARPHARDWARELENGTHMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowArpHardwareLengthMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowArpHardwareLengthMetricTag) + PatternFlowArpHardwareLengthCounter = _reflection.GeneratedProtocolMessageType('PatternFlowArpHardwareLengthCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWARPHARDWARELENGTHCOUNTER, '__module__' : 'otg_pb2' @@ -7174,6 +8115,13 @@ _sym_db.RegisterMessage(PatternFlowArpHardwareLength) _sym_db.RegisterMessage(PatternFlowArpHardwareLength.Choice) +PatternFlowArpProtocolLengthMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowArpProtocolLengthMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowArpProtocolLengthMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowArpProtocolLengthMetricTag) + PatternFlowArpProtocolLengthCounter = _reflection.GeneratedProtocolMessageType('PatternFlowArpProtocolLengthCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWARPPROTOCOLLENGTHCOUNTER, '__module__' : 'otg_pb2' @@ -7196,6 +8144,13 @@ _sym_db.RegisterMessage(PatternFlowArpProtocolLength) _sym_db.RegisterMessage(PatternFlowArpProtocolLength.Choice) +PatternFlowArpOperationMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowArpOperationMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWARPOPERATIONMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowArpOperationMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowArpOperationMetricTag) + PatternFlowArpOperationCounter = _reflection.GeneratedProtocolMessageType('PatternFlowArpOperationCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWARPOPERATIONCOUNTER, '__module__' : 'otg_pb2' @@ -7218,6 +8173,13 @@ _sym_db.RegisterMessage(PatternFlowArpOperation) _sym_db.RegisterMessage(PatternFlowArpOperation.Choice) +PatternFlowArpSenderHardwareAddrMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowArpSenderHardwareAddrMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowArpSenderHardwareAddrMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowArpSenderHardwareAddrMetricTag) + PatternFlowArpSenderHardwareAddrCounter = _reflection.GeneratedProtocolMessageType('PatternFlowArpSenderHardwareAddrCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER, '__module__' : 'otg_pb2' @@ -7240,6 +8202,13 @@ _sym_db.RegisterMessage(PatternFlowArpSenderHardwareAddr) _sym_db.RegisterMessage(PatternFlowArpSenderHardwareAddr.Choice) +PatternFlowArpSenderProtocolAddrMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowArpSenderProtocolAddrMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowArpSenderProtocolAddrMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowArpSenderProtocolAddrMetricTag) + PatternFlowArpSenderProtocolAddrCounter = _reflection.GeneratedProtocolMessageType('PatternFlowArpSenderProtocolAddrCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER, '__module__' : 'otg_pb2' @@ -7262,6 +8231,13 @@ _sym_db.RegisterMessage(PatternFlowArpSenderProtocolAddr) _sym_db.RegisterMessage(PatternFlowArpSenderProtocolAddr.Choice) +PatternFlowArpTargetHardwareAddrMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowArpTargetHardwareAddrMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowArpTargetHardwareAddrMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowArpTargetHardwareAddrMetricTag) + PatternFlowArpTargetHardwareAddrCounter = _reflection.GeneratedProtocolMessageType('PatternFlowArpTargetHardwareAddrCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER, '__module__' : 'otg_pb2' @@ -7284,6 +8260,13 @@ _sym_db.RegisterMessage(PatternFlowArpTargetHardwareAddr) _sym_db.RegisterMessage(PatternFlowArpTargetHardwareAddr.Choice) +PatternFlowArpTargetProtocolAddrMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowArpTargetProtocolAddrMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowArpTargetProtocolAddrMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowArpTargetProtocolAddrMetricTag) + PatternFlowArpTargetProtocolAddrCounter = _reflection.GeneratedProtocolMessageType('PatternFlowArpTargetProtocolAddrCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER, '__module__' : 'otg_pb2' @@ -7306,6 +8289,13 @@ _sym_db.RegisterMessage(PatternFlowArpTargetProtocolAddr) _sym_db.RegisterMessage(PatternFlowArpTargetProtocolAddr.Choice) +PatternFlowIcmpEchoTypeMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIcmpEchoTypeMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWICMPECHOTYPEMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIcmpEchoTypeMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIcmpEchoTypeMetricTag) + PatternFlowIcmpEchoTypeCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIcmpEchoTypeCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWICMPECHOTYPECOUNTER, '__module__' : 'otg_pb2' @@ -7328,6 +8318,13 @@ _sym_db.RegisterMessage(PatternFlowIcmpEchoType) _sym_db.RegisterMessage(PatternFlowIcmpEchoType.Choice) +PatternFlowIcmpEchoCodeMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIcmpEchoCodeMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWICMPECHOCODEMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIcmpEchoCodeMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIcmpEchoCodeMetricTag) + PatternFlowIcmpEchoCodeCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIcmpEchoCodeCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWICMPECHOCODECOUNTER, '__module__' : 'otg_pb2' @@ -7373,6 +8370,13 @@ _sym_db.RegisterMessage(PatternFlowIcmpEchoChecksum.Choice) _sym_db.RegisterMessage(PatternFlowIcmpEchoChecksum.Generated) +PatternFlowIcmpEchoIdentifierMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIcmpEchoIdentifierMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIcmpEchoIdentifierMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIcmpEchoIdentifierMetricTag) + PatternFlowIcmpEchoIdentifierCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIcmpEchoIdentifierCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWICMPECHOIDENTIFIERCOUNTER, '__module__' : 'otg_pb2' @@ -7395,6 +8399,13 @@ _sym_db.RegisterMessage(PatternFlowIcmpEchoIdentifier) _sym_db.RegisterMessage(PatternFlowIcmpEchoIdentifier.Choice) +PatternFlowIcmpEchoSequenceNumberMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIcmpEchoSequenceNumberMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIcmpEchoSequenceNumberMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIcmpEchoSequenceNumberMetricTag) + PatternFlowIcmpEchoSequenceNumberCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIcmpEchoSequenceNumberCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER, '__module__' : 'otg_pb2' @@ -7440,6 +8451,13 @@ _sym_db.RegisterMessage(PatternFlowIcmpCommonChecksum.Choice) _sym_db.RegisterMessage(PatternFlowIcmpCommonChecksum.Generated) +PatternFlowIcmpNextFieldsIdentifierMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIcmpNextFieldsIdentifierMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIcmpNextFieldsIdentifierMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIcmpNextFieldsIdentifierMetricTag) + PatternFlowIcmpNextFieldsIdentifierCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIcmpNextFieldsIdentifierCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER, '__module__' : 'otg_pb2' @@ -7462,6 +8480,13 @@ _sym_db.RegisterMessage(PatternFlowIcmpNextFieldsIdentifier) _sym_db.RegisterMessage(PatternFlowIcmpNextFieldsIdentifier.Choice) +PatternFlowIcmpNextFieldsSequenceNumberMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIcmpNextFieldsSequenceNumberMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIcmpNextFieldsSequenceNumberMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIcmpNextFieldsSequenceNumberMetricTag) + PatternFlowIcmpNextFieldsSequenceNumberCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIcmpNextFieldsSequenceNumberCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER, '__module__' : 'otg_pb2' @@ -7484,6 +8509,13 @@ _sym_db.RegisterMessage(PatternFlowIcmpNextFieldsSequenceNumber) _sym_db.RegisterMessage(PatternFlowIcmpNextFieldsSequenceNumber.Choice) +PatternFlowIcmpv6EchoTypeMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIcmpv6EchoTypeMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWICMPV6ECHOTYPEMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIcmpv6EchoTypeMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIcmpv6EchoTypeMetricTag) + PatternFlowIcmpv6EchoTypeCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIcmpv6EchoTypeCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWICMPV6ECHOTYPECOUNTER, '__module__' : 'otg_pb2' @@ -7506,6 +8538,13 @@ _sym_db.RegisterMessage(PatternFlowIcmpv6EchoType) _sym_db.RegisterMessage(PatternFlowIcmpv6EchoType.Choice) +PatternFlowIcmpv6EchoCodeMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIcmpv6EchoCodeMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWICMPV6ECHOCODEMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIcmpv6EchoCodeMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIcmpv6EchoCodeMetricTag) + PatternFlowIcmpv6EchoCodeCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIcmpv6EchoCodeCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWICMPV6ECHOCODECOUNTER, '__module__' : 'otg_pb2' @@ -7528,6 +8567,13 @@ _sym_db.RegisterMessage(PatternFlowIcmpv6EchoCode) _sym_db.RegisterMessage(PatternFlowIcmpv6EchoCode.Choice) +PatternFlowIcmpv6EchoIdentifierMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIcmpv6EchoIdentifierMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIcmpv6EchoIdentifierMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIcmpv6EchoIdentifierMetricTag) + PatternFlowIcmpv6EchoIdentifierCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIcmpv6EchoIdentifierCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER, '__module__' : 'otg_pb2' @@ -7550,6 +8596,13 @@ _sym_db.RegisterMessage(PatternFlowIcmpv6EchoIdentifier) _sym_db.RegisterMessage(PatternFlowIcmpv6EchoIdentifier.Choice) +PatternFlowIcmpv6EchoSequenceNumberMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIcmpv6EchoSequenceNumberMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIcmpv6EchoSequenceNumberMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIcmpv6EchoSequenceNumberMetricTag) + PatternFlowIcmpv6EchoSequenceNumberCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIcmpv6EchoSequenceNumberCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER, '__module__' : 'otg_pb2' @@ -7618,6 +8671,13 @@ _sym_db.RegisterMessage(PatternFlowIcmpv6CommonChecksum.Choice) _sym_db.RegisterMessage(PatternFlowIcmpv6CommonChecksum.Generated) +PatternFlowPppAddressMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowPppAddressMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWPPPADDRESSMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowPppAddressMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowPppAddressMetricTag) + PatternFlowPppAddressCounter = _reflection.GeneratedProtocolMessageType('PatternFlowPppAddressCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWPPPADDRESSCOUNTER, '__module__' : 'otg_pb2' @@ -7640,6 +8700,13 @@ _sym_db.RegisterMessage(PatternFlowPppAddress) _sym_db.RegisterMessage(PatternFlowPppAddress.Choice) +PatternFlowPppControlMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowPppControlMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWPPPCONTROLMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowPppControlMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowPppControlMetricTag) + PatternFlowPppControlCounter = _reflection.GeneratedProtocolMessageType('PatternFlowPppControlCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWPPPCONTROLCOUNTER, '__module__' : 'otg_pb2' @@ -7662,6 +8729,13 @@ _sym_db.RegisterMessage(PatternFlowPppControl) _sym_db.RegisterMessage(PatternFlowPppControl.Choice) +PatternFlowPppProtocolTypeMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowPppProtocolTypeMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowPppProtocolTypeMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowPppProtocolTypeMetricTag) + PatternFlowPppProtocolTypeCounter = _reflection.GeneratedProtocolMessageType('PatternFlowPppProtocolTypeCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWPPPPROTOCOLTYPECOUNTER, '__module__' : 'otg_pb2' @@ -7684,6 +8758,13 @@ _sym_db.RegisterMessage(PatternFlowPppProtocolType) _sym_db.RegisterMessage(PatternFlowPppProtocolType.Choice) +PatternFlowIgmpv1VersionMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIgmpv1VersionMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIGMPV1VERSIONMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIgmpv1VersionMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIgmpv1VersionMetricTag) + PatternFlowIgmpv1VersionCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIgmpv1VersionCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIGMPV1VERSIONCOUNTER, '__module__' : 'otg_pb2' @@ -7706,6 +8787,13 @@ _sym_db.RegisterMessage(PatternFlowIgmpv1Version) _sym_db.RegisterMessage(PatternFlowIgmpv1Version.Choice) +PatternFlowIgmpv1TypeMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIgmpv1TypeMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIGMPV1TYPEMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIgmpv1TypeMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIgmpv1TypeMetricTag) + PatternFlowIgmpv1TypeCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIgmpv1TypeCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIGMPV1TYPECOUNTER, '__module__' : 'otg_pb2' @@ -7728,6 +8816,13 @@ _sym_db.RegisterMessage(PatternFlowIgmpv1Type) _sym_db.RegisterMessage(PatternFlowIgmpv1Type.Choice) +PatternFlowIgmpv1UnusedMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIgmpv1UnusedMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIGMPV1UNUSEDMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIgmpv1UnusedMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIgmpv1UnusedMetricTag) + PatternFlowIgmpv1UnusedCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIgmpv1UnusedCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIGMPV1UNUSEDCOUNTER, '__module__' : 'otg_pb2' @@ -7773,6 +8868,13 @@ _sym_db.RegisterMessage(PatternFlowIgmpv1Checksum.Choice) _sym_db.RegisterMessage(PatternFlowIgmpv1Checksum.Generated) +PatternFlowIgmpv1GroupAddressMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowIgmpv1GroupAddressMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowIgmpv1GroupAddressMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowIgmpv1GroupAddressMetricTag) + PatternFlowIgmpv1GroupAddressCounter = _reflection.GeneratedProtocolMessageType('PatternFlowIgmpv1GroupAddressCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER, '__module__' : 'otg_pb2' @@ -7795,6 +8897,13 @@ _sym_db.RegisterMessage(PatternFlowIgmpv1GroupAddress) _sym_db.RegisterMessage(PatternFlowIgmpv1GroupAddress.Choice) +PatternFlowMplsLabelMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowMplsLabelMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWMPLSLABELMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowMplsLabelMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowMplsLabelMetricTag) + PatternFlowMplsLabelCounter = _reflection.GeneratedProtocolMessageType('PatternFlowMplsLabelCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWMPLSLABELCOUNTER, '__module__' : 'otg_pb2' @@ -7817,6 +8926,13 @@ _sym_db.RegisterMessage(PatternFlowMplsLabel) _sym_db.RegisterMessage(PatternFlowMplsLabel.Choice) +PatternFlowMplsTrafficClassMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowMplsTrafficClassMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowMplsTrafficClassMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowMplsTrafficClassMetricTag) + PatternFlowMplsTrafficClassCounter = _reflection.GeneratedProtocolMessageType('PatternFlowMplsTrafficClassCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWMPLSTRAFFICCLASSCOUNTER, '__module__' : 'otg_pb2' @@ -7839,6 +8955,13 @@ _sym_db.RegisterMessage(PatternFlowMplsTrafficClass) _sym_db.RegisterMessage(PatternFlowMplsTrafficClass.Choice) +PatternFlowMplsBottomOfStackMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowMplsBottomOfStackMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowMplsBottomOfStackMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowMplsBottomOfStackMetricTag) + PatternFlowMplsBottomOfStackCounter = _reflection.GeneratedProtocolMessageType('PatternFlowMplsBottomOfStackCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER, '__module__' : 'otg_pb2' @@ -7861,6 +8984,13 @@ _sym_db.RegisterMessage(PatternFlowMplsBottomOfStack) _sym_db.RegisterMessage(PatternFlowMplsBottomOfStack.Choice) +PatternFlowMplsTimeToLiveMetricTag = _reflection.GeneratedProtocolMessageType('PatternFlowMplsTimeToLiveMetricTag', (_message.Message,), { + 'DESCRIPTOR' : _PATTERNFLOWMPLSTIMETOLIVEMETRICTAG, + '__module__' : 'otg_pb2' + # @@protoc_insertion_point(class_scope:otg.PatternFlowMplsTimeToLiveMetricTag) + }) +_sym_db.RegisterMessage(PatternFlowMplsTimeToLiveMetricTag) + PatternFlowMplsTimeToLiveCounter = _reflection.GeneratedProtocolMessageType('PatternFlowMplsTimeToLiveCounter', (_message.Message,), { 'DESCRIPTOR' : _PATTERNFLOWMPLSTIMETOLIVECOUNTER, '__module__' : 'otg_pb2' @@ -8650,667 +9780,679 @@ _RSVPEROSUBOBJECT_HOPTYPE_ENUM._serialized_start=43906 _RSVPEROSUBOBJECT_HOPTYPE_ENUM._serialized_end=43952 _FLOW._serialized_start=44026 - _FLOW._serialized_end=44302 - _FLOWTXRX._serialized_start=44305 - _FLOWTXRX._serialized_end=44523 - _FLOWTXRX_CHOICE._serialized_start=44437 - _FLOWTXRX_CHOICE._serialized_end=44492 - _FLOWTXRX_CHOICE_ENUM._serialized_start=44447 - _FLOWTXRX_CHOICE_ENUM._serialized_end=44492 - _FLOWPORT._serialized_start=44525 - _FLOWPORT._serialized_end=44586 - _FLOWROUTER._serialized_start=44589 - _FLOWROUTER._serialized_end=44751 - _FLOWROUTER_MODE._serialized_start=44685 - _FLOWROUTER_MODE._serialized_end=44742 - _FLOWROUTER_MODE_ENUM._serialized_start=44693 - _FLOWROUTER_MODE_ENUM._serialized_end=44742 - _FLOWHEADER._serialized_start=44754 - _FLOWHEADER._serialized_end=45955 - _FLOWHEADER_CHOICE._serialized_start=45507 - _FLOWHEADER_CHOICE._serialized_end=45752 - _FLOWHEADER_CHOICE_ENUM._serialized_start=45518 - _FLOWHEADER_CHOICE_ENUM._serialized_end=45752 - _FLOWCUSTOM._serialized_start=45957 - _FLOWCUSTOM._serialized_end=45984 - _FLOWETHERNET._serialized_start=45987 - _FLOWETHERNET._serialized_end=46258 - _FLOWVLAN._serialized_start=46261 - _FLOWVLAN._serialized_end=46490 - _FLOWVXLAN._serialized_start=46493 - _FLOWVXLAN._serialized_end=46754 - _FLOWIPV4._serialized_start=46757 - _FLOWIPV4._serialized_end=47775 - _FLOWIPV4PRIORITY._serialized_start=47778 - _FLOWIPV4PRIORITY._serialized_end=48076 - _FLOWIPV4PRIORITY_CHOICE._serialized_start=47979 - _FLOWIPV4PRIORITY_CHOICE._serialized_end=48040 - _FLOWIPV4PRIORITY_CHOICE_ENUM._serialized_start=47989 - _FLOWIPV4PRIORITY_CHOICE_ENUM._serialized_end=48040 - _FLOWIPV4DSCP._serialized_start=48078 - _FLOWIPV4DSCP._serialized_end=48202 - _FLOWIPV4TOS._serialized_start=48205 - _FLOWIPV4TOS._serialized_end=48638 - _FLOWIPV6._serialized_start=48641 - _FLOWIPV6._serialized_end=49192 - _FLOWPFCPAUSE._serialized_start=49195 - _FLOWPFCPAUSE._serialized_end=50248 - _FLOWETHERNETPAUSE._serialized_start=50251 - _FLOWETHERNETPAUSE._serialized_end=50627 - _FLOWTCP._serialized_start=50630 - _FLOWTCP._serialized_end=51570 - _FLOWUDP._serialized_start=51573 - _FLOWUDP._serialized_end=51834 - _FLOWGRE._serialized_start=51837 - _FLOWGRE._serialized_end=52262 - _FLOWGTPV1._serialized_start=52265 - _FLOWGTPV1._serialized_end=53217 - _FLOWGTPEXTENSION._serialized_start=53220 - _FLOWGTPEXTENSION._serialized_end=53520 - _FLOWGTPV2._serialized_start=53523 - _FLOWGTPV2._serialized_end=54186 - _FLOWARP._serialized_start=54189 - _FLOWARP._serialized_end=54990 - _FLOWICMP._serialized_start=54993 - _FLOWICMP._serialized_end=55154 - _FLOWICMP_CHOICE._serialized_start=55091 - _FLOWICMP_CHOICE._serialized_end=55134 - _FLOWICMP_CHOICE_ENUM._serialized_start=55101 - _FLOWICMP_CHOICE_ENUM._serialized_end=55134 - _FLOWICMPECHO._serialized_start=55157 - _FLOWICMPECHO._serialized_end=55523 - _FLOWICMPV6._serialized_start=55526 - _FLOWICMPV6._serialized_end=55693 - _FLOWICMPV6_CHOICE._serialized_start=55091 - _FLOWICMPV6_CHOICE._serialized_end=55134 - _FLOWICMPV6_CHOICE_ENUM._serialized_start=55101 - _FLOWICMPV6_CHOICE_ENUM._serialized_end=55134 - _FLOWICMPV6ECHO._serialized_start=55696 - _FLOWICMPV6ECHO._serialized_end=56074 - _FLOWPPP._serialized_start=56077 - _FLOWPPP._serialized_end=56289 - _FLOWIGMPV1._serialized_start=56292 - _FLOWIGMPV1._serialized_end=56637 - _FLOWMPLS._serialized_start=56640 - _FLOWMPLS._serialized_end=56948 - _FLOWSIZE._serialized_start=56951 - _FLOWSIZE._serialized_end=57238 - _FLOWSIZE_CHOICE._serialized_start=57121 - _FLOWSIZE_CHOICE._serialized_end=57192 - _FLOWSIZE_CHOICE_ENUM._serialized_start=57131 - _FLOWSIZE_CHOICE_ENUM._serialized_end=57192 - _FLOWSIZEINCREMENT._serialized_start=57240 - _FLOWSIZEINCREMENT._serialized_end=57343 - _FLOWSIZERANDOM._serialized_start=57345 - _FLOWSIZERANDOM._serialized_end=57413 - _FLOWRATE._serialized_start=57416 - _FLOWRATE._serialized_end=57760 - _FLOWRATE_CHOICE._serialized_start=57594 - _FLOWRATE_CHOICE._serialized_end=57691 - _FLOWRATE_CHOICE_ENUM._serialized_start=57604 - _FLOWRATE_CHOICE_ENUM._serialized_end=57691 - _FLOWDURATION._serialized_start=57763 - _FLOWDURATION._serialized_end=58185 - _FLOWDURATION_CHOICE._serialized_start=58015 - _FLOWDURATION_CHOICE._serialized_end=58113 - _FLOWDURATION_CHOICE_ENUM._serialized_start=58025 - _FLOWDURATION_CHOICE_ENUM._serialized_end=58113 - _FLOWCONTINUOUS._serialized_start=58187 - _FLOWCONTINUOUS._serialized_end=58275 - _FLOWDELAY._serialized_start=58278 - _FLOWDELAY._serialized_end=58546 - _FLOWDELAY_CHOICE._serialized_start=58413 - _FLOWDELAY_CHOICE._serialized_end=58492 - _FLOWDELAY_CHOICE_ENUM._serialized_start=58423 - _FLOWDELAY_CHOICE_ENUM._serialized_end=58492 - _FLOWFIXEDPACKETS._serialized_start=58548 - _FLOWFIXEDPACKETS._serialized_end=58672 - _FLOWFIXEDSECONDS._serialized_start=58674 - _FLOWFIXEDSECONDS._serialized_end=58798 - _FLOWBURST._serialized_start=58801 - _FLOWBURST._serialized_end=58986 - _FLOWDURATIONINTERBURSTGAP._serialized_start=58989 - _FLOWDURATIONINTERBURSTGAP._serialized_end=59289 - _FLOWDURATIONINTERBURSTGAP_CHOICE._serialized_start=58413 - _FLOWDURATIONINTERBURSTGAP_CHOICE._serialized_end=58492 - _FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM._serialized_start=58423 - _FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM._serialized_end=58492 - _FLOWMETRICS._serialized_start=59292 - _FLOWMETRICS._serialized_end=59464 - _FLOWLATENCYMETRICS._serialized_start=59467 - _FLOWLATENCYMETRICS._serialized_end=59651 - _FLOWLATENCYMETRICS_MODE._serialized_start=59564 - _FLOWLATENCYMETRICS_MODE._serialized_end=59631 - _FLOWLATENCYMETRICS_MODE_ENUM._serialized_start=59572 - _FLOWLATENCYMETRICS_MODE_ENUM._serialized_end=59631 - _EVENT._serialized_start=59654 - _EVENT._serialized_end=59920 - _EVENTRXRATETHRESHOLD._serialized_start=59922 - _EVENTRXRATETHRESHOLD._serialized_end=60014 - _EVENTLINK._serialized_start=60016 - _EVENTLINK._serialized_end=60059 - _EVENTROUTEADVERTISEWITHDRAW._serialized_start=60061 - _EVENTROUTEADVERTISEWITHDRAW._serialized_end=60122 - _EVENTREQUEST._serialized_start=60125 - _EVENTREQUEST._serialized_end=60370 - _EVENTREQUEST_TYPE._serialized_start=60201 - _EVENTREQUEST_TYPE._serialized_end=60370 - _EVENTREQUEST_TYPE_ENUM._serialized_start=60210 - _EVENTREQUEST_TYPE_ENUM._serialized_end=60370 - _EVENTSUBSCRIPTION._serialized_start=60372 - _EVENTSUBSCRIPTION._serialized_end=60486 - _LLDP._serialized_start=60489 - _LLDP._serialized_end=60826 - _LLDPCONNECTION._serialized_start=60829 - _LLDPCONNECTION._serialized_end=60998 - _LLDPCONNECTION_CHOICE._serialized_start=60925 - _LLDPCONNECTION_CHOICE._serialized_end=60973 + _FLOW._serialized_end=44342 + _FLOWTXRX._serialized_start=44345 + _FLOWTXRX._serialized_end=44563 + _FLOWTXRX_CHOICE._serialized_start=44477 + _FLOWTXRX_CHOICE._serialized_end=44532 + _FLOWTXRX_CHOICE_ENUM._serialized_start=44487 + _FLOWTXRX_CHOICE_ENUM._serialized_end=44532 + _FLOWPORT._serialized_start=44565 + _FLOWPORT._serialized_end=44626 + _FLOWROUTER._serialized_start=44629 + _FLOWROUTER._serialized_end=44791 + _FLOWROUTER_MODE._serialized_start=44725 + _FLOWROUTER_MODE._serialized_end=44782 + _FLOWROUTER_MODE_ENUM._serialized_start=44733 + _FLOWROUTER_MODE_ENUM._serialized_end=44782 + _FLOWHEADER._serialized_start=44794 + _FLOWHEADER._serialized_end=45995 + _FLOWHEADER_CHOICE._serialized_start=45547 + _FLOWHEADER_CHOICE._serialized_end=45792 + _FLOWHEADER_CHOICE_ENUM._serialized_start=45558 + _FLOWHEADER_CHOICE_ENUM._serialized_end=45792 + _FLOWCUSTOM._serialized_start=45997 + _FLOWCUSTOM._serialized_end=46071 + _FLOWCUSTOMMETRICTAG._serialized_start=46073 + _FLOWCUSTOMMETRICTAG._serialized_end=46172 + _FLOWETHERNET._serialized_start=46175 + _FLOWETHERNET._serialized_end=46446 + _FLOWVLAN._serialized_start=46449 + _FLOWVLAN._serialized_end=46678 + _FLOWVXLAN._serialized_start=46681 + _FLOWVXLAN._serialized_end=46942 + _FLOWIPV4._serialized_start=46945 + _FLOWIPV4._serialized_end=47963 + _FLOWIPV4PRIORITY._serialized_start=47966 + _FLOWIPV4PRIORITY._serialized_end=48264 + _FLOWIPV4PRIORITY_CHOICE._serialized_start=48167 + _FLOWIPV4PRIORITY_CHOICE._serialized_end=48228 + _FLOWIPV4PRIORITY_CHOICE_ENUM._serialized_start=48177 + _FLOWIPV4PRIORITY_CHOICE_ENUM._serialized_end=48228 + _FLOWIPV4DSCP._serialized_start=48266 + _FLOWIPV4DSCP._serialized_end=48390 + _FLOWIPV4TOS._serialized_start=48393 + _FLOWIPV4TOS._serialized_end=48826 + _FLOWIPV6._serialized_start=48829 + _FLOWIPV6._serialized_end=49380 + _FLOWPFCPAUSE._serialized_start=49383 + _FLOWPFCPAUSE._serialized_end=50436 + _FLOWETHERNETPAUSE._serialized_start=50439 + _FLOWETHERNETPAUSE._serialized_end=50815 + _FLOWTCP._serialized_start=50818 + _FLOWTCP._serialized_end=51758 + _FLOWUDP._serialized_start=51761 + _FLOWUDP._serialized_end=52022 + _FLOWGRE._serialized_start=52025 + _FLOWGRE._serialized_end=52450 + _FLOWGTPV1._serialized_start=52453 + _FLOWGTPV1._serialized_end=53405 + _FLOWGTPEXTENSION._serialized_start=53408 + _FLOWGTPEXTENSION._serialized_end=53708 + _FLOWGTPV2._serialized_start=53711 + _FLOWGTPV2._serialized_end=54374 + _FLOWARP._serialized_start=54377 + _FLOWARP._serialized_end=55178 + _FLOWICMP._serialized_start=55181 + _FLOWICMP._serialized_end=55342 + _FLOWICMP_CHOICE._serialized_start=55279 + _FLOWICMP_CHOICE._serialized_end=55322 + _FLOWICMP_CHOICE_ENUM._serialized_start=55289 + _FLOWICMP_CHOICE_ENUM._serialized_end=55322 + _FLOWICMPECHO._serialized_start=55345 + _FLOWICMPECHO._serialized_end=55711 + _FLOWICMPV6._serialized_start=55714 + _FLOWICMPV6._serialized_end=55881 + _FLOWICMPV6_CHOICE._serialized_start=55279 + _FLOWICMPV6_CHOICE._serialized_end=55322 + _FLOWICMPV6_CHOICE_ENUM._serialized_start=55289 + _FLOWICMPV6_CHOICE_ENUM._serialized_end=55322 + _FLOWICMPV6ECHO._serialized_start=55884 + _FLOWICMPV6ECHO._serialized_end=56262 + _FLOWPPP._serialized_start=56265 + _FLOWPPP._serialized_end=56477 + _FLOWIGMPV1._serialized_start=56480 + _FLOWIGMPV1._serialized_end=56825 + _FLOWMPLS._serialized_start=56828 + _FLOWMPLS._serialized_end=57136 + _FLOWSIZE._serialized_start=57139 + _FLOWSIZE._serialized_end=57426 + _FLOWSIZE_CHOICE._serialized_start=57309 + _FLOWSIZE_CHOICE._serialized_end=57380 + _FLOWSIZE_CHOICE_ENUM._serialized_start=57319 + _FLOWSIZE_CHOICE_ENUM._serialized_end=57380 + _FLOWSIZEINCREMENT._serialized_start=57428 + _FLOWSIZEINCREMENT._serialized_end=57531 + _FLOWSIZERANDOM._serialized_start=57533 + _FLOWSIZERANDOM._serialized_end=57601 + _FLOWRATE._serialized_start=57604 + _FLOWRATE._serialized_end=57948 + _FLOWRATE_CHOICE._serialized_start=57782 + _FLOWRATE_CHOICE._serialized_end=57879 + _FLOWRATE_CHOICE_ENUM._serialized_start=57792 + _FLOWRATE_CHOICE_ENUM._serialized_end=57879 + _FLOWDURATION._serialized_start=57951 + _FLOWDURATION._serialized_end=58373 + _FLOWDURATION_CHOICE._serialized_start=58203 + _FLOWDURATION_CHOICE._serialized_end=58301 + _FLOWDURATION_CHOICE_ENUM._serialized_start=58213 + _FLOWDURATION_CHOICE_ENUM._serialized_end=58301 + _FLOWCONTINUOUS._serialized_start=58375 + _FLOWCONTINUOUS._serialized_end=58463 + _FLOWDELAY._serialized_start=58466 + _FLOWDELAY._serialized_end=58734 + _FLOWDELAY_CHOICE._serialized_start=58601 + _FLOWDELAY_CHOICE._serialized_end=58680 + _FLOWDELAY_CHOICE_ENUM._serialized_start=58611 + _FLOWDELAY_CHOICE_ENUM._serialized_end=58680 + _FLOWFIXEDPACKETS._serialized_start=58736 + _FLOWFIXEDPACKETS._serialized_end=58860 + _FLOWFIXEDSECONDS._serialized_start=58862 + _FLOWFIXEDSECONDS._serialized_end=58986 + _FLOWBURST._serialized_start=58989 + _FLOWBURST._serialized_end=59174 + _FLOWDURATIONINTERBURSTGAP._serialized_start=59177 + _FLOWDURATIONINTERBURSTGAP._serialized_end=59477 + _FLOWDURATIONINTERBURSTGAP_CHOICE._serialized_start=58601 + _FLOWDURATIONINTERBURSTGAP_CHOICE._serialized_end=58680 + _FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM._serialized_start=58611 + _FLOWDURATIONINTERBURSTGAP_CHOICE_ENUM._serialized_end=58680 + _FLOWMETRICS._serialized_start=59480 + _FLOWMETRICS._serialized_end=59652 + _FLOWLATENCYMETRICS._serialized_start=59655 + _FLOWLATENCYMETRICS._serialized_end=59839 + _FLOWLATENCYMETRICS_MODE._serialized_start=59752 + _FLOWLATENCYMETRICS_MODE._serialized_end=59819 + _FLOWLATENCYMETRICS_MODE_ENUM._serialized_start=59760 + _FLOWLATENCYMETRICS_MODE_ENUM._serialized_end=59819 + _EVENT._serialized_start=59842 + _EVENT._serialized_end=60108 + _EVENTRXRATETHRESHOLD._serialized_start=60110 + _EVENTRXRATETHRESHOLD._serialized_end=60202 + _EVENTLINK._serialized_start=60204 + _EVENTLINK._serialized_end=60247 + _EVENTROUTEADVERTISEWITHDRAW._serialized_start=60249 + _EVENTROUTEADVERTISEWITHDRAW._serialized_end=60310 + _EVENTREQUEST._serialized_start=60313 + _EVENTREQUEST._serialized_end=60558 + _EVENTREQUEST_TYPE._serialized_start=60389 + _EVENTREQUEST_TYPE._serialized_end=60558 + _EVENTREQUEST_TYPE_ENUM._serialized_start=60398 + _EVENTREQUEST_TYPE_ENUM._serialized_end=60558 + _EVENTSUBSCRIPTION._serialized_start=60560 + _EVENTSUBSCRIPTION._serialized_end=60674 + _LLDP._serialized_start=60677 + _LLDP._serialized_end=61014 + _LLDPCONNECTION._serialized_start=61017 + _LLDPCONNECTION._serialized_end=61186 + _LLDPCONNECTION_CHOICE._serialized_start=61113 + _LLDPCONNECTION_CHOICE._serialized_end=61161 _LLDPCONNECTION_CHOICE_ENUM._serialized_start=2358 _LLDPCONNECTION_CHOICE_ENUM._serialized_end=2396 - _LLDPCHASSISID._serialized_start=61001 - _LLDPCHASSISID._serialized_end=61383 - _LLDPCHASSISID_CHOICE._serialized_start=61198 - _LLDPCHASSISID_CHOICE._serialized_end=61303 - _LLDPCHASSISID_CHOICE_ENUM._serialized_start=61208 - _LLDPCHASSISID_CHOICE_ENUM._serialized_end=61303 - _LLDPPORTID._serialized_start=61386 - _LLDPPORTID._serialized_end=61769 - _LLDPPORTID_CHOICE._serialized_start=61198 - _LLDPPORTID_CHOICE._serialized_end=61303 - _LLDPPORTID_CHOICE_ENUM._serialized_start=61208 - _LLDPPORTID_CHOICE_ENUM._serialized_end=61303 - _LLDPCHASSISMACSUBTYPE._serialized_start=61772 - _LLDPCHASSISMACSUBTYPE._serialized_end=61981 + _LLDPCHASSISID._serialized_start=61189 + _LLDPCHASSISID._serialized_end=61571 + _LLDPCHASSISID_CHOICE._serialized_start=61386 + _LLDPCHASSISID_CHOICE._serialized_end=61491 + _LLDPCHASSISID_CHOICE_ENUM._serialized_start=61396 + _LLDPCHASSISID_CHOICE_ENUM._serialized_end=61491 + _LLDPPORTID._serialized_start=61574 + _LLDPPORTID._serialized_end=61957 + _LLDPPORTID_CHOICE._serialized_start=61386 + _LLDPPORTID_CHOICE._serialized_end=61491 + _LLDPPORTID_CHOICE_ENUM._serialized_start=61396 + _LLDPPORTID_CHOICE_ENUM._serialized_end=61491 + _LLDPCHASSISMACSUBTYPE._serialized_start=61960 + _LLDPCHASSISMACSUBTYPE._serialized_end=62169 _LLDPCHASSISMACSUBTYPE_CHOICE._serialized_start=3089 _LLDPCHASSISMACSUBTYPE_CHOICE._serialized_end=3143 _LLDPCHASSISMACSUBTYPE_CHOICE_ENUM._serialized_start=3099 _LLDPCHASSISMACSUBTYPE_CHOICE_ENUM._serialized_end=3143 - _LLDPPORTINTERFACENAMESUBTYPE._serialized_start=61984 - _LLDPPORTINTERFACENAMESUBTYPE._serialized_end=62207 + _LLDPPORTINTERFACENAMESUBTYPE._serialized_start=62172 + _LLDPPORTINTERFACENAMESUBTYPE._serialized_end=62395 _LLDPPORTINTERFACENAMESUBTYPE_CHOICE._serialized_start=3089 _LLDPPORTINTERFACENAMESUBTYPE_CHOICE._serialized_end=3143 _LLDPPORTINTERFACENAMESUBTYPE_CHOICE_ENUM._serialized_start=3099 _LLDPPORTINTERFACENAMESUBTYPE_CHOICE_ENUM._serialized_end=3143 - _LLDPSYSTEMNAME._serialized_start=62210 - _LLDPSYSTEMNAME._serialized_end=62405 + _LLDPSYSTEMNAME._serialized_start=62398 + _LLDPSYSTEMNAME._serialized_end=62593 _LLDPSYSTEMNAME_CHOICE._serialized_start=3089 _LLDPSYSTEMNAME_CHOICE._serialized_end=3143 _LLDPSYSTEMNAME_CHOICE_ENUM._serialized_start=3099 _LLDPSYSTEMNAME_CHOICE_ENUM._serialized_end=3143 - _ERROR._serialized_start=62408 - _ERROR._serialized_end=62558 - _ERROR_KIND._serialized_start=62488 - _ERROR_KIND._serialized_end=62549 - _ERROR_KIND_ENUM._serialized_start=62496 - _ERROR_KIND_ENUM._serialized_end=62549 - _WARNING._serialized_start=62560 - _WARNING._serialized_end=62587 - _CONFIGUPDATE._serialized_start=62590 - _CONFIGUPDATE._serialized_end=62761 - _CONFIGUPDATE_CHOICE._serialized_start=62696 - _CONFIGUPDATE_CHOICE._serialized_end=62740 - _CONFIGUPDATE_CHOICE_ENUM._serialized_start=62706 - _CONFIGUPDATE_CHOICE_ENUM._serialized_end=62740 - _FLOWSUPDATE._serialized_start=62764 - _FLOWSUPDATE._serialized_end=62926 - _FLOWSUPDATE_PROPERTYNAMES._serialized_start=62866 - _FLOWSUPDATE_PROPERTYNAMES._serialized_end=62926 - _FLOWSUPDATE_PROPERTYNAMES_ENUM._serialized_start=62883 - _FLOWSUPDATE_PROPERTYNAMES_ENUM._serialized_end=62926 - _CONTROLSTATE._serialized_start=62929 - _CONTROLSTATE._serialized_end=63215 - _CONTROLSTATE_CHOICE._serialized_start=63111 - _CONTROLSTATE_CHOICE._serialized_end=63181 - _CONTROLSTATE_CHOICE_ENUM._serialized_start=63121 - _CONTROLSTATE_CHOICE_ENUM._serialized_end=63181 - _STATEPORT._serialized_start=63218 - _STATEPORT._serialized_end=63436 - _STATEPORT_CHOICE._serialized_start=63359 - _STATEPORT_CHOICE._serialized_end=63415 - _STATEPORT_CHOICE_ENUM._serialized_start=63369 - _STATEPORT_CHOICE_ENUM._serialized_end=63415 - _STATETRAFFIC._serialized_start=63439 - _STATETRAFFIC._serialized_end=63631 - _STATETRAFFIC_CHOICE._serialized_start=63561 - _STATETRAFFIC_CHOICE._serialized_end=63613 - _STATETRAFFIC_CHOICE_ENUM._serialized_start=63571 - _STATETRAFFIC_CHOICE_ENUM._serialized_end=63613 - _STATEPROTOCOL._serialized_start=63634 - _STATEPROTOCOL._serialized_end=63918 - _STATEPROTOCOL_CHOICE._serialized_start=63828 - _STATEPROTOCOL_CHOICE._serialized_end=63891 - _STATEPROTOCOL_CHOICE_ENUM._serialized_start=63838 - _STATEPROTOCOL_CHOICE_ENUM._serialized_end=63891 - _LINKSTATE._serialized_start=63920 - _LINKSTATE._serialized_end=64045 - _LINKSTATE_STATE._serialized_start=63995 - _LINKSTATE_STATE._serialized_end=64045 + _ERROR._serialized_start=62596 + _ERROR._serialized_end=62746 + _ERROR_KIND._serialized_start=62676 + _ERROR_KIND._serialized_end=62737 + _ERROR_KIND_ENUM._serialized_start=62684 + _ERROR_KIND_ENUM._serialized_end=62737 + _WARNING._serialized_start=62748 + _WARNING._serialized_end=62775 + _CONFIGUPDATE._serialized_start=62778 + _CONFIGUPDATE._serialized_end=62949 + _CONFIGUPDATE_CHOICE._serialized_start=62884 + _CONFIGUPDATE_CHOICE._serialized_end=62928 + _CONFIGUPDATE_CHOICE_ENUM._serialized_start=62894 + _CONFIGUPDATE_CHOICE_ENUM._serialized_end=62928 + _FLOWSUPDATE._serialized_start=62952 + _FLOWSUPDATE._serialized_end=63114 + _FLOWSUPDATE_PROPERTYNAMES._serialized_start=63054 + _FLOWSUPDATE_PROPERTYNAMES._serialized_end=63114 + _FLOWSUPDATE_PROPERTYNAMES_ENUM._serialized_start=63071 + _FLOWSUPDATE_PROPERTYNAMES_ENUM._serialized_end=63114 + _CONTROLSTATE._serialized_start=63117 + _CONTROLSTATE._serialized_end=63403 + _CONTROLSTATE_CHOICE._serialized_start=63299 + _CONTROLSTATE_CHOICE._serialized_end=63369 + _CONTROLSTATE_CHOICE_ENUM._serialized_start=63309 + _CONTROLSTATE_CHOICE_ENUM._serialized_end=63369 + _STATEPORT._serialized_start=63406 + _STATEPORT._serialized_end=63624 + _STATEPORT_CHOICE._serialized_start=63547 + _STATEPORT_CHOICE._serialized_end=63603 + _STATEPORT_CHOICE_ENUM._serialized_start=63557 + _STATEPORT_CHOICE_ENUM._serialized_end=63603 + _STATETRAFFIC._serialized_start=63627 + _STATETRAFFIC._serialized_end=63819 + _STATETRAFFIC_CHOICE._serialized_start=63749 + _STATETRAFFIC_CHOICE._serialized_end=63801 + _STATETRAFFIC_CHOICE_ENUM._serialized_start=63759 + _STATETRAFFIC_CHOICE_ENUM._serialized_end=63801 + _STATEPROTOCOL._serialized_start=63822 + _STATEPROTOCOL._serialized_end=64106 + _STATEPROTOCOL_CHOICE._serialized_start=64016 + _STATEPROTOCOL_CHOICE._serialized_end=64079 + _STATEPROTOCOL_CHOICE_ENUM._serialized_start=64026 + _STATEPROTOCOL_CHOICE_ENUM._serialized_end=64079 + _LINKSTATE._serialized_start=64108 + _LINKSTATE._serialized_end=64233 + _LINKSTATE_STATE._serialized_start=64183 + _LINKSTATE_STATE._serialized_end=64233 _LINKSTATE_STATE_ENUM._serialized_start=13484 _LINKSTATE_STATE_ENUM._serialized_end=13525 - _TRANSMITSTATE._serialized_start=64048 - _TRANSMITSTATE._serialized_end=64207 - _TRANSMITSTATE_STATE._serialized_start=64131 - _TRANSMITSTATE_STATE._serialized_end=64207 - _TRANSMITSTATE_STATE_ENUM._serialized_start=64140 - _TRANSMITSTATE_STATE_ENUM._serialized_end=64207 - _CAPTURESTATE._serialized_start=64210 - _CAPTURESTATE._serialized_end=64344 - _CAPTURESTATE_STATE._serialized_start=64291 - _CAPTURESTATE_STATE._serialized_end=64344 - _CAPTURESTATE_STATE_ENUM._serialized_start=64140 - _CAPTURESTATE_STATE_ENUM._serialized_end=64184 - _ROUTESTATE._serialized_start=64347 - _ROUTESTATE._serialized_end=64480 - _ROUTESTATE_STATE._serialized_start=64419 - _ROUTESTATE_STATE._serialized_end=64480 - _ROUTESTATE_STATE_ENUM._serialized_start=64428 - _ROUTESTATE_STATE_ENUM._serialized_end=64480 - _PROTOCOLSTATE._serialized_start=64482 - _PROTOCOLSTATE._serialized_end=64598 - _PROTOCOLSTATE_STATE._serialized_start=64291 - _PROTOCOLSTATE_STATE._serialized_end=64344 - _PROTOCOLSTATE_STATE_ENUM._serialized_start=64140 - _PROTOCOLSTATE_STATE_ENUM._serialized_end=64184 - _DEVICESTATE._serialized_start=64601 - _DEVICESTATE._serialized_end=64810 - _DEVICESTATE_CHOICE._serialized_start=64721 - _DEVICESTATE_CHOICE._serialized_end=64777 - _DEVICESTATE_CHOICE_ENUM._serialized_start=64731 - _DEVICESTATE_CHOICE_ENUM._serialized_end=64777 - _STATEPORTLINK._serialized_start=64813 - _STATEPORTLINK._serialized_end=64946 - _STATEPORTLINK_STATE._serialized_start=63995 - _STATEPORTLINK_STATE._serialized_end=64045 + _TRANSMITSTATE._serialized_start=64236 + _TRANSMITSTATE._serialized_end=64395 + _TRANSMITSTATE_STATE._serialized_start=64319 + _TRANSMITSTATE_STATE._serialized_end=64395 + _TRANSMITSTATE_STATE_ENUM._serialized_start=64328 + _TRANSMITSTATE_STATE_ENUM._serialized_end=64395 + _CAPTURESTATE._serialized_start=64398 + _CAPTURESTATE._serialized_end=64532 + _CAPTURESTATE_STATE._serialized_start=64479 + _CAPTURESTATE_STATE._serialized_end=64532 + _CAPTURESTATE_STATE_ENUM._serialized_start=64328 + _CAPTURESTATE_STATE_ENUM._serialized_end=64372 + _ROUTESTATE._serialized_start=64535 + _ROUTESTATE._serialized_end=64668 + _ROUTESTATE_STATE._serialized_start=64607 + _ROUTESTATE_STATE._serialized_end=64668 + _ROUTESTATE_STATE_ENUM._serialized_start=64616 + _ROUTESTATE_STATE_ENUM._serialized_end=64668 + _PROTOCOLSTATE._serialized_start=64670 + _PROTOCOLSTATE._serialized_end=64786 + _PROTOCOLSTATE_STATE._serialized_start=64479 + _PROTOCOLSTATE_STATE._serialized_end=64532 + _PROTOCOLSTATE_STATE_ENUM._serialized_start=64328 + _PROTOCOLSTATE_STATE_ENUM._serialized_end=64372 + _DEVICESTATE._serialized_start=64789 + _DEVICESTATE._serialized_end=64998 + _DEVICESTATE_CHOICE._serialized_start=64909 + _DEVICESTATE_CHOICE._serialized_end=64965 + _DEVICESTATE_CHOICE_ENUM._serialized_start=64919 + _DEVICESTATE_CHOICE_ENUM._serialized_end=64965 + _STATEPORTLINK._serialized_start=65001 + _STATEPORTLINK._serialized_end=65134 + _STATEPORTLINK_STATE._serialized_start=64183 + _STATEPORTLINK_STATE._serialized_end=64233 _STATEPORTLINK_STATE_ENUM._serialized_start=13484 _STATEPORTLINK_STATE_ENUM._serialized_end=13525 - _STATEPORTCAPTURE._serialized_start=64949 - _STATEPORTCAPTURE._serialized_end=65091 - _STATEPORTCAPTURE_STATE._serialized_start=64291 - _STATEPORTCAPTURE_STATE._serialized_end=64344 - _STATEPORTCAPTURE_STATE_ENUM._serialized_start=64140 - _STATEPORTCAPTURE_STATE_ENUM._serialized_end=64184 - _STATETRAFFICFLOWTRANSMIT._serialized_start=65094 - _STATETRAFFICFLOWTRANSMIT._serialized_end=65290 - _STATETRAFFICFLOWTRANSMIT_STATE._serialized_start=64131 - _STATETRAFFICFLOWTRANSMIT_STATE._serialized_end=64207 - _STATETRAFFICFLOWTRANSMIT_STATE_ENUM._serialized_start=64140 - _STATETRAFFICFLOWTRANSMIT_STATE_ENUM._serialized_end=64207 - _STATEPROTOCOLALL._serialized_start=65292 - _STATEPROTOCOLALL._serialized_end=65414 - _STATEPROTOCOLALL_STATE._serialized_start=64291 - _STATEPROTOCOLALL_STATE._serialized_end=64344 - _STATEPROTOCOLALL_STATE_ENUM._serialized_start=64140 - _STATEPROTOCOLALL_STATE_ENUM._serialized_end=64184 - _STATEPROTOCOLROUTE._serialized_start=65417 - _STATEPROTOCOLROUTE._serialized_end=65566 - _STATEPROTOCOLROUTE_STATE._serialized_start=64419 - _STATEPROTOCOLROUTE_STATE._serialized_end=64480 - _STATEPROTOCOLROUTE_STATE_ENUM._serialized_start=64428 - _STATEPROTOCOLROUTE_STATE_ENUM._serialized_end=64480 - _STATEPROTOCOLLACP._serialized_start=65569 - _STATEPROTOCOLLACP._serialized_end=65745 - _STATEPROTOCOLLACP_CHOICE._serialized_start=65691 - _STATEPROTOCOLLACP_CHOICE._serialized_end=65735 - _STATEPROTOCOLLACP_CHOICE_ENUM._serialized_start=65701 - _STATEPROTOCOLLACP_CHOICE_ENUM._serialized_end=65735 - _STATEPROTOCOLLACPADMIN._serialized_start=65748 - _STATEPROTOCOLLACPADMIN._serialized_end=65920 - _STATEPROTOCOLLACPADMIN_STATE._serialized_start=63995 - _STATEPROTOCOLLACPADMIN_STATE._serialized_end=64045 + _STATEPORTCAPTURE._serialized_start=65137 + _STATEPORTCAPTURE._serialized_end=65279 + _STATEPORTCAPTURE_STATE._serialized_start=64479 + _STATEPORTCAPTURE_STATE._serialized_end=64532 + _STATEPORTCAPTURE_STATE_ENUM._serialized_start=64328 + _STATEPORTCAPTURE_STATE_ENUM._serialized_end=64372 + _STATETRAFFICFLOWTRANSMIT._serialized_start=65282 + _STATETRAFFICFLOWTRANSMIT._serialized_end=65478 + _STATETRAFFICFLOWTRANSMIT_STATE._serialized_start=64319 + _STATETRAFFICFLOWTRANSMIT_STATE._serialized_end=64395 + _STATETRAFFICFLOWTRANSMIT_STATE_ENUM._serialized_start=64328 + _STATETRAFFICFLOWTRANSMIT_STATE_ENUM._serialized_end=64395 + _STATEPROTOCOLALL._serialized_start=65480 + _STATEPROTOCOLALL._serialized_end=65602 + _STATEPROTOCOLALL_STATE._serialized_start=64479 + _STATEPROTOCOLALL_STATE._serialized_end=64532 + _STATEPROTOCOLALL_STATE_ENUM._serialized_start=64328 + _STATEPROTOCOLALL_STATE_ENUM._serialized_end=64372 + _STATEPROTOCOLROUTE._serialized_start=65605 + _STATEPROTOCOLROUTE._serialized_end=65754 + _STATEPROTOCOLROUTE_STATE._serialized_start=64607 + _STATEPROTOCOLROUTE_STATE._serialized_end=64668 + _STATEPROTOCOLROUTE_STATE_ENUM._serialized_start=64616 + _STATEPROTOCOLROUTE_STATE_ENUM._serialized_end=64668 + _STATEPROTOCOLLACP._serialized_start=65757 + _STATEPROTOCOLLACP._serialized_end=65933 + _STATEPROTOCOLLACP_CHOICE._serialized_start=65879 + _STATEPROTOCOLLACP_CHOICE._serialized_end=65923 + _STATEPROTOCOLLACP_CHOICE_ENUM._serialized_start=65889 + _STATEPROTOCOLLACP_CHOICE_ENUM._serialized_end=65923 + _STATEPROTOCOLLACPADMIN._serialized_start=65936 + _STATEPROTOCOLLACPADMIN._serialized_end=66108 + _STATEPROTOCOLLACPADMIN_STATE._serialized_start=64183 + _STATEPROTOCOLLACPADMIN_STATE._serialized_end=64233 _STATEPROTOCOLLACPADMIN_STATE_ENUM._serialized_start=13484 _STATEPROTOCOLLACPADMIN_STATE_ENUM._serialized_end=13525 - _LACPMEMBERSTATE._serialized_start=65923 - _LACPMEMBERSTATE._serialized_end=66071 - _LACPMEMBERSTATE_STATE._serialized_start=63995 - _LACPMEMBERSTATE_STATE._serialized_end=64045 + _LACPMEMBERSTATE._serialized_start=66111 + _LACPMEMBERSTATE._serialized_end=66259 + _LACPMEMBERSTATE_STATE._serialized_start=64183 + _LACPMEMBERSTATE_STATE._serialized_end=64233 _LACPMEMBERSTATE_STATE_ENUM._serialized_start=13484 _LACPMEMBERSTATE_STATE_ENUM._serialized_end=13525 - _CONTROLACTION._serialized_start=66074 - _CONTROLACTION._serialized_end=66243 - _CONTROLACTION_CHOICE._serialized_start=66183 - _CONTROLACTION_CHOICE._serialized_end=66230 - _CONTROLACTION_CHOICE_ENUM._serialized_start=66193 - _CONTROLACTION_CHOICE_ENUM._serialized_end=66230 - _CONTROLACTIONRESPONSE._serialized_start=66245 - _CONTROLACTIONRESPONSE._serialized_end=66343 - _ACTIONRESPONSE._serialized_start=66346 - _ACTIONRESPONSE._serialized_end=66525 - _ACTIONRESPONSE_CHOICE._serialized_start=66183 - _ACTIONRESPONSE_CHOICE._serialized_end=66230 - _ACTIONRESPONSE_CHOICE_ENUM._serialized_start=66193 - _ACTIONRESPONSE_CHOICE_ENUM._serialized_end=66230 - _ACTIONPROTOCOL._serialized_start=66528 - _ACTIONPROTOCOL._serialized_end=66813 - _ACTIONPROTOCOL_CHOICE._serialized_start=66725 - _ACTIONPROTOCOL_CHOICE._serialized_end=66787 - _ACTIONPROTOCOL_CHOICE_ENUM._serialized_start=66735 - _ACTIONPROTOCOL_CHOICE_ENUM._serialized_end=66787 - _ACTIONRESPONSEPROTOCOL._serialized_start=66816 - _ACTIONRESPONSEPROTOCOL._serialized_end=67074 - _ACTIONRESPONSEPROTOCOL_CHOICE._serialized_start=67003 - _ACTIONRESPONSEPROTOCOL_CHOICE._serialized_end=67056 + _CONTROLACTION._serialized_start=66262 + _CONTROLACTION._serialized_end=66431 + _CONTROLACTION_CHOICE._serialized_start=66371 + _CONTROLACTION_CHOICE._serialized_end=66418 + _CONTROLACTION_CHOICE_ENUM._serialized_start=66381 + _CONTROLACTION_CHOICE_ENUM._serialized_end=66418 + _CONTROLACTIONRESPONSE._serialized_start=66433 + _CONTROLACTIONRESPONSE._serialized_end=66531 + _ACTIONRESPONSE._serialized_start=66534 + _ACTIONRESPONSE._serialized_end=66713 + _ACTIONRESPONSE_CHOICE._serialized_start=66371 + _ACTIONRESPONSE_CHOICE._serialized_end=66418 + _ACTIONRESPONSE_CHOICE_ENUM._serialized_start=66381 + _ACTIONRESPONSE_CHOICE_ENUM._serialized_end=66418 + _ACTIONPROTOCOL._serialized_start=66716 + _ACTIONPROTOCOL._serialized_end=67001 + _ACTIONPROTOCOL_CHOICE._serialized_start=66913 + _ACTIONPROTOCOL_CHOICE._serialized_end=66975 + _ACTIONPROTOCOL_CHOICE_ENUM._serialized_start=66923 + _ACTIONPROTOCOL_CHOICE_ENUM._serialized_end=66975 + _ACTIONRESPONSEPROTOCOL._serialized_start=67004 + _ACTIONRESPONSEPROTOCOL._serialized_end=67262 + _ACTIONRESPONSEPROTOCOL_CHOICE._serialized_start=67191 + _ACTIONRESPONSEPROTOCOL_CHOICE._serialized_end=67244 _ACTIONRESPONSEPROTOCOL_CHOICE_ENUM._serialized_start=24562 _ACTIONRESPONSEPROTOCOL_CHOICE_ENUM._serialized_end=24605 - _ACTIONPROTOCOLIPV4._serialized_start=67077 - _ACTIONPROTOCOLIPV4._serialized_end=67252 - _ACTIONPROTOCOLIPV4_CHOICE._serialized_start=67200 - _ACTIONPROTOCOLIPV4_CHOICE._serialized_end=67243 - _ACTIONPROTOCOLIPV4_CHOICE_ENUM._serialized_start=67210 - _ACTIONPROTOCOLIPV4_CHOICE_ENUM._serialized_end=67243 - _ACTIONRESPONSEPROTOCOLIPV4._serialized_start=67255 - _ACTIONRESPONSEPROTOCOLIPV4._serialized_end=67454 - _ACTIONRESPONSEPROTOCOLIPV4_CHOICE._serialized_start=67200 - _ACTIONRESPONSEPROTOCOLIPV4_CHOICE._serialized_end=67243 - _ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM._serialized_start=67210 - _ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM._serialized_end=67243 - _ACTIONPROTOCOLIPV4PING._serialized_start=67456 - _ACTIONPROTOCOLIPV4PING._serialized_end=67534 - _ACTIONPROTOCOLIPV4PINGREQUEST._serialized_start=67536 - _ACTIONPROTOCOLIPV4PINGREQUEST._serialized_end=67635 - _ACTIONRESPONSEPROTOCOLIPV4PING._serialized_start=67637 - _ACTIONRESPONSEPROTOCOLIPV4PING._serialized_end=67733 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE._serialized_start=67736 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE._serialized_end=67945 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT._serialized_start=67885 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT._serialized_end=67945 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM._serialized_start=67895 - _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM._serialized_end=67945 - _ACTIONPROTOCOLIPV6._serialized_start=67948 - _ACTIONPROTOCOLIPV6._serialized_end=68123 - _ACTIONPROTOCOLIPV6_CHOICE._serialized_start=67200 - _ACTIONPROTOCOLIPV6_CHOICE._serialized_end=67243 - _ACTIONPROTOCOLIPV6_CHOICE_ENUM._serialized_start=67210 - _ACTIONPROTOCOLIPV6_CHOICE_ENUM._serialized_end=67243 - _ACTIONRESPONSEPROTOCOLIPV6._serialized_start=68126 - _ACTIONRESPONSEPROTOCOLIPV6._serialized_end=68325 - _ACTIONRESPONSEPROTOCOLIPV6_CHOICE._serialized_start=67200 - _ACTIONRESPONSEPROTOCOLIPV6_CHOICE._serialized_end=67243 - _ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM._serialized_start=67210 - _ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM._serialized_end=67243 - _ACTIONPROTOCOLIPV6PING._serialized_start=68327 - _ACTIONPROTOCOLIPV6PING._serialized_end=68405 - _ACTIONPROTOCOLIPV6PINGREQUEST._serialized_start=68407 - _ACTIONPROTOCOLIPV6PINGREQUEST._serialized_end=68506 - _ACTIONRESPONSEPROTOCOLIPV6PING._serialized_start=68508 - _ACTIONRESPONSEPROTOCOLIPV6PING._serialized_end=68604 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE._serialized_start=68607 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE._serialized_end=68816 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT._serialized_start=67885 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT._serialized_end=67945 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM._serialized_start=67895 - _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM._serialized_end=67945 - _ACTIONPROTOCOLBGP._serialized_start=68819 - _ACTIONPROTOCOLBGP._serialized_end=69171 - _ACTIONPROTOCOLBGP_CHOICE._serialized_start=69042 - _ACTIONPROTOCOLBGP_CHOICE._serialized_end=69124 - _ACTIONPROTOCOLBGP_CHOICE_ENUM._serialized_start=69052 - _ACTIONPROTOCOLBGP_CHOICE_ENUM._serialized_end=69124 - _ACTIONPROTOCOLBGPNOTIFICATION._serialized_start=69174 - _ACTIONPROTOCOLBGPNOTIFICATION._serialized_end=70082 - _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE._serialized_start=69734 - _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE._serialized_end=69923 - _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM._serialized_start=69745 - _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM._serialized_end=69923 - _ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART._serialized_start=70084 - _ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART._serialized_end=70192 - _PING._serialized_start=70195 - _PING._serialized_end=70397 - _PING_CHOICE._serialized_start=67003 - _PING_CHOICE._serialized_end=67056 + _ACTIONPROTOCOLIPV4._serialized_start=67265 + _ACTIONPROTOCOLIPV4._serialized_end=67440 + _ACTIONPROTOCOLIPV4_CHOICE._serialized_start=67388 + _ACTIONPROTOCOLIPV4_CHOICE._serialized_end=67431 + _ACTIONPROTOCOLIPV4_CHOICE_ENUM._serialized_start=67398 + _ACTIONPROTOCOLIPV4_CHOICE_ENUM._serialized_end=67431 + _ACTIONRESPONSEPROTOCOLIPV4._serialized_start=67443 + _ACTIONRESPONSEPROTOCOLIPV4._serialized_end=67642 + _ACTIONRESPONSEPROTOCOLIPV4_CHOICE._serialized_start=67388 + _ACTIONRESPONSEPROTOCOLIPV4_CHOICE._serialized_end=67431 + _ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM._serialized_start=67398 + _ACTIONRESPONSEPROTOCOLIPV4_CHOICE_ENUM._serialized_end=67431 + _ACTIONPROTOCOLIPV4PING._serialized_start=67644 + _ACTIONPROTOCOLIPV4PING._serialized_end=67722 + _ACTIONPROTOCOLIPV4PINGREQUEST._serialized_start=67724 + _ACTIONPROTOCOLIPV4PINGREQUEST._serialized_end=67823 + _ACTIONRESPONSEPROTOCOLIPV4PING._serialized_start=67825 + _ACTIONRESPONSEPROTOCOLIPV4PING._serialized_end=67921 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE._serialized_start=67924 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE._serialized_end=68133 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT._serialized_start=68073 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT._serialized_end=68133 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM._serialized_start=68083 + _ACTIONRESPONSEPROTOCOLIPV4PINGRESPONSE_RESULT_ENUM._serialized_end=68133 + _ACTIONPROTOCOLIPV6._serialized_start=68136 + _ACTIONPROTOCOLIPV6._serialized_end=68311 + _ACTIONPROTOCOLIPV6_CHOICE._serialized_start=67388 + _ACTIONPROTOCOLIPV6_CHOICE._serialized_end=67431 + _ACTIONPROTOCOLIPV6_CHOICE_ENUM._serialized_start=67398 + _ACTIONPROTOCOLIPV6_CHOICE_ENUM._serialized_end=67431 + _ACTIONRESPONSEPROTOCOLIPV6._serialized_start=68314 + _ACTIONRESPONSEPROTOCOLIPV6._serialized_end=68513 + _ACTIONRESPONSEPROTOCOLIPV6_CHOICE._serialized_start=67388 + _ACTIONRESPONSEPROTOCOLIPV6_CHOICE._serialized_end=67431 + _ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM._serialized_start=67398 + _ACTIONRESPONSEPROTOCOLIPV6_CHOICE_ENUM._serialized_end=67431 + _ACTIONPROTOCOLIPV6PING._serialized_start=68515 + _ACTIONPROTOCOLIPV6PING._serialized_end=68593 + _ACTIONPROTOCOLIPV6PINGREQUEST._serialized_start=68595 + _ACTIONPROTOCOLIPV6PINGREQUEST._serialized_end=68694 + _ACTIONRESPONSEPROTOCOLIPV6PING._serialized_start=68696 + _ACTIONRESPONSEPROTOCOLIPV6PING._serialized_end=68792 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE._serialized_start=68795 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE._serialized_end=69004 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT._serialized_start=68073 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT._serialized_end=68133 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM._serialized_start=68083 + _ACTIONRESPONSEPROTOCOLIPV6PINGRESPONSE_RESULT_ENUM._serialized_end=68133 + _ACTIONPROTOCOLBGP._serialized_start=69007 + _ACTIONPROTOCOLBGP._serialized_end=69359 + _ACTIONPROTOCOLBGP_CHOICE._serialized_start=69230 + _ACTIONPROTOCOLBGP_CHOICE._serialized_end=69312 + _ACTIONPROTOCOLBGP_CHOICE_ENUM._serialized_start=69240 + _ACTIONPROTOCOLBGP_CHOICE_ENUM._serialized_end=69312 + _ACTIONPROTOCOLBGPNOTIFICATION._serialized_start=69362 + _ACTIONPROTOCOLBGPNOTIFICATION._serialized_end=70270 + _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE._serialized_start=69922 + _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE._serialized_end=70111 + _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM._serialized_start=69933 + _ACTIONPROTOCOLBGPNOTIFICATION_CHOICE_ENUM._serialized_end=70111 + _ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART._serialized_start=70272 + _ACTIONPROTOCOLBGPINITIATEGRACEFULRESTART._serialized_end=70380 + _PING._serialized_start=70383 + _PING._serialized_end=70585 + _PING_CHOICE._serialized_start=67191 + _PING_CHOICE._serialized_end=67244 _PING_CHOICE_ENUM._serialized_start=24562 _PING_CHOICE_ENUM._serialized_end=24605 - _PINGIPV4._serialized_start=70399 - _PINGIPV4._serialized_end=70477 - _PINGIPV6._serialized_start=70479 - _PINGIPV6._serialized_end=70557 - _PINGREQUEST._serialized_start=70559 - _PINGREQUEST._serialized_end=70602 - _PINGRESPONSE._serialized_start=70604 - _PINGRESPONSE._serialized_end=70652 - _RESPONSE._serialized_start=70655 - _RESPONSE._serialized_end=70853 - _RESPONSE_RESULT._serialized_start=70759 - _RESPONSE_RESULT._serialized_end=70818 - _RESPONSE_RESULT_ENUM._serialized_start=70769 - _RESPONSE_RESULT_ENUM._serialized_end=70818 - _METRICSREQUEST._serialized_start=70856 - _METRICSREQUEST._serialized_end=71543 - _METRICSREQUEST_CHOICE._serialized_start=71326 - _METRICSREQUEST_CHOICE._serialized_end=71450 - _METRICSREQUEST_CHOICE_ENUM._serialized_start=71336 - _METRICSREQUEST_CHOICE_ENUM._serialized_end=71450 - _METRICSRESPONSE._serialized_start=71546 - _METRICSRESPONSE._serialized_end=72182 - _METRICSRESPONSE_CHOICE._serialized_start=71974 - _METRICSRESPONSE_CHOICE._serialized_end=72171 - _METRICSRESPONSE_CHOICE_ENUM._serialized_start=71985 - _METRICSRESPONSE_CHOICE_ENUM._serialized_end=72171 - _PORTMETRICSREQUEST._serialized_start=72185 - _PORTMETRICSREQUEST._serialized_end=72518 - _PORTMETRICSREQUEST_COLUMNNAMES._serialized_start=72292 - _PORTMETRICSREQUEST_COLUMNNAMES._serialized_end=72518 - _PORTMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=72308 - _PORTMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=72518 - _PORTMETRIC._serialized_start=72521 - _PORTMETRIC._serialized_end=73295 - _PORTMETRIC_LINK._serialized_start=72937 - _PORTMETRIC_LINK._serialized_end=72986 + _PINGIPV4._serialized_start=70587 + _PINGIPV4._serialized_end=70665 + _PINGIPV6._serialized_start=70667 + _PINGIPV6._serialized_end=70745 + _PINGREQUEST._serialized_start=70747 + _PINGREQUEST._serialized_end=70790 + _PINGRESPONSE._serialized_start=70792 + _PINGRESPONSE._serialized_end=70840 + _RESPONSE._serialized_start=70843 + _RESPONSE._serialized_end=71041 + _RESPONSE_RESULT._serialized_start=70947 + _RESPONSE_RESULT._serialized_end=71006 + _RESPONSE_RESULT_ENUM._serialized_start=70957 + _RESPONSE_RESULT_ENUM._serialized_end=71006 + _METRICSREQUEST._serialized_start=71044 + _METRICSREQUEST._serialized_end=71731 + _METRICSREQUEST_CHOICE._serialized_start=71514 + _METRICSREQUEST_CHOICE._serialized_end=71638 + _METRICSREQUEST_CHOICE_ENUM._serialized_start=71524 + _METRICSREQUEST_CHOICE_ENUM._serialized_end=71638 + _METRICSRESPONSE._serialized_start=71734 + _METRICSRESPONSE._serialized_end=72370 + _METRICSRESPONSE_CHOICE._serialized_start=72162 + _METRICSRESPONSE_CHOICE._serialized_end=72359 + _METRICSRESPONSE_CHOICE_ENUM._serialized_start=72173 + _METRICSRESPONSE_CHOICE_ENUM._serialized_end=72359 + _PORTMETRICSREQUEST._serialized_start=72373 + _PORTMETRICSREQUEST._serialized_end=72706 + _PORTMETRICSREQUEST_COLUMNNAMES._serialized_start=72480 + _PORTMETRICSREQUEST_COLUMNNAMES._serialized_end=72706 + _PORTMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=72496 + _PORTMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=72706 + _PORTMETRIC._serialized_start=72709 + _PORTMETRIC._serialized_end=73483 + _PORTMETRIC_LINK._serialized_start=73125 + _PORTMETRIC_LINK._serialized_end=73174 _PORTMETRIC_LINK_ENUM._serialized_start=13484 _PORTMETRIC_LINK_ENUM._serialized_end=13525 - _PORTMETRIC_CAPTURE._serialized_start=72988 - _PORTMETRIC_CAPTURE._serialized_end=73048 - _PORTMETRIC_CAPTURE_ENUM._serialized_start=72999 - _PORTMETRIC_CAPTURE_ENUM._serialized_end=73048 - _PORTMETRIC_TRANSMIT._serialized_start=73050 - _PORTMETRIC_TRANSMIT._serialized_end=73111 - _PORTMETRIC_TRANSMIT_ENUM._serialized_start=72999 - _PORTMETRIC_TRANSMIT_ENUM._serialized_end=73048 - _FLOWMETRICSREQUEST._serialized_start=73298 - _FLOWMETRICSREQUEST._serialized_end=73631 - _FLOWMETRICSREQUEST_METRICNAMES._serialized_start=73462 - _FLOWMETRICSREQUEST_METRICNAMES._serialized_end=73613 - _FLOWMETRICSREQUEST_METRICNAMES_ENUM._serialized_start=73478 - _FLOWMETRICSREQUEST_METRICNAMES_ENUM._serialized_end=73613 - _FLOWMETRICGROUPREQUEST._serialized_start=73634 - _FLOWMETRICGROUPREQUEST._serialized_end=73824 - _FLOWMETRICGROUPREQUEST_CHOICE._serialized_start=73755 - _FLOWMETRICGROUPREQUEST_CHOICE._serialized_end=73813 - _FLOWMETRICGROUPREQUEST_CHOICE_ENUM._serialized_start=73765 - _FLOWMETRICGROUPREQUEST_CHOICE_ENUM._serialized_end=73813 - _FLOWMETRIC._serialized_start=73827 - _FLOWMETRIC._serialized_end=74510 - _FLOWMETRIC_TRANSMIT._serialized_start=74263 - _FLOWMETRIC_TRANSMIT._serialized_end=74336 - _FLOWMETRIC_TRANSMIT_ENUM._serialized_start=74275 - _FLOWMETRIC_TRANSMIT_ENUM._serialized_end=74336 - _FLOWMETRICGROUP._serialized_start=74512 - _FLOWMETRICGROUP._serialized_end=74587 - _METRICTIMESTAMP._serialized_start=74589 - _METRICTIMESTAMP._serialized_end=74716 - _METRICLATENCY._serialized_start=74719 - _METRICLATENCY._serialized_end=74854 - _BGPV4METRICSREQUEST._serialized_start=74857 - _BGPV4METRICSREQUEST._serialized_end=75337 - _BGPV4METRICSREQUEST_COLUMNNAMES._serialized_start=74966 - _BGPV4METRICSREQUEST_COLUMNNAMES._serialized_end=75337 - _BGPV4METRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=74982 - _BGPV4METRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=75337 - _BGPV4METRIC._serialized_start=75340 - _BGPV4METRIC._serialized_end=76412 - _BGPV4METRIC_SESSIONSTATE._serialized_start=75909 - _BGPV4METRIC_SESSIONSTATE._serialized_end=75966 + _PORTMETRIC_CAPTURE._serialized_start=73176 + _PORTMETRIC_CAPTURE._serialized_end=73236 + _PORTMETRIC_CAPTURE_ENUM._serialized_start=73187 + _PORTMETRIC_CAPTURE_ENUM._serialized_end=73236 + _PORTMETRIC_TRANSMIT._serialized_start=73238 + _PORTMETRIC_TRANSMIT._serialized_end=73299 + _PORTMETRIC_TRANSMIT_ENUM._serialized_start=73187 + _PORTMETRIC_TRANSMIT_ENUM._serialized_end=73236 + _FLOWMETRICSREQUEST._serialized_start=73486 + _FLOWMETRICSREQUEST._serialized_end=73822 + _FLOWMETRICSREQUEST_METRICNAMES._serialized_start=73652 + _FLOWMETRICSREQUEST_METRICNAMES._serialized_end=73803 + _FLOWMETRICSREQUEST_METRICNAMES_ENUM._serialized_start=73668 + _FLOWMETRICSREQUEST_METRICNAMES_ENUM._serialized_end=73803 + _FLOWTAGGEDMETRICSFILTER._serialized_start=73825 + _FLOWTAGGEDMETRICSFILTER._serialized_end=74197 + _FLOWTAGGEDMETRICSFILTER_METRICNAMES._serialized_start=74023 + _FLOWTAGGEDMETRICSFILTER_METRICNAMES._serialized_end=74159 + _FLOWTAGGEDMETRICSFILTER_METRICNAMES_ENUM._serialized_start=74038 + _FLOWTAGGEDMETRICSFILTER_METRICNAMES_ENUM._serialized_end=74159 + _FLOWMETRICTAGFILTER._serialized_start=74199 + _FLOWMETRICTAGFILTER._serialized_end=74264 + _FLOWMETRIC._serialized_start=74267 + _FLOWMETRIC._serialized_end=74952 + _FLOWMETRIC_TRANSMIT._serialized_start=74705 + _FLOWMETRIC_TRANSMIT._serialized_end=74778 + _FLOWMETRIC_TRANSMIT_ENUM._serialized_start=74717 + _FLOWMETRIC_TRANSMIT_ENUM._serialized_end=74778 + _FLOWTAGGEDMETRIC._serialized_start=74955 + _FLOWTAGGEDMETRIC._serialized_end=75395 + _FLOWMETRICTAG._serialized_start=75397 + _FLOWMETRICTAG._serialized_end=75495 + _FLOWMETRICTAGVALUE._serialized_start=75498 + _FLOWMETRICTAGVALUE._serialized_end=75657 + _FLOWMETRICTAGVALUE_CHOICE._serialized_start=75596 + _FLOWMETRICTAGVALUE_CHOICE._serialized_end=75638 + _FLOWMETRICTAGVALUE_CHOICE_ENUM._serialized_start=75606 + _FLOWMETRICTAGVALUE_CHOICE_ENUM._serialized_end=75638 + _METRICTIMESTAMP._serialized_start=75659 + _METRICTIMESTAMP._serialized_end=75786 + _METRICLATENCY._serialized_start=75789 + _METRICLATENCY._serialized_end=75924 + _BGPV4METRICSREQUEST._serialized_start=75927 + _BGPV4METRICSREQUEST._serialized_end=76407 + _BGPV4METRICSREQUEST_COLUMNNAMES._serialized_start=76036 + _BGPV4METRICSREQUEST_COLUMNNAMES._serialized_end=76407 + _BGPV4METRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=76052 + _BGPV4METRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=76407 + _BGPV4METRIC._serialized_start=76410 + _BGPV4METRIC._serialized_end=77482 + _BGPV4METRIC_SESSIONSTATE._serialized_start=76979 + _BGPV4METRIC_SESSIONSTATE._serialized_end=77036 _BGPV4METRIC_SESSIONSTATE_ENUM._serialized_start=13484 _BGPV4METRIC_SESSIONSTATE_ENUM._serialized_end=13525 - _BGPV4METRIC_FSMSTATE._serialized_start=75968 - _BGPV4METRIC_FSMSTATE._serialized_end=76086 - _BGPV4METRIC_FSMSTATE_ENUM._serialized_start=75980 - _BGPV4METRIC_FSMSTATE_ENUM._serialized_end=76086 - _BGPV6METRICSREQUEST._serialized_start=76415 - _BGPV6METRICSREQUEST._serialized_end=76895 - _BGPV6METRICSREQUEST_COLUMNNAMES._serialized_start=74966 - _BGPV6METRICSREQUEST_COLUMNNAMES._serialized_end=75337 - _BGPV6METRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=74982 - _BGPV6METRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=75337 - _BGPV6METRIC._serialized_start=76898 - _BGPV6METRIC._serialized_end=77970 - _BGPV6METRIC_SESSIONSTATE._serialized_start=75909 - _BGPV6METRIC_SESSIONSTATE._serialized_end=75966 + _BGPV4METRIC_FSMSTATE._serialized_start=77038 + _BGPV4METRIC_FSMSTATE._serialized_end=77156 + _BGPV4METRIC_FSMSTATE_ENUM._serialized_start=77050 + _BGPV4METRIC_FSMSTATE_ENUM._serialized_end=77156 + _BGPV6METRICSREQUEST._serialized_start=77485 + _BGPV6METRICSREQUEST._serialized_end=77965 + _BGPV6METRICSREQUEST_COLUMNNAMES._serialized_start=76036 + _BGPV6METRICSREQUEST_COLUMNNAMES._serialized_end=76407 + _BGPV6METRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=76052 + _BGPV6METRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=76407 + _BGPV6METRIC._serialized_start=77968 + _BGPV6METRIC._serialized_end=79040 + _BGPV6METRIC_SESSIONSTATE._serialized_start=76979 + _BGPV6METRIC_SESSIONSTATE._serialized_end=77036 _BGPV6METRIC_SESSIONSTATE_ENUM._serialized_start=13484 _BGPV6METRIC_SESSIONSTATE_ENUM._serialized_end=13525 - _BGPV6METRIC_FSMSTATE._serialized_start=75968 - _BGPV6METRIC_FSMSTATE._serialized_end=76086 - _BGPV6METRIC_FSMSTATE_ENUM._serialized_start=75980 - _BGPV6METRIC_FSMSTATE_ENUM._serialized_end=76086 - _ISISMETRICSREQUEST._serialized_start=77973 - _ISISMETRICSREQUEST._serialized_end=78759 - _ISISMETRICSREQUEST_COLUMNNAMES._serialized_start=78082 - _ISISMETRICSREQUEST_COLUMNNAMES._serialized_end=78759 - _ISISMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=78098 - _ISISMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=78759 - _ISISMETRIC._serialized_start=78762 - _ISISMETRIC._serialized_end=80286 - _LAGMETRICSREQUEST._serialized_start=80289 - _LAGMETRICSREQUEST._serialized_end=80606 - _LAGMETRICSREQUEST_COLUMNNAMES._serialized_start=80393 - _LAGMETRICSREQUEST_COLUMNNAMES._serialized_end=80606 - _LAGMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=80409 - _LAGMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=80606 - _LAGMETRIC._serialized_start=80609 - _LAGMETRIC._serialized_end=81165 - _LAGMETRIC_OPERSTATUS._serialized_start=80937 - _LAGMETRIC_OPERSTATUS._serialized_end=80992 + _BGPV6METRIC_FSMSTATE._serialized_start=77038 + _BGPV6METRIC_FSMSTATE._serialized_end=77156 + _BGPV6METRIC_FSMSTATE_ENUM._serialized_start=77050 + _BGPV6METRIC_FSMSTATE_ENUM._serialized_end=77156 + _ISISMETRICSREQUEST._serialized_start=79043 + _ISISMETRICSREQUEST._serialized_end=79829 + _ISISMETRICSREQUEST_COLUMNNAMES._serialized_start=79152 + _ISISMETRICSREQUEST_COLUMNNAMES._serialized_end=79829 + _ISISMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=79168 + _ISISMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=79829 + _ISISMETRIC._serialized_start=79832 + _ISISMETRIC._serialized_end=81356 + _LAGMETRICSREQUEST._serialized_start=81359 + _LAGMETRICSREQUEST._serialized_end=81676 + _LAGMETRICSREQUEST_COLUMNNAMES._serialized_start=81463 + _LAGMETRICSREQUEST_COLUMNNAMES._serialized_end=81676 + _LAGMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=81479 + _LAGMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=81676 + _LAGMETRIC._serialized_start=81679 + _LAGMETRIC._serialized_end=82235 + _LAGMETRIC_OPERSTATUS._serialized_start=82007 + _LAGMETRIC_OPERSTATUS._serialized_end=82062 _LAGMETRIC_OPERSTATUS_ENUM._serialized_start=13484 _LAGMETRIC_OPERSTATUS_ENUM._serialized_end=13525 - _LACPMETRICSREQUEST._serialized_start=81168 - _LACPMETRICSREQUEST._serialized_end=81604 - _LACPMETRICSREQUEST_COLUMNNAMES._serialized_start=81305 - _LACPMETRICSREQUEST_COLUMNNAMES._serialized_end=81604 - _LACPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=81321 - _LACPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=81604 - _LACPMETRIC._serialized_start=81607 - _LACPMETRIC._serialized_end=82644 - _LACPMETRIC_ACTIVITY._serialized_start=82173 - _LACPMETRIC_ACTIVITY._serialized_end=82233 - _LACPMETRIC_ACTIVITY_ENUM._serialized_start=82185 - _LACPMETRIC_ACTIVITY_ENUM._serialized_end=82233 - _LACPMETRIC_TIMEOUT._serialized_start=82235 - _LACPMETRIC_TIMEOUT._serialized_end=82290 - _LACPMETRIC_TIMEOUT_ENUM._serialized_start=82246 - _LACPMETRIC_TIMEOUT_ENUM._serialized_end=82290 - _LACPMETRIC_SYNCHRONIZATION._serialized_start=82292 - _LACPMETRIC_SYNCHRONIZATION._serialized_end=82361 - _LACPMETRIC_SYNCHRONIZATION_ENUM._serialized_start=82311 - _LACPMETRIC_SYNCHRONIZATION_ENUM._serialized_end=82361 - _LLDPMETRICSREQUEST._serialized_start=82647 - _LLDPMETRICSREQUEST._serialized_end=82900 - _LLDPMETRICSREQUEST_COLUMNNAMES._serialized_start=82754 - _LLDPMETRICSREQUEST_COLUMNNAMES._serialized_end=82900 - _LLDPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=82770 - _LLDPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=82900 - _LLDPMETRIC._serialized_start=82903 - _LLDPMETRIC._serialized_end=83205 - _RSVPMETRICSREQUEST._serialized_start=83208 - _RSVPMETRICSREQUEST._serialized_end=83914 - _RSVPMETRICSREQUEST_COLUMNNAMES._serialized_start=83317 - _RSVPMETRICSREQUEST_COLUMNNAMES._serialized_end=83914 - _RSVPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=83333 - _RSVPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=83914 - _RSVPMETRIC._serialized_start=83917 - _RSVPMETRIC._serialized_end=85313 - _STATESREQUEST._serialized_start=85316 - _STATESREQUEST._serialized_end=85980 - _STATESREQUEST_CHOICE._serialized_start=85725 - _STATESREQUEST_CHOICE._serialized_end=85867 - _STATESREQUEST_CHOICE_ENUM._serialized_start=85736 - _STATESREQUEST_CHOICE_ENUM._serialized_end=85867 - _STATESRESPONSE._serialized_start=85983 - _STATESRESPONSE._serialized_end=86475 - _STATESRESPONSE_CHOICE._serialized_start=85725 - _STATESRESPONSE_CHOICE._serialized_end=85867 - _STATESRESPONSE_CHOICE_ENUM._serialized_start=85736 - _STATESRESPONSE_CHOICE_ENUM._serialized_end=85867 - _NEIGHBORSV4STATESREQUEST._serialized_start=86477 - _NEIGHBORSV4STATESREQUEST._serialized_end=86527 - _NEIGHBORSV4STATE._serialized_start=86529 - _NEIGHBORSV4STATE._serialized_end=86648 - _NEIGHBORSV6STATESREQUEST._serialized_start=86650 - _NEIGHBORSV6STATESREQUEST._serialized_end=86700 - _NEIGHBORSV6STATE._serialized_start=86702 - _NEIGHBORSV6STATE._serialized_end=86821 - _BGPPREFIXSTATEREQUEST._serialized_start=86824 - _BGPPREFIXSTATEREQUEST._serialized_end=87146 - _BGPPREFIXSTATEREQUEST_PREFIXFILTERS._serialized_start=87070 - _BGPPREFIXSTATEREQUEST_PREFIXFILTERS._serialized_end=87146 - _BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM._serialized_start=87087 - _BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM._serialized_end=87146 - _BGPPREFIXIPV4UNICASTFILTER._serialized_start=87149 - _BGPPREFIXIPV4UNICASTFILTER._serialized_end=87422 + _LACPMETRICSREQUEST._serialized_start=82238 + _LACPMETRICSREQUEST._serialized_end=82674 + _LACPMETRICSREQUEST_COLUMNNAMES._serialized_start=82375 + _LACPMETRICSREQUEST_COLUMNNAMES._serialized_end=82674 + _LACPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=82391 + _LACPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=82674 + _LACPMETRIC._serialized_start=82677 + _LACPMETRIC._serialized_end=83714 + _LACPMETRIC_ACTIVITY._serialized_start=83243 + _LACPMETRIC_ACTIVITY._serialized_end=83303 + _LACPMETRIC_ACTIVITY_ENUM._serialized_start=83255 + _LACPMETRIC_ACTIVITY_ENUM._serialized_end=83303 + _LACPMETRIC_TIMEOUT._serialized_start=83305 + _LACPMETRIC_TIMEOUT._serialized_end=83360 + _LACPMETRIC_TIMEOUT_ENUM._serialized_start=83316 + _LACPMETRIC_TIMEOUT_ENUM._serialized_end=83360 + _LACPMETRIC_SYNCHRONIZATION._serialized_start=83362 + _LACPMETRIC_SYNCHRONIZATION._serialized_end=83431 + _LACPMETRIC_SYNCHRONIZATION_ENUM._serialized_start=83381 + _LACPMETRIC_SYNCHRONIZATION_ENUM._serialized_end=83431 + _LLDPMETRICSREQUEST._serialized_start=83717 + _LLDPMETRICSREQUEST._serialized_end=83970 + _LLDPMETRICSREQUEST_COLUMNNAMES._serialized_start=83824 + _LLDPMETRICSREQUEST_COLUMNNAMES._serialized_end=83970 + _LLDPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=83840 + _LLDPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=83970 + _LLDPMETRIC._serialized_start=83973 + _LLDPMETRIC._serialized_end=84275 + _RSVPMETRICSREQUEST._serialized_start=84278 + _RSVPMETRICSREQUEST._serialized_end=84984 + _RSVPMETRICSREQUEST_COLUMNNAMES._serialized_start=84387 + _RSVPMETRICSREQUEST_COLUMNNAMES._serialized_end=84984 + _RSVPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_start=84403 + _RSVPMETRICSREQUEST_COLUMNNAMES_ENUM._serialized_end=84984 + _RSVPMETRIC._serialized_start=84987 + _RSVPMETRIC._serialized_end=86383 + _STATESREQUEST._serialized_start=86386 + _STATESREQUEST._serialized_end=87050 + _STATESREQUEST_CHOICE._serialized_start=86795 + _STATESREQUEST_CHOICE._serialized_end=86937 + _STATESREQUEST_CHOICE_ENUM._serialized_start=86806 + _STATESREQUEST_CHOICE_ENUM._serialized_end=86937 + _STATESRESPONSE._serialized_start=87053 + _STATESRESPONSE._serialized_end=87545 + _STATESRESPONSE_CHOICE._serialized_start=86795 + _STATESRESPONSE_CHOICE._serialized_end=86937 + _STATESRESPONSE_CHOICE_ENUM._serialized_start=86806 + _STATESRESPONSE_CHOICE_ENUM._serialized_end=86937 + _NEIGHBORSV4STATESREQUEST._serialized_start=87547 + _NEIGHBORSV4STATESREQUEST._serialized_end=87597 + _NEIGHBORSV4STATE._serialized_start=87599 + _NEIGHBORSV4STATE._serialized_end=87718 + _NEIGHBORSV6STATESREQUEST._serialized_start=87720 + _NEIGHBORSV6STATESREQUEST._serialized_end=87770 + _NEIGHBORSV6STATE._serialized_start=87772 + _NEIGHBORSV6STATE._serialized_end=87891 + _BGPPREFIXSTATEREQUEST._serialized_start=87894 + _BGPPREFIXSTATEREQUEST._serialized_end=88216 + _BGPPREFIXSTATEREQUEST_PREFIXFILTERS._serialized_start=88140 + _BGPPREFIXSTATEREQUEST_PREFIXFILTERS._serialized_end=88216 + _BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM._serialized_start=88157 + _BGPPREFIXSTATEREQUEST_PREFIXFILTERS_ENUM._serialized_end=88216 + _BGPPREFIXIPV4UNICASTFILTER._serialized_start=88219 + _BGPPREFIXIPV4UNICASTFILTER._serialized_end=88492 _BGPPREFIXIPV4UNICASTFILTER_ORIGIN._serialized_start=18498 _BGPPREFIXIPV4UNICASTFILTER_ORIGIN._serialized_end=18565 _BGPPREFIXIPV4UNICASTFILTER_ORIGIN_ENUM._serialized_start=18508 _BGPPREFIXIPV4UNICASTFILTER_ORIGIN_ENUM._serialized_end=18565 - _BGPPREFIXIPV6UNICASTFILTER._serialized_start=87425 - _BGPPREFIXIPV6UNICASTFILTER._serialized_end=87698 + _BGPPREFIXIPV6UNICASTFILTER._serialized_start=88495 + _BGPPREFIXIPV6UNICASTFILTER._serialized_end=88768 _BGPPREFIXIPV6UNICASTFILTER_ORIGIN._serialized_start=18498 _BGPPREFIXIPV6UNICASTFILTER_ORIGIN._serialized_end=18565 _BGPPREFIXIPV6UNICASTFILTER_ORIGIN_ENUM._serialized_start=18508 _BGPPREFIXIPV6UNICASTFILTER_ORIGIN_ENUM._serialized_end=18565 - _BGPPREFIXESSTATE._serialized_start=87701 - _BGPPREFIXESSTATE._serialized_end=87891 - _BGPPREFIXIPV4UNICASTSTATE._serialized_start=87894 - _BGPPREFIXIPV4UNICASTSTATE._serialized_end=88384 + _BGPPREFIXESSTATE._serialized_start=88771 + _BGPPREFIXESSTATE._serialized_end=88961 + _BGPPREFIXIPV4UNICASTSTATE._serialized_start=88964 + _BGPPREFIXIPV4UNICASTSTATE._serialized_end=89454 _BGPPREFIXIPV4UNICASTSTATE_ORIGIN._serialized_start=18498 _BGPPREFIXIPV4UNICASTSTATE_ORIGIN._serialized_end=18565 _BGPPREFIXIPV4UNICASTSTATE_ORIGIN_ENUM._serialized_start=18508 _BGPPREFIXIPV4UNICASTSTATE_ORIGIN_ENUM._serialized_end=18565 - _BGPPREFIXIPV6UNICASTSTATE._serialized_start=88387 - _BGPPREFIXIPV6UNICASTSTATE._serialized_end=88877 + _BGPPREFIXIPV6UNICASTSTATE._serialized_start=89457 + _BGPPREFIXIPV6UNICASTSTATE._serialized_end=89947 _BGPPREFIXIPV6UNICASTSTATE_ORIGIN._serialized_start=18498 _BGPPREFIXIPV6UNICASTSTATE_ORIGIN._serialized_end=18565 _BGPPREFIXIPV6UNICASTSTATE_ORIGIN_ENUM._serialized_start=18508 _BGPPREFIXIPV6UNICASTSTATE_ORIGIN_ENUM._serialized_end=18565 - _RESULTBGPCOMMUNITY._serialized_start=88880 - _RESULTBGPCOMMUNITY._serialized_end=89184 + _RESULTBGPCOMMUNITY._serialized_start=89950 + _RESULTBGPCOMMUNITY._serialized_end=90254 _RESULTBGPCOMMUNITY_TYPE._serialized_start=18827 _RESULTBGPCOMMUNITY_TYPE._serialized_end=18969 _RESULTBGPCOMMUNITY_TYPE_ENUM._serialized_start=18836 _RESULTBGPCOMMUNITY_TYPE_ENUM._serialized_end=18969 - _RESULTBGPASPATH._serialized_start=89186 - _RESULTBGPASPATH._serialized_end=89250 - _RESULTBGPASPATHSEGMENT._serialized_start=89253 - _RESULTBGPASPATHSEGMENT._serialized_end=89459 + _RESULTBGPASPATH._serialized_start=90256 + _RESULTBGPASPATH._serialized_end=90320 + _RESULTBGPASPATHSEGMENT._serialized_start=90323 + _RESULTBGPASPATHSEGMENT._serialized_end=90529 _RESULTBGPASPATHSEGMENT_TYPE._serialized_start=19930 _RESULTBGPASPATHSEGMENT_TYPE._serialized_end=20023 _RESULTBGPASPATHSEGMENT_TYPE_ENUM._serialized_start=19938 _RESULTBGPASPATHSEGMENT_TYPE_ENUM._serialized_end=20023 - _ISISLSPSSTATEREQUEST._serialized_start=89461 - _ISISLSPSSTATEREQUEST._serialized_end=89510 - _ISISLSPSSTATE._serialized_start=89512 - _ISISLSPSSTATE._serialized_end=89612 - _ISISLSPSTATE._serialized_start=89615 - _ISISLSPSTATE._serialized_end=90050 - _ISISLSPSTATE_PDUTYPE._serialized_start=89888 - _ISISLSPSTATE_PDUTYPE._serialized_end=89948 + _ISISLSPSSTATEREQUEST._serialized_start=90531 + _ISISLSPSSTATEREQUEST._serialized_end=90580 + _ISISLSPSSTATE._serialized_start=90582 + _ISISLSPSSTATE._serialized_end=90682 + _ISISLSPSTATE._serialized_start=90685 + _ISISLSPSTATE._serialized_end=91120 + _ISISLSPSTATE_PDUTYPE._serialized_start=90958 + _ISISLSPSTATE_PDUTYPE._serialized_end=91018 _ISISLSPSTATE_PDUTYPE_ENUM._serialized_start=9947 _ISISLSPSTATE_PDUTYPE_ENUM._serialized_end=9996 - _ISISLSPTLVS._serialized_start=90053 - _ISISLSPTLVS._serialized_end=90561 - _ISISLSPHOSTNAME._serialized_start=90563 - _ISISLSPHOSTNAME._serialized_end=90616 - _ISISLSPFLAGS._serialized_start=90619 - _ISISLSPFLAGS._serialized_end=90921 - _ISISLSPISREACHABILITYTLV._serialized_start=90923 - _ISISLSPISREACHABILITYTLV._serialized_end=90990 - _ISISLSPEXTENDEDISREACHABILITYTLV._serialized_start=90992 - _ISISLSPEXTENDEDISREACHABILITYTLV._serialized_end=91067 - _ISISLSPNEIGHBOR._serialized_start=91069 - _ISISLSPNEIGHBOR._serialized_end=91124 - _ISISLSPIPV4INTERNALREACHABILITYTLV._serialized_start=91126 - _ISISLSPIPV4INTERNALREACHABILITYTLV._serialized_end=91202 - _ISISLSPIPV4EXTERNALREACHABILITYTLV._serialized_start=91204 - _ISISLSPIPV4EXTERNALREACHABILITYTLV._serialized_end=91280 - _ISISLSPV4PREFIX._serialized_start=91283 - _ISISLSPV4PREFIX._serialized_end=91754 + _ISISLSPTLVS._serialized_start=91123 + _ISISLSPTLVS._serialized_end=91631 + _ISISLSPHOSTNAME._serialized_start=91633 + _ISISLSPHOSTNAME._serialized_end=91686 + _ISISLSPFLAGS._serialized_start=91689 + _ISISLSPFLAGS._serialized_end=91991 + _ISISLSPISREACHABILITYTLV._serialized_start=91993 + _ISISLSPISREACHABILITYTLV._serialized_end=92060 + _ISISLSPEXTENDEDISREACHABILITYTLV._serialized_start=92062 + _ISISLSPEXTENDEDISREACHABILITYTLV._serialized_end=92137 + _ISISLSPNEIGHBOR._serialized_start=92139 + _ISISLSPNEIGHBOR._serialized_end=92194 + _ISISLSPIPV4INTERNALREACHABILITYTLV._serialized_start=92196 + _ISISLSPIPV4INTERNALREACHABILITYTLV._serialized_end=92272 + _ISISLSPIPV4EXTERNALREACHABILITYTLV._serialized_start=92274 + _ISISLSPIPV4EXTERNALREACHABILITYTLV._serialized_end=92350 + _ISISLSPV4PREFIX._serialized_start=92353 + _ISISLSPV4PREFIX._serialized_end=92824 _ISISLSPV4PREFIX_REDISTRIBUTIONTYPE._serialized_start=13462 _ISISLSPV4PREFIX_REDISTRIBUTIONTYPE._serialized_end=13525 _ISISLSPV4PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_start=13484 @@ -9319,18 +10461,18 @@ _ISISLSPV4PREFIX_ORIGINTYPE._serialized_end=13460 _ISISLSPV4PREFIX_ORIGINTYPE_ENUM._serialized_start=13409 _ISISLSPV4PREFIX_ORIGINTYPE_ENUM._serialized_end=13460 - _ISISLSPEXTENDEDIPV4REACHABILITYTLV._serialized_start=91756 - _ISISLSPEXTENDEDIPV4REACHABILITYTLV._serialized_end=91840 - _ISISLSPEXTENDEDV4PREFIX._serialized_start=91843 - _ISISLSPEXTENDEDV4PREFIX._serialized_end=92251 + _ISISLSPEXTENDEDIPV4REACHABILITYTLV._serialized_start=92826 + _ISISLSPEXTENDEDIPV4REACHABILITYTLV._serialized_end=92910 + _ISISLSPEXTENDEDV4PREFIX._serialized_start=92913 + _ISISLSPEXTENDEDV4PREFIX._serialized_end=93321 _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE._serialized_start=13462 _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE._serialized_end=13525 _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_start=13484 _ISISLSPEXTENDEDV4PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_end=13525 - _ISISLSPIPV6REACHABILITYTLV._serialized_start=92253 - _ISISLSPIPV6REACHABILITYTLV._serialized_end=92321 - _ISISLSPV6PREFIX._serialized_start=92324 - _ISISLSPV6PREFIX._serialized_end=92863 + _ISISLSPIPV6REACHABILITYTLV._serialized_start=93323 + _ISISLSPIPV6REACHABILITYTLV._serialized_end=93391 + _ISISLSPV6PREFIX._serialized_start=93394 + _ISISLSPV6PREFIX._serialized_end=93933 _ISISLSPV6PREFIX_REDISTRIBUTIONTYPE._serialized_start=13462 _ISISLSPV6PREFIX_REDISTRIBUTIONTYPE._serialized_end=13525 _ISISLSPV6PREFIX_REDISTRIBUTIONTYPE_ENUM._serialized_start=13484 @@ -9339,1292 +10481,1564 @@ _ISISLSPV6PREFIX_ORIGINTYPE._serialized_end=13460 _ISISLSPV6PREFIX_ORIGINTYPE_ENUM._serialized_start=13409 _ISISLSPV6PREFIX_ORIGINTYPE_ENUM._serialized_end=13460 - _ISISLSPPREFIXATTRIBUTES._serialized_start=92865 - _ISISLSPPREFIXATTRIBUTES._serialized_end=92986 - _LLDPNEIGHBORSSTATEREQUEST._serialized_start=92988 - _LLDPNEIGHBORSSTATEREQUEST._serialized_end=93064 - _LLDPNEIGHBORSSTATE._serialized_start=93067 - _LLDPNEIGHBORSSTATE._serialized_end=94230 - _LLDPNEIGHBORSSTATE_CHASSISIDTYPE._serialized_start=93646 - _LLDPNEIGHBORSSTATE_CHASSISIDTYPE._serialized_end=93820 - _LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM._serialized_start=93664 - _LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM._serialized_end=93820 - _LLDPNEIGHBORSSTATE_PORTIDTYPE._serialized_start=93823 - _LLDPNEIGHBORSSTATE_PORTIDTYPE._serialized_end=93993 - _LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM._serialized_start=93838 - _LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM._serialized_end=93993 - _LLDPCUSTOMTLVSTATE._serialized_start=94233 - _LLDPCUSTOMTLVSTATE._serialized_end=94363 - _LLDPCAPABILITYSTATE._serialized_start=94366 - _LLDPCAPABILITYSTATE._serialized_end=94766 - _LLDPCAPABILITYSTATE_CAPABILITYNAME._serialized_start=94499 - _LLDPCAPABILITYSTATE_CAPABILITYNAME._serialized_end=94723 - _LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM._serialized_start=94518 - _LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM._serialized_end=94723 - _RSVPLSPSSTATEREQUEST._serialized_start=94768 - _RSVPLSPSSTATEREQUEST._serialized_end=94817 - _RSVPLSPSSTATE._serialized_start=94819 - _RSVPLSPSSTATE._serialized_end=94928 - _RSVPIPV4LSPSTATE._serialized_start=94931 - _RSVPIPV4LSPSTATE._serialized_end=95170 - _RSVPLSPSTATE._serialized_start=95173 - _RSVPLSPSTATE._serialized_end=95737 - _RSVPLSPSTATE_SESSIONSTATUS._serialized_start=95467 - _RSVPLSPSTATE_SESSIONSTATUS._serialized_end=95525 + _ISISLSPPREFIXATTRIBUTES._serialized_start=93935 + _ISISLSPPREFIXATTRIBUTES._serialized_end=94056 + _LLDPNEIGHBORSSTATEREQUEST._serialized_start=94058 + _LLDPNEIGHBORSSTATEREQUEST._serialized_end=94134 + _LLDPNEIGHBORSSTATE._serialized_start=94137 + _LLDPNEIGHBORSSTATE._serialized_end=95300 + _LLDPNEIGHBORSSTATE_CHASSISIDTYPE._serialized_start=94716 + _LLDPNEIGHBORSSTATE_CHASSISIDTYPE._serialized_end=94890 + _LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM._serialized_start=94734 + _LLDPNEIGHBORSSTATE_CHASSISIDTYPE_ENUM._serialized_end=94890 + _LLDPNEIGHBORSSTATE_PORTIDTYPE._serialized_start=94893 + _LLDPNEIGHBORSSTATE_PORTIDTYPE._serialized_end=95063 + _LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM._serialized_start=94908 + _LLDPNEIGHBORSSTATE_PORTIDTYPE_ENUM._serialized_end=95063 + _LLDPCUSTOMTLVSTATE._serialized_start=95303 + _LLDPCUSTOMTLVSTATE._serialized_end=95433 + _LLDPCAPABILITYSTATE._serialized_start=95436 + _LLDPCAPABILITYSTATE._serialized_end=95836 + _LLDPCAPABILITYSTATE_CAPABILITYNAME._serialized_start=95569 + _LLDPCAPABILITYSTATE_CAPABILITYNAME._serialized_end=95793 + _LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM._serialized_start=95588 + _LLDPCAPABILITYSTATE_CAPABILITYNAME_ENUM._serialized_end=95793 + _RSVPLSPSSTATEREQUEST._serialized_start=95838 + _RSVPLSPSSTATEREQUEST._serialized_end=95887 + _RSVPLSPSSTATE._serialized_start=95889 + _RSVPLSPSSTATE._serialized_end=95998 + _RSVPIPV4LSPSTATE._serialized_start=96001 + _RSVPIPV4LSPSTATE._serialized_end=96240 + _RSVPLSPSTATE._serialized_start=96243 + _RSVPLSPSTATE._serialized_end=96807 + _RSVPLSPSTATE_SESSIONSTATUS._serialized_start=96537 + _RSVPLSPSTATE_SESSIONSTATUS._serialized_end=96595 _RSVPLSPSTATE_SESSIONSTATUS_ENUM._serialized_start=13484 _RSVPLSPSTATE_SESSIONSTATUS_ENUM._serialized_end=13525 - _RSVPLSPSTATE_LASTFLAPREASON._serialized_start=95527 - _RSVPLSPSTATE_LASTFLAPREASON._serialized_end=95616 - _RSVPLSPSTATE_LASTFLAPREASON_ENUM._serialized_start=95545 - _RSVPLSPSTATE_LASTFLAPREASON_ENUM._serialized_end=95616 - _RSVPLSPIPV4RRO._serialized_start=95739 - _RSVPLSPIPV4RRO._serialized_end=95837 - _RSVPLSPIPV4ERO._serialized_start=95840 - _RSVPLSPIPV4ERO._serialized_end=96082 - _RSVPLSPIPV4ERO_TYPE._serialized_start=95947 - _RSVPLSPIPV4ERO_TYPE._serialized_end=96054 - _RSVPLSPIPV4ERO_TYPE_ENUM._serialized_start=95955 - _RSVPLSPIPV4ERO_TYPE_ENUM._serialized_end=96054 - _CAPTUREREQUEST._serialized_start=96084 - _CAPTUREREQUEST._serialized_end=96119 - _PATTERNFLOWETHERNETDSTCOUNTER._serialized_start=96121 - _PATTERNFLOWETHERNETDSTCOUNTER._serialized_end=96240 - _PATTERNFLOWETHERNETDST._serialized_start=96243 - _PATTERNFLOWETHERNETDST._serialized_end=96704 - _PATTERNFLOWETHERNETDST_CHOICE._serialized_start=96533 - _PATTERNFLOWETHERNETDST_CHOICE._serialized_end=96629 - _PATTERNFLOWETHERNETDST_CHOICE_ENUM._serialized_start=96543 - _PATTERNFLOWETHERNETDST_CHOICE_ENUM._serialized_end=96629 - _PATTERNFLOWETHERNETSRCCOUNTER._serialized_start=96706 - _PATTERNFLOWETHERNETSRCCOUNTER._serialized_end=96825 - _PATTERNFLOWETHERNETSRC._serialized_start=96828 - _PATTERNFLOWETHERNETSRC._serialized_end=97251 - _PATTERNFLOWETHERNETSRC_CHOICE._serialized_start=97099 - _PATTERNFLOWETHERNETSRC_CHOICE._serialized_end=97185 - _PATTERNFLOWETHERNETSRC_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWETHERNETSRC_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWETHERNETETHERTYPECOUNTER._serialized_start=97253 - _PATTERNFLOWETHERNETETHERTYPECOUNTER._serialized_end=97378 - _PATTERNFLOWETHERNETETHERTYPE._serialized_start=97381 - _PATTERNFLOWETHERNETETHERTYPE._serialized_end=97866 - _PATTERNFLOWETHERNETETHERTYPE_CHOICE._serialized_start=96533 - _PATTERNFLOWETHERNETETHERTYPE_CHOICE._serialized_end=96629 - _PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM._serialized_start=96543 - _PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM._serialized_end=96629 - _PATTERNFLOWETHERNETPFCQUEUECOUNTER._serialized_start=97868 - _PATTERNFLOWETHERNETPFCQUEUECOUNTER._serialized_end=97992 - _PATTERNFLOWETHERNETPFCQUEUE._serialized_start=97995 - _PATTERNFLOWETHERNETPFCQUEUE._serialized_end=98438 - _PATTERNFLOWETHERNETPFCQUEUE_CHOICE._serialized_start=97099 - _PATTERNFLOWETHERNETPFCQUEUE_CHOICE._serialized_end=97185 - _PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWVLANPRIORITYCOUNTER._serialized_start=98440 - _PATTERNFLOWVLANPRIORITYCOUNTER._serialized_end=98560 - _PATTERNFLOWVLANPRIORITY._serialized_start=98563 - _PATTERNFLOWVLANPRIORITY._serialized_end=98990 - _PATTERNFLOWVLANPRIORITY_CHOICE._serialized_start=97099 - _PATTERNFLOWVLANPRIORITY_CHOICE._serialized_end=97185 - _PATTERNFLOWVLANPRIORITY_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWVLANPRIORITY_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWVLANCFICOUNTER._serialized_start=98992 - _PATTERNFLOWVLANCFICOUNTER._serialized_end=99107 - _PATTERNFLOWVLANCFI._serialized_start=99110 - _PATTERNFLOWVLANCFI._serialized_end=99517 - _PATTERNFLOWVLANCFI_CHOICE._serialized_start=97099 - _PATTERNFLOWVLANCFI_CHOICE._serialized_end=97185 - _PATTERNFLOWVLANCFI_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWVLANCFI_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWVLANIDCOUNTER._serialized_start=99519 - _PATTERNFLOWVLANIDCOUNTER._serialized_end=99633 - _PATTERNFLOWVLANID._serialized_start=99636 - _PATTERNFLOWVLANID._serialized_end=100039 - _PATTERNFLOWVLANID_CHOICE._serialized_start=97099 - _PATTERNFLOWVLANID_CHOICE._serialized_end=97185 - _PATTERNFLOWVLANID_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWVLANID_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWVLANTPIDCOUNTER._serialized_start=100041 - _PATTERNFLOWVLANTPIDCOUNTER._serialized_end=100157 - _PATTERNFLOWVLANTPID._serialized_start=100160 - _PATTERNFLOWVLANTPID._serialized_end=100571 - _PATTERNFLOWVLANTPID_CHOICE._serialized_start=97099 - _PATTERNFLOWVLANTPID_CHOICE._serialized_end=97185 - _PATTERNFLOWVLANTPID_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWVLANTPID_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWVXLANFLAGSCOUNTER._serialized_start=100573 - _PATTERNFLOWVXLANFLAGSCOUNTER._serialized_end=100691 - _PATTERNFLOWVXLANFLAGS._serialized_start=100694 - _PATTERNFLOWVXLANFLAGS._serialized_end=101113 - _PATTERNFLOWVXLANFLAGS_CHOICE._serialized_start=97099 - _PATTERNFLOWVXLANFLAGS_CHOICE._serialized_end=97185 - _PATTERNFLOWVXLANFLAGS_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWVXLANFLAGS_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWVXLANRESERVED0COUNTER._serialized_start=101115 - _PATTERNFLOWVXLANRESERVED0COUNTER._serialized_end=101237 - _PATTERNFLOWVXLANRESERVED0._serialized_start=101240 - _PATTERNFLOWVXLANRESERVED0._serialized_end=101675 - _PATTERNFLOWVXLANRESERVED0_CHOICE._serialized_start=97099 - _PATTERNFLOWVXLANRESERVED0_CHOICE._serialized_end=97185 - _PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWVXLANVNICOUNTER._serialized_start=101677 - _PATTERNFLOWVXLANVNICOUNTER._serialized_end=101793 - _PATTERNFLOWVXLANVNI._serialized_start=101796 - _PATTERNFLOWVXLANVNI._serialized_end=102245 - _PATTERNFLOWVXLANVNI_CHOICE._serialized_start=96533 - _PATTERNFLOWVXLANVNI_CHOICE._serialized_end=96629 - _PATTERNFLOWVXLANVNI_CHOICE_ENUM._serialized_start=96543 - _PATTERNFLOWVXLANVNI_CHOICE_ENUM._serialized_end=96629 - _PATTERNFLOWVXLANRESERVED1COUNTER._serialized_start=102247 - _PATTERNFLOWVXLANRESERVED1COUNTER._serialized_end=102369 - _PATTERNFLOWVXLANRESERVED1._serialized_start=102372 - _PATTERNFLOWVXLANRESERVED1._serialized_end=102807 - _PATTERNFLOWVXLANRESERVED1_CHOICE._serialized_start=97099 - _PATTERNFLOWVXLANRESERVED1_CHOICE._serialized_end=97185 - _PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV4VERSIONCOUNTER._serialized_start=102809 - _PATTERNFLOWIPV4VERSIONCOUNTER._serialized_end=102928 - _PATTERNFLOWIPV4VERSION._serialized_start=102931 - _PATTERNFLOWIPV4VERSION._serialized_end=103354 - _PATTERNFLOWIPV4VERSION_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV4VERSION_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV4VERSION_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV4VERSION_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV4HEADERLENGTHCOUNTER._serialized_start=103356 - _PATTERNFLOWIPV4HEADERLENGTHCOUNTER._serialized_end=103480 - _PATTERNFLOWIPV4HEADERLENGTH._serialized_start=103483 - _PATTERNFLOWIPV4HEADERLENGTH._serialized_end=103964 - _PATTERNFLOWIPV4HEADERLENGTH_CHOICE._serialized_start=96533 - _PATTERNFLOWIPV4HEADERLENGTH_CHOICE._serialized_end=96629 - _PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM._serialized_start=96543 - _PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM._serialized_end=96629 - _PATTERNFLOWIPV4TOTALLENGTHCOUNTER._serialized_start=103966 - _PATTERNFLOWIPV4TOTALLENGTHCOUNTER._serialized_end=104089 - _PATTERNFLOWIPV4TOTALLENGTH._serialized_start=104092 - _PATTERNFLOWIPV4TOTALLENGTH._serialized_end=104569 - _PATTERNFLOWIPV4TOTALLENGTH_CHOICE._serialized_start=96533 - _PATTERNFLOWIPV4TOTALLENGTH_CHOICE._serialized_end=96629 - _PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM._serialized_start=96543 - _PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM._serialized_end=96629 - _PATTERNFLOWIPV4IDENTIFICATIONCOUNTER._serialized_start=104571 - _PATTERNFLOWIPV4IDENTIFICATIONCOUNTER._serialized_end=104697 - _PATTERNFLOWIPV4IDENTIFICATION._serialized_start=104700 - _PATTERNFLOWIPV4IDENTIFICATION._serialized_end=105151 - _PATTERNFLOWIPV4IDENTIFICATION_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV4IDENTIFICATION_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV4RESERVEDCOUNTER._serialized_start=105153 - _PATTERNFLOWIPV4RESERVEDCOUNTER._serialized_end=105273 - _PATTERNFLOWIPV4RESERVED._serialized_start=105276 - _PATTERNFLOWIPV4RESERVED._serialized_end=105703 - _PATTERNFLOWIPV4RESERVED_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV4RESERVED_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV4RESERVED_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV4RESERVED_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV4DONTFRAGMENTCOUNTER._serialized_start=105705 - _PATTERNFLOWIPV4DONTFRAGMENTCOUNTER._serialized_end=105829 - _PATTERNFLOWIPV4DONTFRAGMENT._serialized_start=105832 - _PATTERNFLOWIPV4DONTFRAGMENT._serialized_end=106275 - _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER._serialized_start=106277 - _PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER._serialized_end=106402 - _PATTERNFLOWIPV4MOREFRAGMENTS._serialized_start=106405 - _PATTERNFLOWIPV4MOREFRAGMENTS._serialized_end=106852 - _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER._serialized_start=106854 - _PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER._serialized_end=106980 - _PATTERNFLOWIPV4FRAGMENTOFFSET._serialized_start=106983 - _PATTERNFLOWIPV4FRAGMENTOFFSET._serialized_end=107434 - _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV4TIMETOLIVECOUNTER._serialized_start=107436 - _PATTERNFLOWIPV4TIMETOLIVECOUNTER._serialized_end=107558 - _PATTERNFLOWIPV4TIMETOLIVE._serialized_start=107561 - _PATTERNFLOWIPV4TIMETOLIVE._serialized_end=107996 - _PATTERNFLOWIPV4TIMETOLIVE_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV4TIMETOLIVE_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV4PROTOCOLCOUNTER._serialized_start=107998 - _PATTERNFLOWIPV4PROTOCOLCOUNTER._serialized_end=108118 - _PATTERNFLOWIPV4PROTOCOL._serialized_start=108121 - _PATTERNFLOWIPV4PROTOCOL._serialized_end=108586 - _PATTERNFLOWIPV4PROTOCOL_CHOICE._serialized_start=96533 - _PATTERNFLOWIPV4PROTOCOL_CHOICE._serialized_end=96629 - _PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM._serialized_start=96543 - _PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM._serialized_end=96629 - _PATTERNFLOWIPV4HEADERCHECKSUM._serialized_start=108589 - _PATTERNFLOWIPV4HEADERCHECKSUM._serialized_end=108940 - _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE._serialized_start=108787 - _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE._serialized_end=108847 - _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM._serialized_start=108797 - _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM._serialized_end=108847 - _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED._serialized_start=108849 - _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED._serialized_end=108904 - _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM._serialized_start=108862 - _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM._serialized_end=108904 - _PATTERNFLOWIPV4SRCCOUNTER._serialized_start=108942 - _PATTERNFLOWIPV4SRCCOUNTER._serialized_end=109057 - _PATTERNFLOWIPV4SRC._serialized_start=109060 - _PATTERNFLOWIPV4SRC._serialized_end=109467 - _PATTERNFLOWIPV4SRC_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV4SRC_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV4SRC_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV4SRC_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV4DSTCOUNTER._serialized_start=109469 - _PATTERNFLOWIPV4DSTCOUNTER._serialized_end=109584 - _PATTERNFLOWIPV4DST._serialized_start=109587 - _PATTERNFLOWIPV4DST._serialized_end=109994 - _PATTERNFLOWIPV4DST_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV4DST_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV4DST_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV4DST_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV4PRIORITYRAWCOUNTER._serialized_start=109996 - _PATTERNFLOWIPV4PRIORITYRAWCOUNTER._serialized_end=110119 - _PATTERNFLOWIPV4PRIORITYRAW._serialized_start=110122 - _PATTERNFLOWIPV4PRIORITYRAW._serialized_end=110561 - _PATTERNFLOWIPV4PRIORITYRAW_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV4PRIORITYRAW_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV4DSCPPHBCOUNTER._serialized_start=110563 - _PATTERNFLOWIPV4DSCPPHBCOUNTER._serialized_end=110682 - _PATTERNFLOWIPV4DSCPPHB._serialized_start=110685 - _PATTERNFLOWIPV4DSCPPHB._serialized_end=111108 - _PATTERNFLOWIPV4DSCPPHB_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV4DSCPPHB_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV4DSCPECNCOUNTER._serialized_start=111110 - _PATTERNFLOWIPV4DSCPECNCOUNTER._serialized_end=111229 - _PATTERNFLOWIPV4DSCPECN._serialized_start=111232 - _PATTERNFLOWIPV4DSCPECN._serialized_end=111655 - _PATTERNFLOWIPV4DSCPECN_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV4DSCPECN_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV4TOSPRECEDENCECOUNTER._serialized_start=111657 - _PATTERNFLOWIPV4TOSPRECEDENCECOUNTER._serialized_end=111782 - _PATTERNFLOWIPV4TOSPRECEDENCE._serialized_start=111785 - _PATTERNFLOWIPV4TOSPRECEDENCE._serialized_end=112232 - _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV4TOSDELAYCOUNTER._serialized_start=112234 - _PATTERNFLOWIPV4TOSDELAYCOUNTER._serialized_end=112354 - _PATTERNFLOWIPV4TOSDELAY._serialized_start=112357 - _PATTERNFLOWIPV4TOSDELAY._serialized_end=112784 - _PATTERNFLOWIPV4TOSDELAY_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV4TOSDELAY_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER._serialized_start=112786 - _PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER._serialized_end=112911 - _PATTERNFLOWIPV4TOSTHROUGHPUT._serialized_start=112914 - _PATTERNFLOWIPV4TOSTHROUGHPUT._serialized_end=113361 - _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV4TOSRELIABILITYCOUNTER._serialized_start=113363 - _PATTERNFLOWIPV4TOSRELIABILITYCOUNTER._serialized_end=113489 - _PATTERNFLOWIPV4TOSRELIABILITY._serialized_start=113492 - _PATTERNFLOWIPV4TOSRELIABILITY._serialized_end=113943 - _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV4TOSMONETARYCOUNTER._serialized_start=113945 - _PATTERNFLOWIPV4TOSMONETARYCOUNTER._serialized_end=114068 - _PATTERNFLOWIPV4TOSMONETARY._serialized_start=114071 - _PATTERNFLOWIPV4TOSMONETARY._serialized_end=114510 - _PATTERNFLOWIPV4TOSMONETARY_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV4TOSMONETARY_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV4TOSUNUSEDCOUNTER._serialized_start=114512 - _PATTERNFLOWIPV4TOSUNUSEDCOUNTER._serialized_end=114633 - _PATTERNFLOWIPV4TOSUNUSED._serialized_start=114636 - _PATTERNFLOWIPV4TOSUNUSED._serialized_end=115067 - _PATTERNFLOWIPV4TOSUNUSED_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV4TOSUNUSED_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV6VERSIONCOUNTER._serialized_start=115069 - _PATTERNFLOWIPV6VERSIONCOUNTER._serialized_end=115188 - _PATTERNFLOWIPV6VERSION._serialized_start=115191 - _PATTERNFLOWIPV6VERSION._serialized_end=115614 - _PATTERNFLOWIPV6VERSION_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV6VERSION_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV6VERSION_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV6VERSION_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV6TRAFFICCLASSCOUNTER._serialized_start=115616 - _PATTERNFLOWIPV6TRAFFICCLASSCOUNTER._serialized_end=115740 - _PATTERNFLOWIPV6TRAFFICCLASS._serialized_start=115743 - _PATTERNFLOWIPV6TRAFFICCLASS._serialized_end=116186 - _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV6FLOWLABELCOUNTER._serialized_start=116188 - _PATTERNFLOWIPV6FLOWLABELCOUNTER._serialized_end=116309 - _PATTERNFLOWIPV6FLOWLABEL._serialized_start=116312 - _PATTERNFLOWIPV6FLOWLABEL._serialized_end=116743 - _PATTERNFLOWIPV6FLOWLABEL_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV6FLOWLABEL_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER._serialized_start=116745 - _PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER._serialized_end=116870 - _PATTERNFLOWIPV6PAYLOADLENGTH._serialized_start=116873 - _PATTERNFLOWIPV6PAYLOADLENGTH._serialized_end=117358 - _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE._serialized_start=96533 - _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE._serialized_end=96629 - _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM._serialized_start=96543 - _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM._serialized_end=96629 - _PATTERNFLOWIPV6NEXTHEADERCOUNTER._serialized_start=117360 - _PATTERNFLOWIPV6NEXTHEADERCOUNTER._serialized_end=117482 - _PATTERNFLOWIPV6NEXTHEADER._serialized_start=117485 - _PATTERNFLOWIPV6NEXTHEADER._serialized_end=117958 - _PATTERNFLOWIPV6NEXTHEADER_CHOICE._serialized_start=96533 - _PATTERNFLOWIPV6NEXTHEADER_CHOICE._serialized_end=96629 - _PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM._serialized_start=96543 - _PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM._serialized_end=96629 - _PATTERNFLOWIPV6HOPLIMITCOUNTER._serialized_start=117960 - _PATTERNFLOWIPV6HOPLIMITCOUNTER._serialized_end=118080 - _PATTERNFLOWIPV6HOPLIMIT._serialized_start=118083 - _PATTERNFLOWIPV6HOPLIMIT._serialized_end=118510 - _PATTERNFLOWIPV6HOPLIMIT_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV6HOPLIMIT_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV6SRCCOUNTER._serialized_start=118512 - _PATTERNFLOWIPV6SRCCOUNTER._serialized_end=118627 - _PATTERNFLOWIPV6SRC._serialized_start=118630 - _PATTERNFLOWIPV6SRC._serialized_end=119037 - _PATTERNFLOWIPV6SRC_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV6SRC_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV6SRC_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV6SRC_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIPV6DSTCOUNTER._serialized_start=119039 - _PATTERNFLOWIPV6DSTCOUNTER._serialized_end=119154 - _PATTERNFLOWIPV6DST._serialized_start=119157 - _PATTERNFLOWIPV6DST._serialized_end=119564 - _PATTERNFLOWIPV6DST_CHOICE._serialized_start=97099 - _PATTERNFLOWIPV6DST_CHOICE._serialized_end=97185 - _PATTERNFLOWIPV6DST_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIPV6DST_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWPFCPAUSEDSTCOUNTER._serialized_start=119566 - _PATTERNFLOWPFCPAUSEDSTCOUNTER._serialized_end=119685 - _PATTERNFLOWPFCPAUSEDST._serialized_start=119688 - _PATTERNFLOWPFCPAUSEDST._serialized_end=120111 - _PATTERNFLOWPFCPAUSEDST_CHOICE._serialized_start=97099 - _PATTERNFLOWPFCPAUSEDST_CHOICE._serialized_end=97185 - _PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWPFCPAUSESRCCOUNTER._serialized_start=120113 - _PATTERNFLOWPFCPAUSESRCCOUNTER._serialized_end=120232 - _PATTERNFLOWPFCPAUSESRC._serialized_start=120235 - _PATTERNFLOWPFCPAUSESRC._serialized_end=120658 - _PATTERNFLOWPFCPAUSESRC_CHOICE._serialized_start=97099 - _PATTERNFLOWPFCPAUSESRC_CHOICE._serialized_end=97185 - _PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWPFCPAUSEETHERTYPECOUNTER._serialized_start=120660 - _PATTERNFLOWPFCPAUSEETHERTYPECOUNTER._serialized_end=120785 - _PATTERNFLOWPFCPAUSEETHERTYPE._serialized_start=120788 - _PATTERNFLOWPFCPAUSEETHERTYPE._serialized_end=121235 - _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE._serialized_start=97099 - _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE._serialized_end=97185 - _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER._serialized_start=121238 - _PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER._serialized_end=121367 - _PATTERNFLOWPFCPAUSECONTROLOPCODE._serialized_start=121370 - _PATTERNFLOWPFCPAUSECONTROLOPCODE._serialized_end=121833 - _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE._serialized_start=97099 - _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE._serialized_end=97185 - _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER._serialized_start=121836 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER._serialized_end=121969 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR._serialized_start=121972 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR._serialized_end=122451 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE._serialized_start=97099 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE._serialized_end=97185 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER._serialized_start=122453 - _PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER._serialized_end=122580 - _PATTERNFLOWPFCPAUSEPAUSECLASS0._serialized_start=122583 - _PATTERNFLOWPFCPAUSEPAUSECLASS0._serialized_end=123038 - _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE._serialized_start=97099 - _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE._serialized_end=97185 - _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER._serialized_start=123040 - _PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER._serialized_end=123167 - _PATTERNFLOWPFCPAUSEPAUSECLASS1._serialized_start=123170 - _PATTERNFLOWPFCPAUSEPAUSECLASS1._serialized_end=123625 - _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE._serialized_start=97099 - _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE._serialized_end=97185 - _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER._serialized_start=123627 - _PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER._serialized_end=123754 - _PATTERNFLOWPFCPAUSEPAUSECLASS2._serialized_start=123757 - _PATTERNFLOWPFCPAUSEPAUSECLASS2._serialized_end=124212 - _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE._serialized_start=97099 - _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE._serialized_end=97185 - _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER._serialized_start=124214 - _PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER._serialized_end=124341 - _PATTERNFLOWPFCPAUSEPAUSECLASS3._serialized_start=124344 - _PATTERNFLOWPFCPAUSEPAUSECLASS3._serialized_end=124799 - _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE._serialized_start=97099 - _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE._serialized_end=97185 - _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER._serialized_start=124801 - _PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER._serialized_end=124928 - _PATTERNFLOWPFCPAUSEPAUSECLASS4._serialized_start=124931 - _PATTERNFLOWPFCPAUSEPAUSECLASS4._serialized_end=125386 - _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE._serialized_start=97099 - _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE._serialized_end=97185 - _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER._serialized_start=125388 - _PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER._serialized_end=125515 - _PATTERNFLOWPFCPAUSEPAUSECLASS5._serialized_start=125518 - _PATTERNFLOWPFCPAUSEPAUSECLASS5._serialized_end=125973 - _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE._serialized_start=97099 - _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE._serialized_end=97185 - _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER._serialized_start=125975 - _PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER._serialized_end=126102 - _PATTERNFLOWPFCPAUSEPAUSECLASS6._serialized_start=126105 - _PATTERNFLOWPFCPAUSEPAUSECLASS6._serialized_end=126560 - _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE._serialized_start=97099 - _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE._serialized_end=97185 - _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER._serialized_start=126562 - _PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER._serialized_end=126689 - _PATTERNFLOWPFCPAUSEPAUSECLASS7._serialized_start=126692 - _PATTERNFLOWPFCPAUSEPAUSECLASS7._serialized_end=127147 - _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE._serialized_start=97099 - _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE._serialized_end=97185 - _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWETHERNETPAUSEDSTCOUNTER._serialized_start=127149 - _PATTERNFLOWETHERNETPAUSEDSTCOUNTER._serialized_end=127273 - _PATTERNFLOWETHERNETPAUSEDST._serialized_start=127276 - _PATTERNFLOWETHERNETPAUSEDST._serialized_end=127719 - _PATTERNFLOWETHERNETPAUSEDST_CHOICE._serialized_start=97099 - _PATTERNFLOWETHERNETPAUSEDST_CHOICE._serialized_end=97185 - _PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWETHERNETPAUSESRCCOUNTER._serialized_start=127721 - _PATTERNFLOWETHERNETPAUSESRCCOUNTER._serialized_end=127845 - _PATTERNFLOWETHERNETPAUSESRC._serialized_start=127848 - _PATTERNFLOWETHERNETPAUSESRC._serialized_end=128291 - _PATTERNFLOWETHERNETPAUSESRC_CHOICE._serialized_start=97099 - _PATTERNFLOWETHERNETPAUSESRC_CHOICE._serialized_end=97185 - _PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER._serialized_start=128294 - _PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER._serialized_end=128424 - _PATTERNFLOWETHERNETPAUSEETHERTYPE._serialized_start=128427 - _PATTERNFLOWETHERNETPAUSEETHERTYPE._serialized_end=128894 - _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE._serialized_start=97099 - _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE._serialized_end=97185 - _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER._serialized_start=128897 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER._serialized_end=129031 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE._serialized_start=129034 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE._serialized_end=129517 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE._serialized_start=97099 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE._serialized_end=97185 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWETHERNETPAUSETIMECOUNTER._serialized_start=129519 - _PATTERNFLOWETHERNETPAUSETIMECOUNTER._serialized_end=129644 - _PATTERNFLOWETHERNETPAUSETIME._serialized_start=129647 - _PATTERNFLOWETHERNETPAUSETIME._serialized_end=130094 - _PATTERNFLOWETHERNETPAUSETIME_CHOICE._serialized_start=97099 - _PATTERNFLOWETHERNETPAUSETIME_CHOICE._serialized_end=97185 - _PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWTCPSRCPORTCOUNTER._serialized_start=130096 - _PATTERNFLOWTCPSRCPORTCOUNTER._serialized_end=130214 - _PATTERNFLOWTCPSRCPORT._serialized_start=130217 - _PATTERNFLOWTCPSRCPORT._serialized_end=130636 - _PATTERNFLOWTCPSRCPORT_CHOICE._serialized_start=97099 - _PATTERNFLOWTCPSRCPORT_CHOICE._serialized_end=97185 - _PATTERNFLOWTCPSRCPORT_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWTCPSRCPORT_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWTCPDSTPORTCOUNTER._serialized_start=130638 - _PATTERNFLOWTCPDSTPORTCOUNTER._serialized_end=130756 - _PATTERNFLOWTCPDSTPORT._serialized_start=130759 - _PATTERNFLOWTCPDSTPORT._serialized_end=131178 - _PATTERNFLOWTCPDSTPORT_CHOICE._serialized_start=97099 - _PATTERNFLOWTCPDSTPORT_CHOICE._serialized_end=97185 - _PATTERNFLOWTCPDSTPORT_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWTCPDSTPORT_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWTCPSEQNUMCOUNTER._serialized_start=131180 - _PATTERNFLOWTCPSEQNUMCOUNTER._serialized_end=131297 - _PATTERNFLOWTCPSEQNUM._serialized_start=131300 - _PATTERNFLOWTCPSEQNUM._serialized_end=131715 - _PATTERNFLOWTCPSEQNUM_CHOICE._serialized_start=97099 - _PATTERNFLOWTCPSEQNUM_CHOICE._serialized_end=97185 - _PATTERNFLOWTCPSEQNUM_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWTCPSEQNUM_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWTCPACKNUMCOUNTER._serialized_start=131717 - _PATTERNFLOWTCPACKNUMCOUNTER._serialized_end=131834 - _PATTERNFLOWTCPACKNUM._serialized_start=131837 - _PATTERNFLOWTCPACKNUM._serialized_end=132252 - _PATTERNFLOWTCPACKNUM_CHOICE._serialized_start=97099 - _PATTERNFLOWTCPACKNUM_CHOICE._serialized_end=97185 - _PATTERNFLOWTCPACKNUM_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWTCPACKNUM_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWTCPDATAOFFSETCOUNTER._serialized_start=132254 - _PATTERNFLOWTCPDATAOFFSETCOUNTER._serialized_end=132375 - _PATTERNFLOWTCPDATAOFFSET._serialized_start=132378 - _PATTERNFLOWTCPDATAOFFSET._serialized_end=132809 - _PATTERNFLOWTCPDATAOFFSET_CHOICE._serialized_start=97099 - _PATTERNFLOWTCPDATAOFFSET_CHOICE._serialized_end=97185 - _PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWTCPECNNSCOUNTER._serialized_start=132811 - _PATTERNFLOWTCPECNNSCOUNTER._serialized_end=132927 - _PATTERNFLOWTCPECNNS._serialized_start=132930 - _PATTERNFLOWTCPECNNS._serialized_end=133341 - _PATTERNFLOWTCPECNNS_CHOICE._serialized_start=97099 - _PATTERNFLOWTCPECNNS_CHOICE._serialized_end=97185 - _PATTERNFLOWTCPECNNS_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWTCPECNNS_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWTCPECNCWRCOUNTER._serialized_start=133343 - _PATTERNFLOWTCPECNCWRCOUNTER._serialized_end=133460 - _PATTERNFLOWTCPECNCWR._serialized_start=133463 - _PATTERNFLOWTCPECNCWR._serialized_end=133878 - _PATTERNFLOWTCPECNCWR_CHOICE._serialized_start=97099 - _PATTERNFLOWTCPECNCWR_CHOICE._serialized_end=97185 - _PATTERNFLOWTCPECNCWR_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWTCPECNCWR_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWTCPECNECHOCOUNTER._serialized_start=133880 - _PATTERNFLOWTCPECNECHOCOUNTER._serialized_end=133998 - _PATTERNFLOWTCPECNECHO._serialized_start=134001 - _PATTERNFLOWTCPECNECHO._serialized_end=134420 - _PATTERNFLOWTCPECNECHO_CHOICE._serialized_start=97099 - _PATTERNFLOWTCPECNECHO_CHOICE._serialized_end=97185 - _PATTERNFLOWTCPECNECHO_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWTCPECNECHO_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWTCPCTLURGCOUNTER._serialized_start=134422 - _PATTERNFLOWTCPCTLURGCOUNTER._serialized_end=134539 - _PATTERNFLOWTCPCTLURG._serialized_start=134542 - _PATTERNFLOWTCPCTLURG._serialized_end=134957 - _PATTERNFLOWTCPCTLURG_CHOICE._serialized_start=97099 - _PATTERNFLOWTCPCTLURG_CHOICE._serialized_end=97185 - _PATTERNFLOWTCPCTLURG_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWTCPCTLURG_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWTCPCTLACKCOUNTER._serialized_start=134959 - _PATTERNFLOWTCPCTLACKCOUNTER._serialized_end=135076 - _PATTERNFLOWTCPCTLACK._serialized_start=135079 - _PATTERNFLOWTCPCTLACK._serialized_end=135494 - _PATTERNFLOWTCPCTLACK_CHOICE._serialized_start=97099 - _PATTERNFLOWTCPCTLACK_CHOICE._serialized_end=97185 - _PATTERNFLOWTCPCTLACK_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWTCPCTLACK_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWTCPCTLPSHCOUNTER._serialized_start=135496 - _PATTERNFLOWTCPCTLPSHCOUNTER._serialized_end=135613 - _PATTERNFLOWTCPCTLPSH._serialized_start=135616 - _PATTERNFLOWTCPCTLPSH._serialized_end=136031 - _PATTERNFLOWTCPCTLPSH_CHOICE._serialized_start=97099 - _PATTERNFLOWTCPCTLPSH_CHOICE._serialized_end=97185 - _PATTERNFLOWTCPCTLPSH_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWTCPCTLPSH_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWTCPCTLRSTCOUNTER._serialized_start=136033 - _PATTERNFLOWTCPCTLRSTCOUNTER._serialized_end=136150 - _PATTERNFLOWTCPCTLRST._serialized_start=136153 - _PATTERNFLOWTCPCTLRST._serialized_end=136568 - _PATTERNFLOWTCPCTLRST_CHOICE._serialized_start=97099 - _PATTERNFLOWTCPCTLRST_CHOICE._serialized_end=97185 - _PATTERNFLOWTCPCTLRST_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWTCPCTLRST_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWTCPCTLSYNCOUNTER._serialized_start=136570 - _PATTERNFLOWTCPCTLSYNCOUNTER._serialized_end=136687 - _PATTERNFLOWTCPCTLSYN._serialized_start=136690 - _PATTERNFLOWTCPCTLSYN._serialized_end=137105 - _PATTERNFLOWTCPCTLSYN_CHOICE._serialized_start=97099 - _PATTERNFLOWTCPCTLSYN_CHOICE._serialized_end=97185 - _PATTERNFLOWTCPCTLSYN_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWTCPCTLSYN_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWTCPCTLFINCOUNTER._serialized_start=137107 - _PATTERNFLOWTCPCTLFINCOUNTER._serialized_end=137224 - _PATTERNFLOWTCPCTLFIN._serialized_start=137227 - _PATTERNFLOWTCPCTLFIN._serialized_end=137642 - _PATTERNFLOWTCPCTLFIN_CHOICE._serialized_start=97099 - _PATTERNFLOWTCPCTLFIN_CHOICE._serialized_end=97185 - _PATTERNFLOWTCPCTLFIN_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWTCPCTLFIN_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWTCPWINDOWCOUNTER._serialized_start=137644 - _PATTERNFLOWTCPWINDOWCOUNTER._serialized_end=137761 - _PATTERNFLOWTCPWINDOW._serialized_start=137764 - _PATTERNFLOWTCPWINDOW._serialized_end=138179 - _PATTERNFLOWTCPWINDOW_CHOICE._serialized_start=97099 - _PATTERNFLOWTCPWINDOW_CHOICE._serialized_end=97185 - _PATTERNFLOWTCPWINDOW_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWTCPWINDOW_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWUDPSRCPORTCOUNTER._serialized_start=138181 - _PATTERNFLOWUDPSRCPORTCOUNTER._serialized_end=138299 - _PATTERNFLOWUDPSRCPORT._serialized_start=138302 - _PATTERNFLOWUDPSRCPORT._serialized_end=138721 - _PATTERNFLOWUDPSRCPORT_CHOICE._serialized_start=97099 - _PATTERNFLOWUDPSRCPORT_CHOICE._serialized_end=97185 - _PATTERNFLOWUDPSRCPORT_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWUDPSRCPORT_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWUDPDSTPORTCOUNTER._serialized_start=138723 - _PATTERNFLOWUDPDSTPORTCOUNTER._serialized_end=138841 - _PATTERNFLOWUDPDSTPORT._serialized_start=138844 - _PATTERNFLOWUDPDSTPORT._serialized_end=139263 - _PATTERNFLOWUDPDSTPORT_CHOICE._serialized_start=97099 - _PATTERNFLOWUDPDSTPORT_CHOICE._serialized_end=97185 - _PATTERNFLOWUDPDSTPORT_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWUDPDSTPORT_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWUDPLENGTHCOUNTER._serialized_start=139265 - _PATTERNFLOWUDPLENGTHCOUNTER._serialized_end=139382 - _PATTERNFLOWUDPLENGTH._serialized_start=139385 - _PATTERNFLOWUDPLENGTH._serialized_end=139800 - _PATTERNFLOWUDPLENGTH_CHOICE._serialized_start=97099 - _PATTERNFLOWUDPLENGTH_CHOICE._serialized_end=97185 - _PATTERNFLOWUDPLENGTH_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWUDPLENGTH_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWUDPCHECKSUM._serialized_start=139803 - _PATTERNFLOWUDPCHECKSUM._serialized_end=140133 - _PATTERNFLOWUDPCHECKSUM_CHOICE._serialized_start=108787 - _PATTERNFLOWUDPCHECKSUM_CHOICE._serialized_end=108847 - _PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM._serialized_start=108797 - _PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM._serialized_end=108847 - _PATTERNFLOWUDPCHECKSUM_GENERATED._serialized_start=108849 - _PATTERNFLOWUDPCHECKSUM_GENERATED._serialized_end=108904 - _PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM._serialized_start=108862 - _PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM._serialized_end=108904 - _PATTERNFLOWGRECHECKSUMPRESENTCOUNTER._serialized_start=140135 - _PATTERNFLOWGRECHECKSUMPRESENTCOUNTER._serialized_end=140261 - _PATTERNFLOWGRECHECKSUMPRESENT._serialized_start=140264 - _PATTERNFLOWGRECHECKSUMPRESENT._serialized_end=140715 - _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE._serialized_start=97099 - _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE._serialized_end=97185 - _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGRERESERVED0COUNTER._serialized_start=140717 - _PATTERNFLOWGRERESERVED0COUNTER._serialized_end=140837 - _PATTERNFLOWGRERESERVED0._serialized_start=140840 - _PATTERNFLOWGRERESERVED0._serialized_end=141267 - _PATTERNFLOWGRERESERVED0_CHOICE._serialized_start=97099 - _PATTERNFLOWGRERESERVED0_CHOICE._serialized_end=97185 - _PATTERNFLOWGRERESERVED0_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGRERESERVED0_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGREVERSIONCOUNTER._serialized_start=141269 - _PATTERNFLOWGREVERSIONCOUNTER._serialized_end=141387 - _PATTERNFLOWGREVERSION._serialized_start=141390 - _PATTERNFLOWGREVERSION._serialized_end=141809 - _PATTERNFLOWGREVERSION_CHOICE._serialized_start=97099 - _PATTERNFLOWGREVERSION_CHOICE._serialized_end=97185 - _PATTERNFLOWGREVERSION_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGREVERSION_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGREPROTOCOLCOUNTER._serialized_start=141811 - _PATTERNFLOWGREPROTOCOLCOUNTER._serialized_end=141930 - _PATTERNFLOWGREPROTOCOL._serialized_start=141933 - _PATTERNFLOWGREPROTOCOL._serialized_end=142356 - _PATTERNFLOWGREPROTOCOL_CHOICE._serialized_start=97099 - _PATTERNFLOWGREPROTOCOL_CHOICE._serialized_end=97185 - _PATTERNFLOWGREPROTOCOL_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGREPROTOCOL_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGRECHECKSUM._serialized_start=142359 - _PATTERNFLOWGRECHECKSUM._serialized_end=142689 - _PATTERNFLOWGRECHECKSUM_CHOICE._serialized_start=108787 - _PATTERNFLOWGRECHECKSUM_CHOICE._serialized_end=108847 - _PATTERNFLOWGRECHECKSUM_CHOICE_ENUM._serialized_start=108797 - _PATTERNFLOWGRECHECKSUM_CHOICE_ENUM._serialized_end=108847 - _PATTERNFLOWGRECHECKSUM_GENERATED._serialized_start=108849 - _PATTERNFLOWGRECHECKSUM_GENERATED._serialized_end=108904 - _PATTERNFLOWGRECHECKSUM_GENERATED_ENUM._serialized_start=108862 - _PATTERNFLOWGRECHECKSUM_GENERATED_ENUM._serialized_end=108904 - _PATTERNFLOWGRERESERVED1COUNTER._serialized_start=142691 - _PATTERNFLOWGRERESERVED1COUNTER._serialized_end=142811 - _PATTERNFLOWGRERESERVED1._serialized_start=142814 - _PATTERNFLOWGRERESERVED1._serialized_end=143241 - _PATTERNFLOWGRERESERVED1_CHOICE._serialized_start=97099 - _PATTERNFLOWGRERESERVED1_CHOICE._serialized_end=97185 - _PATTERNFLOWGRERESERVED1_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGRERESERVED1_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPV1VERSIONCOUNTER._serialized_start=143243 - _PATTERNFLOWGTPV1VERSIONCOUNTER._serialized_end=143363 - _PATTERNFLOWGTPV1VERSION._serialized_start=143366 - _PATTERNFLOWGTPV1VERSION._serialized_end=143793 - _PATTERNFLOWGTPV1VERSION_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPV1VERSION_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPV1VERSION_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPV1VERSION_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER._serialized_start=143795 - _PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER._serialized_end=143920 - _PATTERNFLOWGTPV1PROTOCOLTYPE._serialized_start=143923 - _PATTERNFLOWGTPV1PROTOCOLTYPE._serialized_end=144370 - _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPV1RESERVEDCOUNTER._serialized_start=144372 - _PATTERNFLOWGTPV1RESERVEDCOUNTER._serialized_end=144493 - _PATTERNFLOWGTPV1RESERVED._serialized_start=144496 - _PATTERNFLOWGTPV1RESERVED._serialized_end=144927 - _PATTERNFLOWGTPV1RESERVED_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPV1RESERVED_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPV1EFLAGCOUNTER._serialized_start=144929 - _PATTERNFLOWGTPV1EFLAGCOUNTER._serialized_end=145047 - _PATTERNFLOWGTPV1EFLAG._serialized_start=145050 - _PATTERNFLOWGTPV1EFLAG._serialized_end=145469 - _PATTERNFLOWGTPV1EFLAG_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPV1EFLAG_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPV1SFLAGCOUNTER._serialized_start=145471 - _PATTERNFLOWGTPV1SFLAGCOUNTER._serialized_end=145589 - _PATTERNFLOWGTPV1SFLAG._serialized_start=145592 - _PATTERNFLOWGTPV1SFLAG._serialized_end=146011 - _PATTERNFLOWGTPV1SFLAG_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPV1SFLAG_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPV1PNFLAGCOUNTER._serialized_start=146013 - _PATTERNFLOWGTPV1PNFLAGCOUNTER._serialized_end=146132 - _PATTERNFLOWGTPV1PNFLAG._serialized_start=146135 - _PATTERNFLOWGTPV1PNFLAG._serialized_end=146558 - _PATTERNFLOWGTPV1PNFLAG_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPV1PNFLAG_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPV1MESSAGETYPECOUNTER._serialized_start=146560 - _PATTERNFLOWGTPV1MESSAGETYPECOUNTER._serialized_end=146684 - _PATTERNFLOWGTPV1MESSAGETYPE._serialized_start=146687 - _PATTERNFLOWGTPV1MESSAGETYPE._serialized_end=147130 - _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER._serialized_start=147132 - _PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER._serialized_end=147258 - _PATTERNFLOWGTPV1MESSAGELENGTH._serialized_start=147261 - _PATTERNFLOWGTPV1MESSAGELENGTH._serialized_end=147712 - _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPV1TEIDCOUNTER._serialized_start=147714 - _PATTERNFLOWGTPV1TEIDCOUNTER._serialized_end=147831 - _PATTERNFLOWGTPV1TEID._serialized_start=147834 - _PATTERNFLOWGTPV1TEID._serialized_end=148249 - _PATTERNFLOWGTPV1TEID_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPV1TEID_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPV1TEID_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPV1TEID_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER._serialized_start=148251 - _PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER._serialized_end=148377 - _PATTERNFLOWGTPV1SQUENCENUMBER._serialized_start=148380 - _PATTERNFLOWGTPV1SQUENCENUMBER._serialized_end=148831 - _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPV1NPDUNUMBERCOUNTER._serialized_start=148833 - _PATTERNFLOWGTPV1NPDUNUMBERCOUNTER._serialized_end=148956 - _PATTERNFLOWGTPV1NPDUNUMBER._serialized_start=148959 - _PATTERNFLOWGTPV1NPDUNUMBER._serialized_end=149398 - _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER._serialized_start=149401 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER._serialized_end=149537 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE._serialized_start=149540 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE._serialized_end=150031 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER._serialized_start=150034 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER._serialized_end=150169 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH._serialized_start=150172 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH._serialized_end=150659 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER._serialized_start=150662 - _PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER._serialized_end=150790 - _PATTERNFLOWGTPEXTENSIONCONTENTS._serialized_start=150793 - _PATTERNFLOWGTPEXTENSIONCONTENTS._serialized_end=151252 - _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER._serialized_start=151255 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER._serialized_end=151394 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER._serialized_start=151397 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER._serialized_end=151900 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPV2VERSIONCOUNTER._serialized_start=151902 - _PATTERNFLOWGTPV2VERSIONCOUNTER._serialized_end=152022 - _PATTERNFLOWGTPV2VERSION._serialized_start=152025 - _PATTERNFLOWGTPV2VERSION._serialized_end=152452 - _PATTERNFLOWGTPV2VERSION_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPV2VERSION_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPV2VERSION_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPV2VERSION_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER._serialized_start=152455 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER._serialized_end=152584 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG._serialized_start=152587 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG._serialized_end=153050 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPV2TEIDFLAGCOUNTER._serialized_start=153052 - _PATTERNFLOWGTPV2TEIDFLAGCOUNTER._serialized_end=153173 - _PATTERNFLOWGTPV2TEIDFLAG._serialized_start=153176 - _PATTERNFLOWGTPV2TEIDFLAG._serialized_end=153607 - _PATTERNFLOWGTPV2TEIDFLAG_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPV2TEIDFLAG_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPV2SPARE1COUNTER._serialized_start=153609 - _PATTERNFLOWGTPV2SPARE1COUNTER._serialized_end=153728 - _PATTERNFLOWGTPV2SPARE1._serialized_start=153731 - _PATTERNFLOWGTPV2SPARE1._serialized_end=154154 - _PATTERNFLOWGTPV2SPARE1_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPV2SPARE1_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPV2MESSAGETYPECOUNTER._serialized_start=154156 - _PATTERNFLOWGTPV2MESSAGETYPECOUNTER._serialized_end=154280 - _PATTERNFLOWGTPV2MESSAGETYPE._serialized_start=154283 - _PATTERNFLOWGTPV2MESSAGETYPE._serialized_end=154726 - _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER._serialized_start=154728 - _PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER._serialized_end=154854 - _PATTERNFLOWGTPV2MESSAGELENGTH._serialized_start=154857 - _PATTERNFLOWGTPV2MESSAGELENGTH._serialized_end=155308 - _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPV2TEIDCOUNTER._serialized_start=155310 - _PATTERNFLOWGTPV2TEIDCOUNTER._serialized_end=155427 - _PATTERNFLOWGTPV2TEID._serialized_start=155430 - _PATTERNFLOWGTPV2TEID._serialized_end=155845 - _PATTERNFLOWGTPV2TEID_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPV2TEID_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPV2TEID_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPV2TEID_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER._serialized_start=155847 - _PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER._serialized_end=155974 - _PATTERNFLOWGTPV2SEQUENCENUMBER._serialized_start=155977 - _PATTERNFLOWGTPV2SEQUENCENUMBER._serialized_end=156432 - _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWGTPV2SPARE2COUNTER._serialized_start=156434 - _PATTERNFLOWGTPV2SPARE2COUNTER._serialized_end=156553 - _PATTERNFLOWGTPV2SPARE2._serialized_start=156556 - _PATTERNFLOWGTPV2SPARE2._serialized_end=156979 - _PATTERNFLOWGTPV2SPARE2_CHOICE._serialized_start=97099 - _PATTERNFLOWGTPV2SPARE2_CHOICE._serialized_end=97185 - _PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWARPHARDWARETYPECOUNTER._serialized_start=156981 - _PATTERNFLOWARPHARDWARETYPECOUNTER._serialized_end=157104 - _PATTERNFLOWARPHARDWARETYPE._serialized_start=157107 - _PATTERNFLOWARPHARDWARETYPE._serialized_end=157546 - _PATTERNFLOWARPHARDWARETYPE_CHOICE._serialized_start=97099 - _PATTERNFLOWARPHARDWARETYPE_CHOICE._serialized_end=97185 - _PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWARPPROTOCOLTYPECOUNTER._serialized_start=157548 - _PATTERNFLOWARPPROTOCOLTYPECOUNTER._serialized_end=157671 - _PATTERNFLOWARPPROTOCOLTYPE._serialized_start=157674 - _PATTERNFLOWARPPROTOCOLTYPE._serialized_end=158113 - _PATTERNFLOWARPPROTOCOLTYPE_CHOICE._serialized_start=97099 - _PATTERNFLOWARPPROTOCOLTYPE_CHOICE._serialized_end=97185 - _PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWARPHARDWARELENGTHCOUNTER._serialized_start=158115 - _PATTERNFLOWARPHARDWARELENGTHCOUNTER._serialized_end=158240 - _PATTERNFLOWARPHARDWARELENGTH._serialized_start=158243 - _PATTERNFLOWARPHARDWARELENGTH._serialized_end=158690 - _PATTERNFLOWARPHARDWARELENGTH_CHOICE._serialized_start=97099 - _PATTERNFLOWARPHARDWARELENGTH_CHOICE._serialized_end=97185 - _PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWARPPROTOCOLLENGTHCOUNTER._serialized_start=158692 - _PATTERNFLOWARPPROTOCOLLENGTHCOUNTER._serialized_end=158817 - _PATTERNFLOWARPPROTOCOLLENGTH._serialized_start=158820 - _PATTERNFLOWARPPROTOCOLLENGTH._serialized_end=159267 - _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE._serialized_start=97099 - _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE._serialized_end=97185 - _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWARPOPERATIONCOUNTER._serialized_start=159269 - _PATTERNFLOWARPOPERATIONCOUNTER._serialized_end=159389 - _PATTERNFLOWARPOPERATION._serialized_start=159392 - _PATTERNFLOWARPOPERATION._serialized_end=159819 - _PATTERNFLOWARPOPERATION_CHOICE._serialized_start=97099 - _PATTERNFLOWARPOPERATION_CHOICE._serialized_end=97185 - _PATTERNFLOWARPOPERATION_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWARPOPERATION_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER._serialized_start=159822 - _PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER._serialized_end=159951 - _PATTERNFLOWARPSENDERHARDWAREADDR._serialized_start=159954 - _PATTERNFLOWARPSENDERHARDWAREADDR._serialized_end=160417 - _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE._serialized_start=97099 - _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE._serialized_end=97185 - _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER._serialized_start=160420 - _PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER._serialized_end=160549 - _PATTERNFLOWARPSENDERPROTOCOLADDR._serialized_start=160552 - _PATTERNFLOWARPSENDERPROTOCOLADDR._serialized_end=161015 - _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE._serialized_start=97099 - _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE._serialized_end=97185 - _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER._serialized_start=161018 - _PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER._serialized_end=161147 - _PATTERNFLOWARPTARGETHARDWAREADDR._serialized_start=161150 - _PATTERNFLOWARPTARGETHARDWAREADDR._serialized_end=161613 - _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE._serialized_start=97099 - _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE._serialized_end=97185 - _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER._serialized_start=161616 - _PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER._serialized_end=161745 - _PATTERNFLOWARPTARGETPROTOCOLADDR._serialized_start=161748 - _PATTERNFLOWARPTARGETPROTOCOLADDR._serialized_end=162211 - _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE._serialized_start=97099 - _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE._serialized_end=97185 - _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWICMPECHOTYPECOUNTER._serialized_start=162213 - _PATTERNFLOWICMPECHOTYPECOUNTER._serialized_end=162333 - _PATTERNFLOWICMPECHOTYPE._serialized_start=162336 - _PATTERNFLOWICMPECHOTYPE._serialized_end=162763 - _PATTERNFLOWICMPECHOTYPE_CHOICE._serialized_start=97099 - _PATTERNFLOWICMPECHOTYPE_CHOICE._serialized_end=97185 - _PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWICMPECHOCODECOUNTER._serialized_start=162765 - _PATTERNFLOWICMPECHOCODECOUNTER._serialized_end=162885 - _PATTERNFLOWICMPECHOCODE._serialized_start=162888 - _PATTERNFLOWICMPECHOCODE._serialized_end=163315 - _PATTERNFLOWICMPECHOCODE_CHOICE._serialized_start=97099 - _PATTERNFLOWICMPECHOCODE_CHOICE._serialized_end=97185 - _PATTERNFLOWICMPECHOCODE_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWICMPECHOCODE_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWICMPECHOCHECKSUM._serialized_start=163318 - _PATTERNFLOWICMPECHOCHECKSUM._serialized_end=163663 - _PATTERNFLOWICMPECHOCHECKSUM_CHOICE._serialized_start=108787 - _PATTERNFLOWICMPECHOCHECKSUM_CHOICE._serialized_end=108847 - _PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM._serialized_start=108797 - _PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM._serialized_end=108847 - _PATTERNFLOWICMPECHOCHECKSUM_GENERATED._serialized_start=108849 - _PATTERNFLOWICMPECHOCHECKSUM_GENERATED._serialized_end=108904 - _PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM._serialized_start=108862 - _PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM._serialized_end=108904 - _PATTERNFLOWICMPECHOIDENTIFIERCOUNTER._serialized_start=163665 - _PATTERNFLOWICMPECHOIDENTIFIERCOUNTER._serialized_end=163791 - _PATTERNFLOWICMPECHOIDENTIFIER._serialized_start=163794 - _PATTERNFLOWICMPECHOIDENTIFIER._serialized_end=164245 - _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE._serialized_start=97099 - _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE._serialized_end=97185 - _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER._serialized_start=164248 - _PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER._serialized_end=164378 - _PATTERNFLOWICMPECHOSEQUENCENUMBER._serialized_start=164381 - _PATTERNFLOWICMPECHOSEQUENCENUMBER._serialized_end=164848 - _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE._serialized_start=97099 - _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE._serialized_end=97185 - _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWICMPCOMMONCHECKSUM._serialized_start=164851 - _PATTERNFLOWICMPCOMMONCHECKSUM._serialized_end=165202 - _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE._serialized_start=108787 - _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE._serialized_end=108847 - _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM._serialized_start=108797 - _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM._serialized_end=108847 - _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED._serialized_start=108849 - _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED._serialized_end=108904 - _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM._serialized_start=108862 - _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM._serialized_end=108904 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER._serialized_start=165205 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER._serialized_end=165337 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER._serialized_start=165340 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER._serialized_end=165815 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE._serialized_start=97099 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE._serialized_end=97185 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER._serialized_start=165818 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER._serialized_end=165954 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER._serialized_start=165957 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER._serialized_end=166448 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE._serialized_start=97099 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE._serialized_end=97185 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWICMPV6ECHOTYPECOUNTER._serialized_start=166450 - _PATTERNFLOWICMPV6ECHOTYPECOUNTER._serialized_end=166572 - _PATTERNFLOWICMPV6ECHOTYPE._serialized_start=166575 - _PATTERNFLOWICMPV6ECHOTYPE._serialized_end=167010 - _PATTERNFLOWICMPV6ECHOTYPE_CHOICE._serialized_start=97099 - _PATTERNFLOWICMPV6ECHOTYPE_CHOICE._serialized_end=97185 - _PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWICMPV6ECHOCODECOUNTER._serialized_start=167012 - _PATTERNFLOWICMPV6ECHOCODECOUNTER._serialized_end=167134 - _PATTERNFLOWICMPV6ECHOCODE._serialized_start=167137 - _PATTERNFLOWICMPV6ECHOCODE._serialized_end=167572 - _PATTERNFLOWICMPV6ECHOCODE_CHOICE._serialized_start=97099 - _PATTERNFLOWICMPV6ECHOCODE_CHOICE._serialized_end=97185 - _PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER._serialized_start=167575 - _PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER._serialized_end=167703 - _PATTERNFLOWICMPV6ECHOIDENTIFIER._serialized_start=167706 - _PATTERNFLOWICMPV6ECHOIDENTIFIER._serialized_end=168165 - _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE._serialized_start=97099 - _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE._serialized_end=97185 - _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER._serialized_start=168168 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER._serialized_end=168300 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER._serialized_start=168303 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER._serialized_end=168778 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE._serialized_start=97099 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE._serialized_end=97185 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWICMPV6ECHOCHECKSUM._serialized_start=168781 - _PATTERNFLOWICMPV6ECHOCHECKSUM._serialized_end=169132 - _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE._serialized_start=108787 - _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE._serialized_end=108847 - _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM._serialized_start=108797 - _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM._serialized_end=108847 - _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED._serialized_start=108849 - _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED._serialized_end=108904 - _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM._serialized_start=108862 - _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM._serialized_end=108904 - _PATTERNFLOWICMPV6COMMONCHECKSUM._serialized_start=169135 - _PATTERNFLOWICMPV6COMMONCHECKSUM._serialized_end=169492 - _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE._serialized_start=108787 - _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE._serialized_end=108847 - _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM._serialized_start=108797 - _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM._serialized_end=108847 - _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED._serialized_start=108849 - _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED._serialized_end=108904 - _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM._serialized_start=108862 - _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM._serialized_end=108904 - _PATTERNFLOWPPPADDRESSCOUNTER._serialized_start=169494 - _PATTERNFLOWPPPADDRESSCOUNTER._serialized_end=169612 - _PATTERNFLOWPPPADDRESS._serialized_start=169615 - _PATTERNFLOWPPPADDRESS._serialized_end=170034 - _PATTERNFLOWPPPADDRESS_CHOICE._serialized_start=97099 - _PATTERNFLOWPPPADDRESS_CHOICE._serialized_end=97185 - _PATTERNFLOWPPPADDRESS_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWPPPADDRESS_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWPPPCONTROLCOUNTER._serialized_start=170036 - _PATTERNFLOWPPPCONTROLCOUNTER._serialized_end=170154 - _PATTERNFLOWPPPCONTROL._serialized_start=170157 - _PATTERNFLOWPPPCONTROL._serialized_end=170576 - _PATTERNFLOWPPPCONTROL_CHOICE._serialized_start=97099 - _PATTERNFLOWPPPCONTROL_CHOICE._serialized_end=97185 - _PATTERNFLOWPPPCONTROL_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWPPPCONTROL_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWPPPPROTOCOLTYPECOUNTER._serialized_start=170578 - _PATTERNFLOWPPPPROTOCOLTYPECOUNTER._serialized_end=170701 - _PATTERNFLOWPPPPROTOCOLTYPE._serialized_start=170704 - _PATTERNFLOWPPPPROTOCOLTYPE._serialized_end=171181 - _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE._serialized_start=96533 - _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE._serialized_end=96629 - _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM._serialized_start=96543 - _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM._serialized_end=96629 - _PATTERNFLOWIGMPV1VERSIONCOUNTER._serialized_start=171183 - _PATTERNFLOWIGMPV1VERSIONCOUNTER._serialized_end=171304 - _PATTERNFLOWIGMPV1VERSION._serialized_start=171307 - _PATTERNFLOWIGMPV1VERSION._serialized_end=171738 - _PATTERNFLOWIGMPV1VERSION_CHOICE._serialized_start=97099 - _PATTERNFLOWIGMPV1VERSION_CHOICE._serialized_end=97185 - _PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIGMPV1TYPECOUNTER._serialized_start=171740 - _PATTERNFLOWIGMPV1TYPECOUNTER._serialized_end=171858 - _PATTERNFLOWIGMPV1TYPE._serialized_start=171861 - _PATTERNFLOWIGMPV1TYPE._serialized_end=172280 - _PATTERNFLOWIGMPV1TYPE_CHOICE._serialized_start=97099 - _PATTERNFLOWIGMPV1TYPE_CHOICE._serialized_end=97185 - _PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIGMPV1UNUSEDCOUNTER._serialized_start=172282 - _PATTERNFLOWIGMPV1UNUSEDCOUNTER._serialized_end=172402 - _PATTERNFLOWIGMPV1UNUSED._serialized_start=172405 - _PATTERNFLOWIGMPV1UNUSED._serialized_end=172832 - _PATTERNFLOWIGMPV1UNUSED_CHOICE._serialized_start=97099 - _PATTERNFLOWIGMPV1UNUSED_CHOICE._serialized_end=97185 - _PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWIGMPV1CHECKSUM._serialized_start=172835 - _PATTERNFLOWIGMPV1CHECKSUM._serialized_end=173174 - _PATTERNFLOWIGMPV1CHECKSUM_CHOICE._serialized_start=108787 - _PATTERNFLOWIGMPV1CHECKSUM_CHOICE._serialized_end=108847 - _PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM._serialized_start=108797 - _PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM._serialized_end=108847 - _PATTERNFLOWIGMPV1CHECKSUM_GENERATED._serialized_start=108849 - _PATTERNFLOWIGMPV1CHECKSUM_GENERATED._serialized_end=108904 - _PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM._serialized_start=108862 - _PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM._serialized_end=108904 - _PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER._serialized_start=173176 - _PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER._serialized_end=173302 - _PATTERNFLOWIGMPV1GROUPADDRESS._serialized_start=173305 - _PATTERNFLOWIGMPV1GROUPADDRESS._serialized_end=173756 - _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE._serialized_start=97099 - _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE._serialized_end=97185 - _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWMPLSLABELCOUNTER._serialized_start=173758 - _PATTERNFLOWMPLSLABELCOUNTER._serialized_end=173875 - _PATTERNFLOWMPLSLABEL._serialized_start=173878 - _PATTERNFLOWMPLSLABEL._serialized_end=174331 - _PATTERNFLOWMPLSLABEL_CHOICE._serialized_start=96533 - _PATTERNFLOWMPLSLABEL_CHOICE._serialized_end=96629 - _PATTERNFLOWMPLSLABEL_CHOICE_ENUM._serialized_start=96543 - _PATTERNFLOWMPLSLABEL_CHOICE_ENUM._serialized_end=96629 - _PATTERNFLOWMPLSTRAFFICCLASSCOUNTER._serialized_start=174333 - _PATTERNFLOWMPLSTRAFFICCLASSCOUNTER._serialized_end=174457 - _PATTERNFLOWMPLSTRAFFICCLASS._serialized_start=174460 - _PATTERNFLOWMPLSTRAFFICCLASS._serialized_end=174903 - _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE._serialized_start=97099 - _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE._serialized_end=97185 - _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM._serialized_end=97185 - _PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER._serialized_start=174905 - _PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER._serialized_end=175030 - _PATTERNFLOWMPLSBOTTOMOFSTACK._serialized_start=175033 - _PATTERNFLOWMPLSBOTTOMOFSTACK._serialized_end=175518 - _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE._serialized_start=96533 - _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE._serialized_end=96629 - _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM._serialized_start=96543 - _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM._serialized_end=96629 - _PATTERNFLOWMPLSTIMETOLIVECOUNTER._serialized_start=175520 - _PATTERNFLOWMPLSTIMETOLIVECOUNTER._serialized_end=175642 - _PATTERNFLOWMPLSTIMETOLIVE._serialized_start=175645 - _PATTERNFLOWMPLSTIMETOLIVE._serialized_end=176080 - _PATTERNFLOWMPLSTIMETOLIVE_CHOICE._serialized_start=97099 - _PATTERNFLOWMPLSTIMETOLIVE_CHOICE._serialized_end=97185 - _PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM._serialized_start=97109 - _PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM._serialized_end=97185 - _VERSION._serialized_start=176083 - _VERSION._serialized_end=176228 - _SUCCESS._serialized_start=176230 - _SUCCESS._serialized_end=176270 - _FAILURE._serialized_start=176272 - _FAILURE._serialized_end=176308 - _SETCONFIGREQUEST._serialized_start=176310 - _SETCONFIGREQUEST._serialized_end=176357 - _UPDATECONFIGREQUEST._serialized_start=176359 - _UPDATECONFIGREQUEST._serialized_end=176422 - _SETCONFIGRESPONSE._serialized_start=176424 - _SETCONFIGRESPONSE._serialized_end=176474 - _GETCONFIGRESPONSE._serialized_start=176476 - _GETCONFIGRESPONSE._serialized_end=176524 - _UPDATECONFIGRESPONSE._serialized_start=176526 - _UPDATECONFIGRESPONSE._serialized_end=176579 - _SETCONTROLSTATEREQUEST._serialized_start=176581 - _SETCONTROLSTATEREQUEST._serialized_end=176647 - _SETCONTROLSTATERESPONSE._serialized_start=176649 - _SETCONTROLSTATERESPONSE._serialized_end=176705 - _SETCONTROLACTIONREQUEST._serialized_start=176707 - _SETCONTROLACTIONREQUEST._serialized_end=176776 - _SETCONTROLACTIONRESPONSE._serialized_start=176778 - _SETCONTROLACTIONRESPONSE._serialized_end=176865 - _SETTRANSMITSTATEREQUEST._serialized_start=176867 - _SETTRANSMITSTATEREQUEST._serialized_end=176936 - _SETTRANSMITSTATERESPONSE._serialized_start=176938 - _SETTRANSMITSTATERESPONSE._serialized_end=176995 - _SETLINKSTATEREQUEST._serialized_start=176997 - _SETLINKSTATEREQUEST._serialized_end=177054 - _SETLINKSTATERESPONSE._serialized_start=177056 - _SETLINKSTATERESPONSE._serialized_end=177109 - _SETCAPTURESTATEREQUEST._serialized_start=177111 - _SETCAPTURESTATEREQUEST._serialized_end=177177 - _SETCAPTURESTATERESPONSE._serialized_start=177179 - _SETCAPTURESTATERESPONSE._serialized_end=177235 - _UPDATEFLOWSREQUEST._serialized_start=177237 - _UPDATEFLOWSREQUEST._serialized_end=177297 - _UPDATEFLOWSRESPONSE._serialized_start=177299 - _UPDATEFLOWSRESPONSE._serialized_end=177349 - _SETROUTESTATEREQUEST._serialized_start=177351 - _SETROUTESTATEREQUEST._serialized_end=177411 - _SETROUTESTATERESPONSE._serialized_start=177413 - _SETROUTESTATERESPONSE._serialized_end=177467 - _SENDPINGREQUEST._serialized_start=177469 - _SENDPINGREQUEST._serialized_end=177526 - _SENDPINGRESPONSE._serialized_start=177528 - _SENDPINGRESPONSE._serialized_end=177588 - _SETPROTOCOLSTATEREQUEST._serialized_start=177590 - _SETPROTOCOLSTATEREQUEST._serialized_end=177659 - _SETPROTOCOLSTATERESPONSE._serialized_start=177661 - _SETPROTOCOLSTATERESPONSE._serialized_end=177718 - _SETDEVICESTATEREQUEST._serialized_start=177720 - _SETDEVICESTATEREQUEST._serialized_end=177783 - _SETDEVICESTATERESPONSE._serialized_start=177785 - _SETDEVICESTATERESPONSE._serialized_end=177840 - _GETMETRICSREQUEST._serialized_start=177842 - _GETMETRICSREQUEST._serialized_end=177907 - _GETMETRICSRESPONSE._serialized_start=177909 - _GETMETRICSRESPONSE._serialized_end=177977 - _GETSTATESREQUEST._serialized_start=177979 - _GETSTATESREQUEST._serialized_end=178041 - _GETSTATESRESPONSE._serialized_start=178043 - _GETSTATESRESPONSE._serialized_end=178108 - _GETCAPTUREREQUEST._serialized_start=178110 - _GETCAPTUREREQUEST._serialized_end=178175 - _GETCAPTURERESPONSE._serialized_start=178177 - _GETCAPTURERESPONSE._serialized_end=178221 - _GETVERSIONRESPONSE._serialized_start=178223 - _GETVERSIONRESPONSE._serialized_end=178274 - _OPENAPI._serialized_start=178277 - _OPENAPI._serialized_end=179463 + _RSVPLSPSTATE_LASTFLAPREASON._serialized_start=96597 + _RSVPLSPSTATE_LASTFLAPREASON._serialized_end=96686 + _RSVPLSPSTATE_LASTFLAPREASON_ENUM._serialized_start=96615 + _RSVPLSPSTATE_LASTFLAPREASON_ENUM._serialized_end=96686 + _RSVPLSPIPV4RRO._serialized_start=96809 + _RSVPLSPIPV4RRO._serialized_end=96907 + _RSVPLSPIPV4ERO._serialized_start=96910 + _RSVPLSPIPV4ERO._serialized_end=97152 + _RSVPLSPIPV4ERO_TYPE._serialized_start=97017 + _RSVPLSPIPV4ERO_TYPE._serialized_end=97124 + _RSVPLSPIPV4ERO_TYPE_ENUM._serialized_start=97025 + _RSVPLSPIPV4ERO_TYPE_ENUM._serialized_end=97124 + _CAPTUREREQUEST._serialized_start=97154 + _CAPTUREREQUEST._serialized_end=97189 + _PATTERNFLOWETHERNETDSTMETRICTAG._serialized_start=97191 + _PATTERNFLOWETHERNETDSTMETRICTAG._serialized_end=97302 + _PATTERNFLOWETHERNETDSTCOUNTER._serialized_start=97304 + _PATTERNFLOWETHERNETDSTCOUNTER._serialized_end=97423 + _PATTERNFLOWETHERNETDST._serialized_start=97426 + _PATTERNFLOWETHERNETDST._serialized_end=97902 + _PATTERNFLOWETHERNETDST_CHOICE._serialized_start=97748 + _PATTERNFLOWETHERNETDST_CHOICE._serialized_end=97844 + _PATTERNFLOWETHERNETDST_CHOICE_ENUM._serialized_start=97758 + _PATTERNFLOWETHERNETDST_CHOICE_ENUM._serialized_end=97844 + _PATTERNFLOWETHERNETSRCMETRICTAG._serialized_start=97904 + _PATTERNFLOWETHERNETSRCMETRICTAG._serialized_end=98015 + _PATTERNFLOWETHERNETSRCCOUNTER._serialized_start=98017 + _PATTERNFLOWETHERNETSRCCOUNTER._serialized_end=98136 + _PATTERNFLOWETHERNETSRC._serialized_start=98139 + _PATTERNFLOWETHERNETSRC._serialized_end=98577 + _PATTERNFLOWETHERNETSRC_CHOICE._serialized_start=98442 + _PATTERNFLOWETHERNETSRC_CHOICE._serialized_end=98528 + _PATTERNFLOWETHERNETSRC_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWETHERNETSRC_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWETHERNETETHERTYPEMETRICTAG._serialized_start=98579 + _PATTERNFLOWETHERNETETHERTYPEMETRICTAG._serialized_end=98696 + _PATTERNFLOWETHERNETETHERTYPECOUNTER._serialized_start=98698 + _PATTERNFLOWETHERNETETHERTYPECOUNTER._serialized_end=98823 + _PATTERNFLOWETHERNETETHERTYPE._serialized_start=98826 + _PATTERNFLOWETHERNETETHERTYPE._serialized_end=99332 + _PATTERNFLOWETHERNETETHERTYPE_CHOICE._serialized_start=97748 + _PATTERNFLOWETHERNETETHERTYPE_CHOICE._serialized_end=97844 + _PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM._serialized_start=97758 + _PATTERNFLOWETHERNETETHERTYPE_CHOICE_ENUM._serialized_end=97844 + _PATTERNFLOWETHERNETPFCQUEUEMETRICTAG._serialized_start=99334 + _PATTERNFLOWETHERNETPFCQUEUEMETRICTAG._serialized_end=99450 + _PATTERNFLOWETHERNETPFCQUEUECOUNTER._serialized_start=99452 + _PATTERNFLOWETHERNETPFCQUEUECOUNTER._serialized_end=99576 + _PATTERNFLOWETHERNETPFCQUEUE._serialized_start=99579 + _PATTERNFLOWETHERNETPFCQUEUE._serialized_end=100042 + _PATTERNFLOWETHERNETPFCQUEUE_CHOICE._serialized_start=98442 + _PATTERNFLOWETHERNETPFCQUEUE_CHOICE._serialized_end=98528 + _PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWETHERNETPFCQUEUE_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWVLANPRIORITYMETRICTAG._serialized_start=100044 + _PATTERNFLOWVLANPRIORITYMETRICTAG._serialized_end=100156 + _PATTERNFLOWVLANPRIORITYCOUNTER._serialized_start=100158 + _PATTERNFLOWVLANPRIORITYCOUNTER._serialized_end=100278 + _PATTERNFLOWVLANPRIORITY._serialized_start=100281 + _PATTERNFLOWVLANPRIORITY._serialized_end=100724 + _PATTERNFLOWVLANPRIORITY_CHOICE._serialized_start=98442 + _PATTERNFLOWVLANPRIORITY_CHOICE._serialized_end=98528 + _PATTERNFLOWVLANPRIORITY_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWVLANPRIORITY_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWVLANCFIMETRICTAG._serialized_start=100726 + _PATTERNFLOWVLANCFIMETRICTAG._serialized_end=100833 + _PATTERNFLOWVLANCFICOUNTER._serialized_start=100835 + _PATTERNFLOWVLANCFICOUNTER._serialized_end=100950 + _PATTERNFLOWVLANCFI._serialized_start=100953 + _PATTERNFLOWVLANCFI._serialized_end=101371 + _PATTERNFLOWVLANCFI_CHOICE._serialized_start=98442 + _PATTERNFLOWVLANCFI_CHOICE._serialized_end=98528 + _PATTERNFLOWVLANCFI_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWVLANCFI_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWVLANIDMETRICTAG._serialized_start=101373 + _PATTERNFLOWVLANIDMETRICTAG._serialized_end=101479 + _PATTERNFLOWVLANIDCOUNTER._serialized_start=101481 + _PATTERNFLOWVLANIDCOUNTER._serialized_end=101595 + _PATTERNFLOWVLANID._serialized_start=101598 + _PATTERNFLOWVLANID._serialized_end=102011 + _PATTERNFLOWVLANID_CHOICE._serialized_start=98442 + _PATTERNFLOWVLANID_CHOICE._serialized_end=98528 + _PATTERNFLOWVLANID_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWVLANID_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWVLANTPIDMETRICTAG._serialized_start=102013 + _PATTERNFLOWVLANTPIDMETRICTAG._serialized_end=102121 + _PATTERNFLOWVLANTPIDCOUNTER._serialized_start=102123 + _PATTERNFLOWVLANTPIDCOUNTER._serialized_end=102239 + _PATTERNFLOWVLANTPID._serialized_start=102242 + _PATTERNFLOWVLANTPID._serialized_end=102665 + _PATTERNFLOWVLANTPID_CHOICE._serialized_start=98442 + _PATTERNFLOWVLANTPID_CHOICE._serialized_end=98528 + _PATTERNFLOWVLANTPID_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWVLANTPID_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWVXLANFLAGSMETRICTAG._serialized_start=102667 + _PATTERNFLOWVXLANFLAGSMETRICTAG._serialized_end=102777 + _PATTERNFLOWVXLANFLAGSCOUNTER._serialized_start=102779 + _PATTERNFLOWVXLANFLAGSCOUNTER._serialized_end=102897 + _PATTERNFLOWVXLANFLAGS._serialized_start=102900 + _PATTERNFLOWVXLANFLAGS._serialized_end=103333 + _PATTERNFLOWVXLANFLAGS_CHOICE._serialized_start=98442 + _PATTERNFLOWVXLANFLAGS_CHOICE._serialized_end=98528 + _PATTERNFLOWVXLANFLAGS_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWVXLANFLAGS_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWVXLANRESERVED0METRICTAG._serialized_start=103335 + _PATTERNFLOWVXLANRESERVED0METRICTAG._serialized_end=103449 + _PATTERNFLOWVXLANRESERVED0COUNTER._serialized_start=103451 + _PATTERNFLOWVXLANRESERVED0COUNTER._serialized_end=103573 + _PATTERNFLOWVXLANRESERVED0._serialized_start=103576 + _PATTERNFLOWVXLANRESERVED0._serialized_end=104029 + _PATTERNFLOWVXLANRESERVED0_CHOICE._serialized_start=98442 + _PATTERNFLOWVXLANRESERVED0_CHOICE._serialized_end=98528 + _PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWVXLANRESERVED0_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWVXLANVNIMETRICTAG._serialized_start=104031 + _PATTERNFLOWVXLANVNIMETRICTAG._serialized_end=104139 + _PATTERNFLOWVXLANVNICOUNTER._serialized_start=104141 + _PATTERNFLOWVXLANVNICOUNTER._serialized_end=104257 + _PATTERNFLOWVXLANVNI._serialized_start=104260 + _PATTERNFLOWVXLANVNI._serialized_end=104721 + _PATTERNFLOWVXLANVNI_CHOICE._serialized_start=97748 + _PATTERNFLOWVXLANVNI_CHOICE._serialized_end=97844 + _PATTERNFLOWVXLANVNI_CHOICE_ENUM._serialized_start=97758 + _PATTERNFLOWVXLANVNI_CHOICE_ENUM._serialized_end=97844 + _PATTERNFLOWVXLANRESERVED1METRICTAG._serialized_start=104723 + _PATTERNFLOWVXLANRESERVED1METRICTAG._serialized_end=104837 + _PATTERNFLOWVXLANRESERVED1COUNTER._serialized_start=104839 + _PATTERNFLOWVXLANRESERVED1COUNTER._serialized_end=104961 + _PATTERNFLOWVXLANRESERVED1._serialized_start=104964 + _PATTERNFLOWVXLANRESERVED1._serialized_end=105417 + _PATTERNFLOWVXLANRESERVED1_CHOICE._serialized_start=98442 + _PATTERNFLOWVXLANRESERVED1_CHOICE._serialized_end=98528 + _PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWVXLANRESERVED1_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV4VERSIONMETRICTAG._serialized_start=105419 + _PATTERNFLOWIPV4VERSIONMETRICTAG._serialized_end=105530 + _PATTERNFLOWIPV4VERSIONCOUNTER._serialized_start=105532 + _PATTERNFLOWIPV4VERSIONCOUNTER._serialized_end=105651 + _PATTERNFLOWIPV4VERSION._serialized_start=105654 + _PATTERNFLOWIPV4VERSION._serialized_end=106092 + _PATTERNFLOWIPV4VERSION_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV4VERSION_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV4VERSION_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV4VERSION_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV4HEADERLENGTHMETRICTAG._serialized_start=106094 + _PATTERNFLOWIPV4HEADERLENGTHMETRICTAG._serialized_end=106210 + _PATTERNFLOWIPV4HEADERLENGTHCOUNTER._serialized_start=106212 + _PATTERNFLOWIPV4HEADERLENGTHCOUNTER._serialized_end=106336 + _PATTERNFLOWIPV4HEADERLENGTH._serialized_start=106339 + _PATTERNFLOWIPV4HEADERLENGTH._serialized_end=106840 + _PATTERNFLOWIPV4HEADERLENGTH_CHOICE._serialized_start=97748 + _PATTERNFLOWIPV4HEADERLENGTH_CHOICE._serialized_end=97844 + _PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM._serialized_start=97758 + _PATTERNFLOWIPV4HEADERLENGTH_CHOICE_ENUM._serialized_end=97844 + _PATTERNFLOWIPV4TOTALLENGTHMETRICTAG._serialized_start=106842 + _PATTERNFLOWIPV4TOTALLENGTHMETRICTAG._serialized_end=106957 + _PATTERNFLOWIPV4TOTALLENGTHCOUNTER._serialized_start=106959 + _PATTERNFLOWIPV4TOTALLENGTHCOUNTER._serialized_end=107082 + _PATTERNFLOWIPV4TOTALLENGTH._serialized_start=107085 + _PATTERNFLOWIPV4TOTALLENGTH._serialized_end=107581 + _PATTERNFLOWIPV4TOTALLENGTH_CHOICE._serialized_start=97748 + _PATTERNFLOWIPV4TOTALLENGTH_CHOICE._serialized_end=97844 + _PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM._serialized_start=97758 + _PATTERNFLOWIPV4TOTALLENGTH_CHOICE_ENUM._serialized_end=97844 + _PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG._serialized_start=107583 + _PATTERNFLOWIPV4IDENTIFICATIONMETRICTAG._serialized_end=107701 + _PATTERNFLOWIPV4IDENTIFICATIONCOUNTER._serialized_start=107703 + _PATTERNFLOWIPV4IDENTIFICATIONCOUNTER._serialized_end=107829 + _PATTERNFLOWIPV4IDENTIFICATION._serialized_start=107832 + _PATTERNFLOWIPV4IDENTIFICATION._serialized_end=108305 + _PATTERNFLOWIPV4IDENTIFICATION_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV4IDENTIFICATION_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV4IDENTIFICATION_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV4RESERVEDMETRICTAG._serialized_start=108307 + _PATTERNFLOWIPV4RESERVEDMETRICTAG._serialized_end=108419 + _PATTERNFLOWIPV4RESERVEDCOUNTER._serialized_start=108421 + _PATTERNFLOWIPV4RESERVEDCOUNTER._serialized_end=108541 + _PATTERNFLOWIPV4RESERVED._serialized_start=108544 + _PATTERNFLOWIPV4RESERVED._serialized_end=108987 + _PATTERNFLOWIPV4RESERVED_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV4RESERVED_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV4RESERVED_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV4RESERVED_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG._serialized_start=108989 + _PATTERNFLOWIPV4DONTFRAGMENTMETRICTAG._serialized_end=109105 + _PATTERNFLOWIPV4DONTFRAGMENTCOUNTER._serialized_start=109107 + _PATTERNFLOWIPV4DONTFRAGMENTCOUNTER._serialized_end=109231 + _PATTERNFLOWIPV4DONTFRAGMENT._serialized_start=109234 + _PATTERNFLOWIPV4DONTFRAGMENT._serialized_end=109697 + _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV4DONTFRAGMENT_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG._serialized_start=109699 + _PATTERNFLOWIPV4MOREFRAGMENTSMETRICTAG._serialized_end=109816 + _PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER._serialized_start=109818 + _PATTERNFLOWIPV4MOREFRAGMENTSCOUNTER._serialized_end=109943 + _PATTERNFLOWIPV4MOREFRAGMENTS._serialized_start=109946 + _PATTERNFLOWIPV4MOREFRAGMENTS._serialized_end=110414 + _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV4MOREFRAGMENTS_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG._serialized_start=110416 + _PATTERNFLOWIPV4FRAGMENTOFFSETMETRICTAG._serialized_end=110534 + _PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER._serialized_start=110536 + _PATTERNFLOWIPV4FRAGMENTOFFSETCOUNTER._serialized_end=110662 + _PATTERNFLOWIPV4FRAGMENTOFFSET._serialized_start=110665 + _PATTERNFLOWIPV4FRAGMENTOFFSET._serialized_end=111138 + _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV4FRAGMENTOFFSET_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV4TIMETOLIVEMETRICTAG._serialized_start=111140 + _PATTERNFLOWIPV4TIMETOLIVEMETRICTAG._serialized_end=111254 + _PATTERNFLOWIPV4TIMETOLIVECOUNTER._serialized_start=111256 + _PATTERNFLOWIPV4TIMETOLIVECOUNTER._serialized_end=111378 + _PATTERNFLOWIPV4TIMETOLIVE._serialized_start=111381 + _PATTERNFLOWIPV4TIMETOLIVE._serialized_end=111834 + _PATTERNFLOWIPV4TIMETOLIVE_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV4TIMETOLIVE_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV4TIMETOLIVE_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV4PROTOCOLMETRICTAG._serialized_start=111836 + _PATTERNFLOWIPV4PROTOCOLMETRICTAG._serialized_end=111948 + _PATTERNFLOWIPV4PROTOCOLCOUNTER._serialized_start=111950 + _PATTERNFLOWIPV4PROTOCOLCOUNTER._serialized_end=112070 + _PATTERNFLOWIPV4PROTOCOL._serialized_start=112073 + _PATTERNFLOWIPV4PROTOCOL._serialized_end=112554 + _PATTERNFLOWIPV4PROTOCOL_CHOICE._serialized_start=97748 + _PATTERNFLOWIPV4PROTOCOL_CHOICE._serialized_end=97844 + _PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM._serialized_start=97758 + _PATTERNFLOWIPV4PROTOCOL_CHOICE_ENUM._serialized_end=97844 + _PATTERNFLOWIPV4HEADERCHECKSUM._serialized_start=112557 + _PATTERNFLOWIPV4HEADERCHECKSUM._serialized_end=112908 + _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE._serialized_start=112755 + _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE._serialized_end=112815 + _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM._serialized_start=112765 + _PATTERNFLOWIPV4HEADERCHECKSUM_CHOICE_ENUM._serialized_end=112815 + _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED._serialized_start=112817 + _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED._serialized_end=112872 + _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM._serialized_start=112830 + _PATTERNFLOWIPV4HEADERCHECKSUM_GENERATED_ENUM._serialized_end=112872 + _PATTERNFLOWIPV4SRCMETRICTAG._serialized_start=112910 + _PATTERNFLOWIPV4SRCMETRICTAG._serialized_end=113017 + _PATTERNFLOWIPV4SRCCOUNTER._serialized_start=113019 + _PATTERNFLOWIPV4SRCCOUNTER._serialized_end=113134 + _PATTERNFLOWIPV4SRC._serialized_start=113137 + _PATTERNFLOWIPV4SRC._serialized_end=113555 + _PATTERNFLOWIPV4SRC_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV4SRC_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV4SRC_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV4SRC_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV4DSTMETRICTAG._serialized_start=113557 + _PATTERNFLOWIPV4DSTMETRICTAG._serialized_end=113664 + _PATTERNFLOWIPV4DSTCOUNTER._serialized_start=113666 + _PATTERNFLOWIPV4DSTCOUNTER._serialized_end=113781 + _PATTERNFLOWIPV4DST._serialized_start=113784 + _PATTERNFLOWIPV4DST._serialized_end=114202 + _PATTERNFLOWIPV4DST_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV4DST_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV4DST_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV4DST_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV4PRIORITYRAWMETRICTAG._serialized_start=114204 + _PATTERNFLOWIPV4PRIORITYRAWMETRICTAG._serialized_end=114319 + _PATTERNFLOWIPV4PRIORITYRAWCOUNTER._serialized_start=114321 + _PATTERNFLOWIPV4PRIORITYRAWCOUNTER._serialized_end=114444 + _PATTERNFLOWIPV4PRIORITYRAW._serialized_start=114447 + _PATTERNFLOWIPV4PRIORITYRAW._serialized_end=114905 + _PATTERNFLOWIPV4PRIORITYRAW_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV4PRIORITYRAW_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV4PRIORITYRAW_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV4DSCPPHBMETRICTAG._serialized_start=114907 + _PATTERNFLOWIPV4DSCPPHBMETRICTAG._serialized_end=115018 + _PATTERNFLOWIPV4DSCPPHBCOUNTER._serialized_start=115020 + _PATTERNFLOWIPV4DSCPPHBCOUNTER._serialized_end=115139 + _PATTERNFLOWIPV4DSCPPHB._serialized_start=115142 + _PATTERNFLOWIPV4DSCPPHB._serialized_end=115580 + _PATTERNFLOWIPV4DSCPPHB_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV4DSCPPHB_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV4DSCPPHB_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV4DSCPECNMETRICTAG._serialized_start=115582 + _PATTERNFLOWIPV4DSCPECNMETRICTAG._serialized_end=115693 + _PATTERNFLOWIPV4DSCPECNCOUNTER._serialized_start=115695 + _PATTERNFLOWIPV4DSCPECNCOUNTER._serialized_end=115814 + _PATTERNFLOWIPV4DSCPECN._serialized_start=115817 + _PATTERNFLOWIPV4DSCPECN._serialized_end=116255 + _PATTERNFLOWIPV4DSCPECN_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV4DSCPECN_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV4DSCPECN_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG._serialized_start=116257 + _PATTERNFLOWIPV4TOSPRECEDENCEMETRICTAG._serialized_end=116374 + _PATTERNFLOWIPV4TOSPRECEDENCECOUNTER._serialized_start=116376 + _PATTERNFLOWIPV4TOSPRECEDENCECOUNTER._serialized_end=116501 + _PATTERNFLOWIPV4TOSPRECEDENCE._serialized_start=116504 + _PATTERNFLOWIPV4TOSPRECEDENCE._serialized_end=116972 + _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV4TOSPRECEDENCE_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV4TOSDELAYMETRICTAG._serialized_start=116974 + _PATTERNFLOWIPV4TOSDELAYMETRICTAG._serialized_end=117086 + _PATTERNFLOWIPV4TOSDELAYCOUNTER._serialized_start=117088 + _PATTERNFLOWIPV4TOSDELAYCOUNTER._serialized_end=117208 + _PATTERNFLOWIPV4TOSDELAY._serialized_start=117211 + _PATTERNFLOWIPV4TOSDELAY._serialized_end=117654 + _PATTERNFLOWIPV4TOSDELAY_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV4TOSDELAY_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV4TOSDELAY_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG._serialized_start=117656 + _PATTERNFLOWIPV4TOSTHROUGHPUTMETRICTAG._serialized_end=117773 + _PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER._serialized_start=117775 + _PATTERNFLOWIPV4TOSTHROUGHPUTCOUNTER._serialized_end=117900 + _PATTERNFLOWIPV4TOSTHROUGHPUT._serialized_start=117903 + _PATTERNFLOWIPV4TOSTHROUGHPUT._serialized_end=118371 + _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV4TOSTHROUGHPUT_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG._serialized_start=118373 + _PATTERNFLOWIPV4TOSRELIABILITYMETRICTAG._serialized_end=118491 + _PATTERNFLOWIPV4TOSRELIABILITYCOUNTER._serialized_start=118493 + _PATTERNFLOWIPV4TOSRELIABILITYCOUNTER._serialized_end=118619 + _PATTERNFLOWIPV4TOSRELIABILITY._serialized_start=118622 + _PATTERNFLOWIPV4TOSRELIABILITY._serialized_end=119095 + _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV4TOSRELIABILITY_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV4TOSMONETARYMETRICTAG._serialized_start=119097 + _PATTERNFLOWIPV4TOSMONETARYMETRICTAG._serialized_end=119212 + _PATTERNFLOWIPV4TOSMONETARYCOUNTER._serialized_start=119214 + _PATTERNFLOWIPV4TOSMONETARYCOUNTER._serialized_end=119337 + _PATTERNFLOWIPV4TOSMONETARY._serialized_start=119340 + _PATTERNFLOWIPV4TOSMONETARY._serialized_end=119798 + _PATTERNFLOWIPV4TOSMONETARY_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV4TOSMONETARY_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV4TOSMONETARY_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV4TOSUNUSEDMETRICTAG._serialized_start=119800 + _PATTERNFLOWIPV4TOSUNUSEDMETRICTAG._serialized_end=119913 + _PATTERNFLOWIPV4TOSUNUSEDCOUNTER._serialized_start=119915 + _PATTERNFLOWIPV4TOSUNUSEDCOUNTER._serialized_end=120036 + _PATTERNFLOWIPV4TOSUNUSED._serialized_start=120039 + _PATTERNFLOWIPV4TOSUNUSED._serialized_end=120487 + _PATTERNFLOWIPV4TOSUNUSED_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV4TOSUNUSED_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV4TOSUNUSED_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV6VERSIONMETRICTAG._serialized_start=120489 + _PATTERNFLOWIPV6VERSIONMETRICTAG._serialized_end=120600 + _PATTERNFLOWIPV6VERSIONCOUNTER._serialized_start=120602 + _PATTERNFLOWIPV6VERSIONCOUNTER._serialized_end=120721 + _PATTERNFLOWIPV6VERSION._serialized_start=120724 + _PATTERNFLOWIPV6VERSION._serialized_end=121162 + _PATTERNFLOWIPV6VERSION_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV6VERSION_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV6VERSION_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV6VERSION_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG._serialized_start=121164 + _PATTERNFLOWIPV6TRAFFICCLASSMETRICTAG._serialized_end=121280 + _PATTERNFLOWIPV6TRAFFICCLASSCOUNTER._serialized_start=121282 + _PATTERNFLOWIPV6TRAFFICCLASSCOUNTER._serialized_end=121406 + _PATTERNFLOWIPV6TRAFFICCLASS._serialized_start=121409 + _PATTERNFLOWIPV6TRAFFICCLASS._serialized_end=121872 + _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV6TRAFFICCLASS_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV6FLOWLABELMETRICTAG._serialized_start=121874 + _PATTERNFLOWIPV6FLOWLABELMETRICTAG._serialized_end=121987 + _PATTERNFLOWIPV6FLOWLABELCOUNTER._serialized_start=121989 + _PATTERNFLOWIPV6FLOWLABELCOUNTER._serialized_end=122110 + _PATTERNFLOWIPV6FLOWLABEL._serialized_start=122113 + _PATTERNFLOWIPV6FLOWLABEL._serialized_end=122561 + _PATTERNFLOWIPV6FLOWLABEL_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV6FLOWLABEL_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV6FLOWLABEL_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG._serialized_start=122563 + _PATTERNFLOWIPV6PAYLOADLENGTHMETRICTAG._serialized_end=122680 + _PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER._serialized_start=122682 + _PATTERNFLOWIPV6PAYLOADLENGTHCOUNTER._serialized_end=122807 + _PATTERNFLOWIPV6PAYLOADLENGTH._serialized_start=122810 + _PATTERNFLOWIPV6PAYLOADLENGTH._serialized_end=123316 + _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE._serialized_start=97748 + _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE._serialized_end=97844 + _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM._serialized_start=97758 + _PATTERNFLOWIPV6PAYLOADLENGTH_CHOICE_ENUM._serialized_end=97844 + _PATTERNFLOWIPV6NEXTHEADERMETRICTAG._serialized_start=123318 + _PATTERNFLOWIPV6NEXTHEADERMETRICTAG._serialized_end=123432 + _PATTERNFLOWIPV6NEXTHEADERCOUNTER._serialized_start=123434 + _PATTERNFLOWIPV6NEXTHEADERCOUNTER._serialized_end=123556 + _PATTERNFLOWIPV6NEXTHEADER._serialized_start=123559 + _PATTERNFLOWIPV6NEXTHEADER._serialized_end=124050 + _PATTERNFLOWIPV6NEXTHEADER_CHOICE._serialized_start=97748 + _PATTERNFLOWIPV6NEXTHEADER_CHOICE._serialized_end=97844 + _PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM._serialized_start=97758 + _PATTERNFLOWIPV6NEXTHEADER_CHOICE_ENUM._serialized_end=97844 + _PATTERNFLOWIPV6HOPLIMITMETRICTAG._serialized_start=124052 + _PATTERNFLOWIPV6HOPLIMITMETRICTAG._serialized_end=124164 + _PATTERNFLOWIPV6HOPLIMITCOUNTER._serialized_start=124166 + _PATTERNFLOWIPV6HOPLIMITCOUNTER._serialized_end=124286 + _PATTERNFLOWIPV6HOPLIMIT._serialized_start=124289 + _PATTERNFLOWIPV6HOPLIMIT._serialized_end=124732 + _PATTERNFLOWIPV6HOPLIMIT_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV6HOPLIMIT_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV6HOPLIMIT_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV6SRCMETRICTAG._serialized_start=124734 + _PATTERNFLOWIPV6SRCMETRICTAG._serialized_end=124841 + _PATTERNFLOWIPV6SRCCOUNTER._serialized_start=124843 + _PATTERNFLOWIPV6SRCCOUNTER._serialized_end=124958 + _PATTERNFLOWIPV6SRC._serialized_start=124961 + _PATTERNFLOWIPV6SRC._serialized_end=125379 + _PATTERNFLOWIPV6SRC_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV6SRC_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV6SRC_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV6SRC_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIPV6DSTMETRICTAG._serialized_start=125381 + _PATTERNFLOWIPV6DSTMETRICTAG._serialized_end=125488 + _PATTERNFLOWIPV6DSTCOUNTER._serialized_start=125490 + _PATTERNFLOWIPV6DSTCOUNTER._serialized_end=125605 + _PATTERNFLOWIPV6DST._serialized_start=125608 + _PATTERNFLOWIPV6DST._serialized_end=126026 + _PATTERNFLOWIPV6DST_CHOICE._serialized_start=98442 + _PATTERNFLOWIPV6DST_CHOICE._serialized_end=98528 + _PATTERNFLOWIPV6DST_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIPV6DST_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWPFCPAUSEDSTMETRICTAG._serialized_start=126028 + _PATTERNFLOWPFCPAUSEDSTMETRICTAG._serialized_end=126139 + _PATTERNFLOWPFCPAUSEDSTCOUNTER._serialized_start=126141 + _PATTERNFLOWPFCPAUSEDSTCOUNTER._serialized_end=126260 + _PATTERNFLOWPFCPAUSEDST._serialized_start=126263 + _PATTERNFLOWPFCPAUSEDST._serialized_end=126701 + _PATTERNFLOWPFCPAUSEDST_CHOICE._serialized_start=98442 + _PATTERNFLOWPFCPAUSEDST_CHOICE._serialized_end=98528 + _PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWPFCPAUSEDST_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWPFCPAUSESRCMETRICTAG._serialized_start=126703 + _PATTERNFLOWPFCPAUSESRCMETRICTAG._serialized_end=126814 + _PATTERNFLOWPFCPAUSESRCCOUNTER._serialized_start=126816 + _PATTERNFLOWPFCPAUSESRCCOUNTER._serialized_end=126935 + _PATTERNFLOWPFCPAUSESRC._serialized_start=126938 + _PATTERNFLOWPFCPAUSESRC._serialized_end=127376 + _PATTERNFLOWPFCPAUSESRC_CHOICE._serialized_start=98442 + _PATTERNFLOWPFCPAUSESRC_CHOICE._serialized_end=98528 + _PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWPFCPAUSESRC_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG._serialized_start=127378 + _PATTERNFLOWPFCPAUSEETHERTYPEMETRICTAG._serialized_end=127495 + _PATTERNFLOWPFCPAUSEETHERTYPECOUNTER._serialized_start=127497 + _PATTERNFLOWPFCPAUSEETHERTYPECOUNTER._serialized_end=127622 + _PATTERNFLOWPFCPAUSEETHERTYPE._serialized_start=127625 + _PATTERNFLOWPFCPAUSEETHERTYPE._serialized_end=128093 + _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE._serialized_start=98442 + _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE._serialized_end=98528 + _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWPFCPAUSEETHERTYPE_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG._serialized_start=128095 + _PATTERNFLOWPFCPAUSECONTROLOPCODEMETRICTAG._serialized_end=128216 + _PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER._serialized_start=128219 + _PATTERNFLOWPFCPAUSECONTROLOPCODECOUNTER._serialized_end=128348 + _PATTERNFLOWPFCPAUSECONTROLOPCODE._serialized_start=128351 + _PATTERNFLOWPFCPAUSECONTROLOPCODE._serialized_end=128839 + _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE._serialized_start=98442 + _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE._serialized_end=98528 + _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWPFCPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG._serialized_start=128841 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTORMETRICTAG._serialized_end=128966 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER._serialized_start=128969 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTORCOUNTER._serialized_end=129102 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR._serialized_start=129105 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR._serialized_end=129613 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE._serialized_start=98442 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE._serialized_end=98528 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWPFCPAUSECLASSENABLEVECTOR_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG._serialized_start=129615 + _PATTERNFLOWPFCPAUSEPAUSECLASS0METRICTAG._serialized_end=129734 + _PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER._serialized_start=129736 + _PATTERNFLOWPFCPAUSEPAUSECLASS0COUNTER._serialized_end=129863 + _PATTERNFLOWPFCPAUSEPAUSECLASS0._serialized_start=129866 + _PATTERNFLOWPFCPAUSEPAUSECLASS0._serialized_end=130344 + _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE._serialized_start=98442 + _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE._serialized_end=98528 + _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWPFCPAUSEPAUSECLASS0_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG._serialized_start=130346 + _PATTERNFLOWPFCPAUSEPAUSECLASS1METRICTAG._serialized_end=130465 + _PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER._serialized_start=130467 + _PATTERNFLOWPFCPAUSEPAUSECLASS1COUNTER._serialized_end=130594 + _PATTERNFLOWPFCPAUSEPAUSECLASS1._serialized_start=130597 + _PATTERNFLOWPFCPAUSEPAUSECLASS1._serialized_end=131075 + _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE._serialized_start=98442 + _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE._serialized_end=98528 + _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWPFCPAUSEPAUSECLASS1_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG._serialized_start=131077 + _PATTERNFLOWPFCPAUSEPAUSECLASS2METRICTAG._serialized_end=131196 + _PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER._serialized_start=131198 + _PATTERNFLOWPFCPAUSEPAUSECLASS2COUNTER._serialized_end=131325 + _PATTERNFLOWPFCPAUSEPAUSECLASS2._serialized_start=131328 + _PATTERNFLOWPFCPAUSEPAUSECLASS2._serialized_end=131806 + _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE._serialized_start=98442 + _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE._serialized_end=98528 + _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWPFCPAUSEPAUSECLASS2_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG._serialized_start=131808 + _PATTERNFLOWPFCPAUSEPAUSECLASS3METRICTAG._serialized_end=131927 + _PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER._serialized_start=131929 + _PATTERNFLOWPFCPAUSEPAUSECLASS3COUNTER._serialized_end=132056 + _PATTERNFLOWPFCPAUSEPAUSECLASS3._serialized_start=132059 + _PATTERNFLOWPFCPAUSEPAUSECLASS3._serialized_end=132537 + _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE._serialized_start=98442 + _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE._serialized_end=98528 + _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWPFCPAUSEPAUSECLASS3_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG._serialized_start=132539 + _PATTERNFLOWPFCPAUSEPAUSECLASS4METRICTAG._serialized_end=132658 + _PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER._serialized_start=132660 + _PATTERNFLOWPFCPAUSEPAUSECLASS4COUNTER._serialized_end=132787 + _PATTERNFLOWPFCPAUSEPAUSECLASS4._serialized_start=132790 + _PATTERNFLOWPFCPAUSEPAUSECLASS4._serialized_end=133268 + _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE._serialized_start=98442 + _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE._serialized_end=98528 + _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWPFCPAUSEPAUSECLASS4_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG._serialized_start=133270 + _PATTERNFLOWPFCPAUSEPAUSECLASS5METRICTAG._serialized_end=133389 + _PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER._serialized_start=133391 + _PATTERNFLOWPFCPAUSEPAUSECLASS5COUNTER._serialized_end=133518 + _PATTERNFLOWPFCPAUSEPAUSECLASS5._serialized_start=133521 + _PATTERNFLOWPFCPAUSEPAUSECLASS5._serialized_end=133999 + _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE._serialized_start=98442 + _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE._serialized_end=98528 + _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWPFCPAUSEPAUSECLASS5_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG._serialized_start=134001 + _PATTERNFLOWPFCPAUSEPAUSECLASS6METRICTAG._serialized_end=134120 + _PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER._serialized_start=134122 + _PATTERNFLOWPFCPAUSEPAUSECLASS6COUNTER._serialized_end=134249 + _PATTERNFLOWPFCPAUSEPAUSECLASS6._serialized_start=134252 + _PATTERNFLOWPFCPAUSEPAUSECLASS6._serialized_end=134730 + _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE._serialized_start=98442 + _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE._serialized_end=98528 + _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWPFCPAUSEPAUSECLASS6_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG._serialized_start=134732 + _PATTERNFLOWPFCPAUSEPAUSECLASS7METRICTAG._serialized_end=134851 + _PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER._serialized_start=134853 + _PATTERNFLOWPFCPAUSEPAUSECLASS7COUNTER._serialized_end=134980 + _PATTERNFLOWPFCPAUSEPAUSECLASS7._serialized_start=134983 + _PATTERNFLOWPFCPAUSEPAUSECLASS7._serialized_end=135461 + _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE._serialized_start=98442 + _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE._serialized_end=98528 + _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWPFCPAUSEPAUSECLASS7_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWETHERNETPAUSEDSTMETRICTAG._serialized_start=135463 + _PATTERNFLOWETHERNETPAUSEDSTMETRICTAG._serialized_end=135579 + _PATTERNFLOWETHERNETPAUSEDSTCOUNTER._serialized_start=135581 + _PATTERNFLOWETHERNETPAUSEDSTCOUNTER._serialized_end=135705 + _PATTERNFLOWETHERNETPAUSEDST._serialized_start=135708 + _PATTERNFLOWETHERNETPAUSEDST._serialized_end=136171 + _PATTERNFLOWETHERNETPAUSEDST_CHOICE._serialized_start=98442 + _PATTERNFLOWETHERNETPAUSEDST_CHOICE._serialized_end=98528 + _PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWETHERNETPAUSEDST_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWETHERNETPAUSESRCMETRICTAG._serialized_start=136173 + _PATTERNFLOWETHERNETPAUSESRCMETRICTAG._serialized_end=136289 + _PATTERNFLOWETHERNETPAUSESRCCOUNTER._serialized_start=136291 + _PATTERNFLOWETHERNETPAUSESRCCOUNTER._serialized_end=136415 + _PATTERNFLOWETHERNETPAUSESRC._serialized_start=136418 + _PATTERNFLOWETHERNETPAUSESRC._serialized_end=136881 + _PATTERNFLOWETHERNETPAUSESRC_CHOICE._serialized_start=98442 + _PATTERNFLOWETHERNETPAUSESRC_CHOICE._serialized_end=98528 + _PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWETHERNETPAUSESRC_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG._serialized_start=136883 + _PATTERNFLOWETHERNETPAUSEETHERTYPEMETRICTAG._serialized_end=137005 + _PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER._serialized_start=137008 + _PATTERNFLOWETHERNETPAUSEETHERTYPECOUNTER._serialized_end=137138 + _PATTERNFLOWETHERNETPAUSEETHERTYPE._serialized_start=137141 + _PATTERNFLOWETHERNETPAUSEETHERTYPE._serialized_end=137634 + _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE._serialized_start=98442 + _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE._serialized_end=98528 + _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWETHERNETPAUSEETHERTYPE_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG._serialized_start=137636 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODEMETRICTAG._serialized_end=137762 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER._serialized_start=137765 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODECOUNTER._serialized_end=137899 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE._serialized_start=137902 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE._serialized_end=138415 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE._serialized_start=98442 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE._serialized_end=98528 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWETHERNETPAUSECONTROLOPCODE_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWETHERNETPAUSETIMEMETRICTAG._serialized_start=138417 + _PATTERNFLOWETHERNETPAUSETIMEMETRICTAG._serialized_end=138534 + _PATTERNFLOWETHERNETPAUSETIMECOUNTER._serialized_start=138536 + _PATTERNFLOWETHERNETPAUSETIMECOUNTER._serialized_end=138661 + _PATTERNFLOWETHERNETPAUSETIME._serialized_start=138664 + _PATTERNFLOWETHERNETPAUSETIME._serialized_end=139132 + _PATTERNFLOWETHERNETPAUSETIME_CHOICE._serialized_start=98442 + _PATTERNFLOWETHERNETPAUSETIME_CHOICE._serialized_end=98528 + _PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWETHERNETPAUSETIME_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWTCPSRCPORTMETRICTAG._serialized_start=139134 + _PATTERNFLOWTCPSRCPORTMETRICTAG._serialized_end=139244 + _PATTERNFLOWTCPSRCPORTCOUNTER._serialized_start=139246 + _PATTERNFLOWTCPSRCPORTCOUNTER._serialized_end=139364 + _PATTERNFLOWTCPSRCPORT._serialized_start=139367 + _PATTERNFLOWTCPSRCPORT._serialized_end=139800 + _PATTERNFLOWTCPSRCPORT_CHOICE._serialized_start=98442 + _PATTERNFLOWTCPSRCPORT_CHOICE._serialized_end=98528 + _PATTERNFLOWTCPSRCPORT_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWTCPSRCPORT_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWTCPDSTPORTMETRICTAG._serialized_start=139802 + _PATTERNFLOWTCPDSTPORTMETRICTAG._serialized_end=139912 + _PATTERNFLOWTCPDSTPORTCOUNTER._serialized_start=139914 + _PATTERNFLOWTCPDSTPORTCOUNTER._serialized_end=140032 + _PATTERNFLOWTCPDSTPORT._serialized_start=140035 + _PATTERNFLOWTCPDSTPORT._serialized_end=140468 + _PATTERNFLOWTCPDSTPORT_CHOICE._serialized_start=98442 + _PATTERNFLOWTCPDSTPORT_CHOICE._serialized_end=98528 + _PATTERNFLOWTCPDSTPORT_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWTCPDSTPORT_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWTCPSEQNUMMETRICTAG._serialized_start=140470 + _PATTERNFLOWTCPSEQNUMMETRICTAG._serialized_end=140579 + _PATTERNFLOWTCPSEQNUMCOUNTER._serialized_start=140581 + _PATTERNFLOWTCPSEQNUMCOUNTER._serialized_end=140698 + _PATTERNFLOWTCPSEQNUM._serialized_start=140701 + _PATTERNFLOWTCPSEQNUM._serialized_end=141129 + _PATTERNFLOWTCPSEQNUM_CHOICE._serialized_start=98442 + _PATTERNFLOWTCPSEQNUM_CHOICE._serialized_end=98528 + _PATTERNFLOWTCPSEQNUM_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWTCPSEQNUM_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWTCPACKNUMMETRICTAG._serialized_start=141131 + _PATTERNFLOWTCPACKNUMMETRICTAG._serialized_end=141240 + _PATTERNFLOWTCPACKNUMCOUNTER._serialized_start=141242 + _PATTERNFLOWTCPACKNUMCOUNTER._serialized_end=141359 + _PATTERNFLOWTCPACKNUM._serialized_start=141362 + _PATTERNFLOWTCPACKNUM._serialized_end=141790 + _PATTERNFLOWTCPACKNUM_CHOICE._serialized_start=98442 + _PATTERNFLOWTCPACKNUM_CHOICE._serialized_end=98528 + _PATTERNFLOWTCPACKNUM_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWTCPACKNUM_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWTCPDATAOFFSETMETRICTAG._serialized_start=141792 + _PATTERNFLOWTCPDATAOFFSETMETRICTAG._serialized_end=141905 + _PATTERNFLOWTCPDATAOFFSETCOUNTER._serialized_start=141907 + _PATTERNFLOWTCPDATAOFFSETCOUNTER._serialized_end=142028 + _PATTERNFLOWTCPDATAOFFSET._serialized_start=142031 + _PATTERNFLOWTCPDATAOFFSET._serialized_end=142479 + _PATTERNFLOWTCPDATAOFFSET_CHOICE._serialized_start=98442 + _PATTERNFLOWTCPDATAOFFSET_CHOICE._serialized_end=98528 + _PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWTCPDATAOFFSET_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWTCPECNNSMETRICTAG._serialized_start=142481 + _PATTERNFLOWTCPECNNSMETRICTAG._serialized_end=142589 + _PATTERNFLOWTCPECNNSCOUNTER._serialized_start=142591 + _PATTERNFLOWTCPECNNSCOUNTER._serialized_end=142707 + _PATTERNFLOWTCPECNNS._serialized_start=142710 + _PATTERNFLOWTCPECNNS._serialized_end=143133 + _PATTERNFLOWTCPECNNS_CHOICE._serialized_start=98442 + _PATTERNFLOWTCPECNNS_CHOICE._serialized_end=98528 + _PATTERNFLOWTCPECNNS_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWTCPECNNS_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWTCPECNCWRMETRICTAG._serialized_start=143135 + _PATTERNFLOWTCPECNCWRMETRICTAG._serialized_end=143244 + _PATTERNFLOWTCPECNCWRCOUNTER._serialized_start=143246 + _PATTERNFLOWTCPECNCWRCOUNTER._serialized_end=143363 + _PATTERNFLOWTCPECNCWR._serialized_start=143366 + _PATTERNFLOWTCPECNCWR._serialized_end=143794 + _PATTERNFLOWTCPECNCWR_CHOICE._serialized_start=98442 + _PATTERNFLOWTCPECNCWR_CHOICE._serialized_end=98528 + _PATTERNFLOWTCPECNCWR_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWTCPECNCWR_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWTCPECNECHOMETRICTAG._serialized_start=143796 + _PATTERNFLOWTCPECNECHOMETRICTAG._serialized_end=143906 + _PATTERNFLOWTCPECNECHOCOUNTER._serialized_start=143908 + _PATTERNFLOWTCPECNECHOCOUNTER._serialized_end=144026 + _PATTERNFLOWTCPECNECHO._serialized_start=144029 + _PATTERNFLOWTCPECNECHO._serialized_end=144462 + _PATTERNFLOWTCPECNECHO_CHOICE._serialized_start=98442 + _PATTERNFLOWTCPECNECHO_CHOICE._serialized_end=98528 + _PATTERNFLOWTCPECNECHO_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWTCPECNECHO_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWTCPCTLURGMETRICTAG._serialized_start=144464 + _PATTERNFLOWTCPCTLURGMETRICTAG._serialized_end=144573 + _PATTERNFLOWTCPCTLURGCOUNTER._serialized_start=144575 + _PATTERNFLOWTCPCTLURGCOUNTER._serialized_end=144692 + _PATTERNFLOWTCPCTLURG._serialized_start=144695 + _PATTERNFLOWTCPCTLURG._serialized_end=145123 + _PATTERNFLOWTCPCTLURG_CHOICE._serialized_start=98442 + _PATTERNFLOWTCPCTLURG_CHOICE._serialized_end=98528 + _PATTERNFLOWTCPCTLURG_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWTCPCTLURG_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWTCPCTLACKMETRICTAG._serialized_start=145125 + _PATTERNFLOWTCPCTLACKMETRICTAG._serialized_end=145234 + _PATTERNFLOWTCPCTLACKCOUNTER._serialized_start=145236 + _PATTERNFLOWTCPCTLACKCOUNTER._serialized_end=145353 + _PATTERNFLOWTCPCTLACK._serialized_start=145356 + _PATTERNFLOWTCPCTLACK._serialized_end=145784 + _PATTERNFLOWTCPCTLACK_CHOICE._serialized_start=98442 + _PATTERNFLOWTCPCTLACK_CHOICE._serialized_end=98528 + _PATTERNFLOWTCPCTLACK_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWTCPCTLACK_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWTCPCTLPSHMETRICTAG._serialized_start=145786 + _PATTERNFLOWTCPCTLPSHMETRICTAG._serialized_end=145895 + _PATTERNFLOWTCPCTLPSHCOUNTER._serialized_start=145897 + _PATTERNFLOWTCPCTLPSHCOUNTER._serialized_end=146014 + _PATTERNFLOWTCPCTLPSH._serialized_start=146017 + _PATTERNFLOWTCPCTLPSH._serialized_end=146445 + _PATTERNFLOWTCPCTLPSH_CHOICE._serialized_start=98442 + _PATTERNFLOWTCPCTLPSH_CHOICE._serialized_end=98528 + _PATTERNFLOWTCPCTLPSH_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWTCPCTLPSH_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWTCPCTLRSTMETRICTAG._serialized_start=146447 + _PATTERNFLOWTCPCTLRSTMETRICTAG._serialized_end=146556 + _PATTERNFLOWTCPCTLRSTCOUNTER._serialized_start=146558 + _PATTERNFLOWTCPCTLRSTCOUNTER._serialized_end=146675 + _PATTERNFLOWTCPCTLRST._serialized_start=146678 + _PATTERNFLOWTCPCTLRST._serialized_end=147106 + _PATTERNFLOWTCPCTLRST_CHOICE._serialized_start=98442 + _PATTERNFLOWTCPCTLRST_CHOICE._serialized_end=98528 + _PATTERNFLOWTCPCTLRST_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWTCPCTLRST_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWTCPCTLSYNMETRICTAG._serialized_start=147108 + _PATTERNFLOWTCPCTLSYNMETRICTAG._serialized_end=147217 + _PATTERNFLOWTCPCTLSYNCOUNTER._serialized_start=147219 + _PATTERNFLOWTCPCTLSYNCOUNTER._serialized_end=147336 + _PATTERNFLOWTCPCTLSYN._serialized_start=147339 + _PATTERNFLOWTCPCTLSYN._serialized_end=147767 + _PATTERNFLOWTCPCTLSYN_CHOICE._serialized_start=98442 + _PATTERNFLOWTCPCTLSYN_CHOICE._serialized_end=98528 + _PATTERNFLOWTCPCTLSYN_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWTCPCTLSYN_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWTCPCTLFINMETRICTAG._serialized_start=147769 + _PATTERNFLOWTCPCTLFINMETRICTAG._serialized_end=147878 + _PATTERNFLOWTCPCTLFINCOUNTER._serialized_start=147880 + _PATTERNFLOWTCPCTLFINCOUNTER._serialized_end=147997 + _PATTERNFLOWTCPCTLFIN._serialized_start=148000 + _PATTERNFLOWTCPCTLFIN._serialized_end=148428 + _PATTERNFLOWTCPCTLFIN_CHOICE._serialized_start=98442 + _PATTERNFLOWTCPCTLFIN_CHOICE._serialized_end=98528 + _PATTERNFLOWTCPCTLFIN_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWTCPCTLFIN_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWTCPWINDOWMETRICTAG._serialized_start=148430 + _PATTERNFLOWTCPWINDOWMETRICTAG._serialized_end=148539 + _PATTERNFLOWTCPWINDOWCOUNTER._serialized_start=148541 + _PATTERNFLOWTCPWINDOWCOUNTER._serialized_end=148658 + _PATTERNFLOWTCPWINDOW._serialized_start=148661 + _PATTERNFLOWTCPWINDOW._serialized_end=149089 + _PATTERNFLOWTCPWINDOW_CHOICE._serialized_start=98442 + _PATTERNFLOWTCPWINDOW_CHOICE._serialized_end=98528 + _PATTERNFLOWTCPWINDOW_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWTCPWINDOW_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWUDPSRCPORTMETRICTAG._serialized_start=149091 + _PATTERNFLOWUDPSRCPORTMETRICTAG._serialized_end=149201 + _PATTERNFLOWUDPSRCPORTCOUNTER._serialized_start=149203 + _PATTERNFLOWUDPSRCPORTCOUNTER._serialized_end=149321 + _PATTERNFLOWUDPSRCPORT._serialized_start=149324 + _PATTERNFLOWUDPSRCPORT._serialized_end=149757 + _PATTERNFLOWUDPSRCPORT_CHOICE._serialized_start=98442 + _PATTERNFLOWUDPSRCPORT_CHOICE._serialized_end=98528 + _PATTERNFLOWUDPSRCPORT_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWUDPSRCPORT_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWUDPDSTPORTMETRICTAG._serialized_start=149759 + _PATTERNFLOWUDPDSTPORTMETRICTAG._serialized_end=149869 + _PATTERNFLOWUDPDSTPORTCOUNTER._serialized_start=149871 + _PATTERNFLOWUDPDSTPORTCOUNTER._serialized_end=149989 + _PATTERNFLOWUDPDSTPORT._serialized_start=149992 + _PATTERNFLOWUDPDSTPORT._serialized_end=150425 + _PATTERNFLOWUDPDSTPORT_CHOICE._serialized_start=98442 + _PATTERNFLOWUDPDSTPORT_CHOICE._serialized_end=98528 + _PATTERNFLOWUDPDSTPORT_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWUDPDSTPORT_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWUDPLENGTHMETRICTAG._serialized_start=150427 + _PATTERNFLOWUDPLENGTHMETRICTAG._serialized_end=150536 + _PATTERNFLOWUDPLENGTHCOUNTER._serialized_start=150538 + _PATTERNFLOWUDPLENGTHCOUNTER._serialized_end=150655 + _PATTERNFLOWUDPLENGTH._serialized_start=150658 + _PATTERNFLOWUDPLENGTH._serialized_end=151086 + _PATTERNFLOWUDPLENGTH_CHOICE._serialized_start=98442 + _PATTERNFLOWUDPLENGTH_CHOICE._serialized_end=98528 + _PATTERNFLOWUDPLENGTH_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWUDPLENGTH_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWUDPCHECKSUM._serialized_start=151089 + _PATTERNFLOWUDPCHECKSUM._serialized_end=151419 + _PATTERNFLOWUDPCHECKSUM_CHOICE._serialized_start=112755 + _PATTERNFLOWUDPCHECKSUM_CHOICE._serialized_end=112815 + _PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM._serialized_start=112765 + _PATTERNFLOWUDPCHECKSUM_CHOICE_ENUM._serialized_end=112815 + _PATTERNFLOWUDPCHECKSUM_GENERATED._serialized_start=112817 + _PATTERNFLOWUDPCHECKSUM_GENERATED._serialized_end=112872 + _PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM._serialized_start=112830 + _PATTERNFLOWUDPCHECKSUM_GENERATED_ENUM._serialized_end=112872 + _PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG._serialized_start=151421 + _PATTERNFLOWGRECHECKSUMPRESENTMETRICTAG._serialized_end=151539 + _PATTERNFLOWGRECHECKSUMPRESENTCOUNTER._serialized_start=151541 + _PATTERNFLOWGRECHECKSUMPRESENTCOUNTER._serialized_end=151667 + _PATTERNFLOWGRECHECKSUMPRESENT._serialized_start=151670 + _PATTERNFLOWGRECHECKSUMPRESENT._serialized_end=152143 + _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE._serialized_start=98442 + _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE._serialized_end=98528 + _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGRECHECKSUMPRESENT_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGRERESERVED0METRICTAG._serialized_start=152145 + _PATTERNFLOWGRERESERVED0METRICTAG._serialized_end=152257 + _PATTERNFLOWGRERESERVED0COUNTER._serialized_start=152259 + _PATTERNFLOWGRERESERVED0COUNTER._serialized_end=152379 + _PATTERNFLOWGRERESERVED0._serialized_start=152382 + _PATTERNFLOWGRERESERVED0._serialized_end=152825 + _PATTERNFLOWGRERESERVED0_CHOICE._serialized_start=98442 + _PATTERNFLOWGRERESERVED0_CHOICE._serialized_end=98528 + _PATTERNFLOWGRERESERVED0_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGRERESERVED0_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGREVERSIONMETRICTAG._serialized_start=152827 + _PATTERNFLOWGREVERSIONMETRICTAG._serialized_end=152937 + _PATTERNFLOWGREVERSIONCOUNTER._serialized_start=152939 + _PATTERNFLOWGREVERSIONCOUNTER._serialized_end=153057 + _PATTERNFLOWGREVERSION._serialized_start=153060 + _PATTERNFLOWGREVERSION._serialized_end=153493 + _PATTERNFLOWGREVERSION_CHOICE._serialized_start=98442 + _PATTERNFLOWGREVERSION_CHOICE._serialized_end=98528 + _PATTERNFLOWGREVERSION_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGREVERSION_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGREPROTOCOLMETRICTAG._serialized_start=153495 + _PATTERNFLOWGREPROTOCOLMETRICTAG._serialized_end=153606 + _PATTERNFLOWGREPROTOCOLCOUNTER._serialized_start=153608 + _PATTERNFLOWGREPROTOCOLCOUNTER._serialized_end=153727 + _PATTERNFLOWGREPROTOCOL._serialized_start=153730 + _PATTERNFLOWGREPROTOCOL._serialized_end=154168 + _PATTERNFLOWGREPROTOCOL_CHOICE._serialized_start=98442 + _PATTERNFLOWGREPROTOCOL_CHOICE._serialized_end=98528 + _PATTERNFLOWGREPROTOCOL_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGREPROTOCOL_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGRECHECKSUM._serialized_start=154171 + _PATTERNFLOWGRECHECKSUM._serialized_end=154501 + _PATTERNFLOWGRECHECKSUM_CHOICE._serialized_start=112755 + _PATTERNFLOWGRECHECKSUM_CHOICE._serialized_end=112815 + _PATTERNFLOWGRECHECKSUM_CHOICE_ENUM._serialized_start=112765 + _PATTERNFLOWGRECHECKSUM_CHOICE_ENUM._serialized_end=112815 + _PATTERNFLOWGRECHECKSUM_GENERATED._serialized_start=112817 + _PATTERNFLOWGRECHECKSUM_GENERATED._serialized_end=112872 + _PATTERNFLOWGRECHECKSUM_GENERATED_ENUM._serialized_start=112830 + _PATTERNFLOWGRECHECKSUM_GENERATED_ENUM._serialized_end=112872 + _PATTERNFLOWGRERESERVED1METRICTAG._serialized_start=154503 + _PATTERNFLOWGRERESERVED1METRICTAG._serialized_end=154615 + _PATTERNFLOWGRERESERVED1COUNTER._serialized_start=154617 + _PATTERNFLOWGRERESERVED1COUNTER._serialized_end=154737 + _PATTERNFLOWGRERESERVED1._serialized_start=154740 + _PATTERNFLOWGRERESERVED1._serialized_end=155183 + _PATTERNFLOWGRERESERVED1_CHOICE._serialized_start=98442 + _PATTERNFLOWGRERESERVED1_CHOICE._serialized_end=98528 + _PATTERNFLOWGRERESERVED1_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGRERESERVED1_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPV1VERSIONMETRICTAG._serialized_start=155185 + _PATTERNFLOWGTPV1VERSIONMETRICTAG._serialized_end=155297 + _PATTERNFLOWGTPV1VERSIONCOUNTER._serialized_start=155299 + _PATTERNFLOWGTPV1VERSIONCOUNTER._serialized_end=155419 + _PATTERNFLOWGTPV1VERSION._serialized_start=155422 + _PATTERNFLOWGTPV1VERSION._serialized_end=155865 + _PATTERNFLOWGTPV1VERSION_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPV1VERSION_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPV1VERSION_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPV1VERSION_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG._serialized_start=155867 + _PATTERNFLOWGTPV1PROTOCOLTYPEMETRICTAG._serialized_end=155984 + _PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER._serialized_start=155986 + _PATTERNFLOWGTPV1PROTOCOLTYPECOUNTER._serialized_end=156111 + _PATTERNFLOWGTPV1PROTOCOLTYPE._serialized_start=156114 + _PATTERNFLOWGTPV1PROTOCOLTYPE._serialized_end=156582 + _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPV1PROTOCOLTYPE_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPV1RESERVEDMETRICTAG._serialized_start=156584 + _PATTERNFLOWGTPV1RESERVEDMETRICTAG._serialized_end=156697 + _PATTERNFLOWGTPV1RESERVEDCOUNTER._serialized_start=156699 + _PATTERNFLOWGTPV1RESERVEDCOUNTER._serialized_end=156820 + _PATTERNFLOWGTPV1RESERVED._serialized_start=156823 + _PATTERNFLOWGTPV1RESERVED._serialized_end=157271 + _PATTERNFLOWGTPV1RESERVED_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPV1RESERVED_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPV1RESERVED_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPV1EFLAGMETRICTAG._serialized_start=157273 + _PATTERNFLOWGTPV1EFLAGMETRICTAG._serialized_end=157383 + _PATTERNFLOWGTPV1EFLAGCOUNTER._serialized_start=157385 + _PATTERNFLOWGTPV1EFLAGCOUNTER._serialized_end=157503 + _PATTERNFLOWGTPV1EFLAG._serialized_start=157506 + _PATTERNFLOWGTPV1EFLAG._serialized_end=157939 + _PATTERNFLOWGTPV1EFLAG_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPV1EFLAG_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPV1EFLAG_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPV1SFLAGMETRICTAG._serialized_start=157941 + _PATTERNFLOWGTPV1SFLAGMETRICTAG._serialized_end=158051 + _PATTERNFLOWGTPV1SFLAGCOUNTER._serialized_start=158053 + _PATTERNFLOWGTPV1SFLAGCOUNTER._serialized_end=158171 + _PATTERNFLOWGTPV1SFLAG._serialized_start=158174 + _PATTERNFLOWGTPV1SFLAG._serialized_end=158607 + _PATTERNFLOWGTPV1SFLAG_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPV1SFLAG_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPV1SFLAG_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPV1PNFLAGMETRICTAG._serialized_start=158609 + _PATTERNFLOWGTPV1PNFLAGMETRICTAG._serialized_end=158720 + _PATTERNFLOWGTPV1PNFLAGCOUNTER._serialized_start=158722 + _PATTERNFLOWGTPV1PNFLAGCOUNTER._serialized_end=158841 + _PATTERNFLOWGTPV1PNFLAG._serialized_start=158844 + _PATTERNFLOWGTPV1PNFLAG._serialized_end=159282 + _PATTERNFLOWGTPV1PNFLAG_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPV1PNFLAG_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPV1PNFLAG_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG._serialized_start=159284 + _PATTERNFLOWGTPV1MESSAGETYPEMETRICTAG._serialized_end=159400 + _PATTERNFLOWGTPV1MESSAGETYPECOUNTER._serialized_start=159402 + _PATTERNFLOWGTPV1MESSAGETYPECOUNTER._serialized_end=159526 + _PATTERNFLOWGTPV1MESSAGETYPE._serialized_start=159529 + _PATTERNFLOWGTPV1MESSAGETYPE._serialized_end=159992 + _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPV1MESSAGETYPE_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG._serialized_start=159994 + _PATTERNFLOWGTPV1MESSAGELENGTHMETRICTAG._serialized_end=160112 + _PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER._serialized_start=160114 + _PATTERNFLOWGTPV1MESSAGELENGTHCOUNTER._serialized_end=160240 + _PATTERNFLOWGTPV1MESSAGELENGTH._serialized_start=160243 + _PATTERNFLOWGTPV1MESSAGELENGTH._serialized_end=160716 + _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPV1MESSAGELENGTH_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPV1TEIDMETRICTAG._serialized_start=160718 + _PATTERNFLOWGTPV1TEIDMETRICTAG._serialized_end=160827 + _PATTERNFLOWGTPV1TEIDCOUNTER._serialized_start=160829 + _PATTERNFLOWGTPV1TEIDCOUNTER._serialized_end=160946 + _PATTERNFLOWGTPV1TEID._serialized_start=160949 + _PATTERNFLOWGTPV1TEID._serialized_end=161377 + _PATTERNFLOWGTPV1TEID_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPV1TEID_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPV1TEID_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPV1TEID_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG._serialized_start=161379 + _PATTERNFLOWGTPV1SQUENCENUMBERMETRICTAG._serialized_end=161497 + _PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER._serialized_start=161499 + _PATTERNFLOWGTPV1SQUENCENUMBERCOUNTER._serialized_end=161625 + _PATTERNFLOWGTPV1SQUENCENUMBER._serialized_start=161628 + _PATTERNFLOWGTPV1SQUENCENUMBER._serialized_end=162101 + _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPV1SQUENCENUMBER_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG._serialized_start=162103 + _PATTERNFLOWGTPV1NPDUNUMBERMETRICTAG._serialized_end=162218 + _PATTERNFLOWGTPV1NPDUNUMBERCOUNTER._serialized_start=162220 + _PATTERNFLOWGTPV1NPDUNUMBERCOUNTER._serialized_end=162343 + _PATTERNFLOWGTPV1NPDUNUMBER._serialized_start=162346 + _PATTERNFLOWGTPV1NPDUNUMBER._serialized_end=162804 + _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPV1NPDUNUMBER_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG._serialized_start=162807 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPEMETRICTAG._serialized_end=162935 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER._serialized_start=162938 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPECOUNTER._serialized_end=163074 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE._serialized_start=163077 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE._serialized_end=163600 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPV1NEXTEXTENSIONHEADERTYPE_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG._serialized_start=163602 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHMETRICTAG._serialized_end=163729 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER._serialized_start=163732 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTHCOUNTER._serialized_end=163867 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH._serialized_start=163870 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH._serialized_end=164388 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPEXTENSIONEXTENSIONLENGTH_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG._serialized_start=164390 + _PATTERNFLOWGTPEXTENSIONCONTENTSMETRICTAG._serialized_end=164510 + _PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER._serialized_start=164513 + _PATTERNFLOWGTPEXTENSIONCONTENTSCOUNTER._serialized_end=164641 + _PATTERNFLOWGTPEXTENSIONCONTENTS._serialized_start=164644 + _PATTERNFLOWGTPEXTENSIONCONTENTS._serialized_end=165127 + _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPEXTENSIONCONTENTS_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG._serialized_start=165130 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERMETRICTAG._serialized_end=165261 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER._serialized_start=165264 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADERCOUNTER._serialized_end=165403 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER._serialized_start=165406 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER._serialized_end=165944 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPEXTENSIONNEXTEXTENSIONHEADER_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPV2VERSIONMETRICTAG._serialized_start=165946 + _PATTERNFLOWGTPV2VERSIONMETRICTAG._serialized_end=166058 + _PATTERNFLOWGTPV2VERSIONCOUNTER._serialized_start=166060 + _PATTERNFLOWGTPV2VERSIONCOUNTER._serialized_end=166180 + _PATTERNFLOWGTPV2VERSION._serialized_start=166183 + _PATTERNFLOWGTPV2VERSION._serialized_end=166626 + _PATTERNFLOWGTPV2VERSION_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPV2VERSION_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPV2VERSION_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPV2VERSION_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG._serialized_start=166628 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAGMETRICTAG._serialized_end=166749 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER._serialized_start=166752 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAGCOUNTER._serialized_end=166881 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG._serialized_start=166884 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG._serialized_end=167372 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPV2PIGGYBACKINGFLAG_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPV2TEIDFLAGMETRICTAG._serialized_start=167374 + _PATTERNFLOWGTPV2TEIDFLAGMETRICTAG._serialized_end=167487 + _PATTERNFLOWGTPV2TEIDFLAGCOUNTER._serialized_start=167489 + _PATTERNFLOWGTPV2TEIDFLAGCOUNTER._serialized_end=167610 + _PATTERNFLOWGTPV2TEIDFLAG._serialized_start=167613 + _PATTERNFLOWGTPV2TEIDFLAG._serialized_end=168061 + _PATTERNFLOWGTPV2TEIDFLAG_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPV2TEIDFLAG_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPV2TEIDFLAG_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPV2SPARE1METRICTAG._serialized_start=168063 + _PATTERNFLOWGTPV2SPARE1METRICTAG._serialized_end=168174 + _PATTERNFLOWGTPV2SPARE1COUNTER._serialized_start=168176 + _PATTERNFLOWGTPV2SPARE1COUNTER._serialized_end=168295 + _PATTERNFLOWGTPV2SPARE1._serialized_start=168298 + _PATTERNFLOWGTPV2SPARE1._serialized_end=168736 + _PATTERNFLOWGTPV2SPARE1_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPV2SPARE1_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPV2SPARE1_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG._serialized_start=168738 + _PATTERNFLOWGTPV2MESSAGETYPEMETRICTAG._serialized_end=168854 + _PATTERNFLOWGTPV2MESSAGETYPECOUNTER._serialized_start=168856 + _PATTERNFLOWGTPV2MESSAGETYPECOUNTER._serialized_end=168980 + _PATTERNFLOWGTPV2MESSAGETYPE._serialized_start=168983 + _PATTERNFLOWGTPV2MESSAGETYPE._serialized_end=169446 + _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPV2MESSAGETYPE_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG._serialized_start=169448 + _PATTERNFLOWGTPV2MESSAGELENGTHMETRICTAG._serialized_end=169566 + _PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER._serialized_start=169568 + _PATTERNFLOWGTPV2MESSAGELENGTHCOUNTER._serialized_end=169694 + _PATTERNFLOWGTPV2MESSAGELENGTH._serialized_start=169697 + _PATTERNFLOWGTPV2MESSAGELENGTH._serialized_end=170170 + _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPV2MESSAGELENGTH_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPV2TEIDMETRICTAG._serialized_start=170172 + _PATTERNFLOWGTPV2TEIDMETRICTAG._serialized_end=170281 + _PATTERNFLOWGTPV2TEIDCOUNTER._serialized_start=170283 + _PATTERNFLOWGTPV2TEIDCOUNTER._serialized_end=170400 + _PATTERNFLOWGTPV2TEID._serialized_start=170403 + _PATTERNFLOWGTPV2TEID._serialized_end=170831 + _PATTERNFLOWGTPV2TEID_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPV2TEID_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPV2TEID_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPV2TEID_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG._serialized_start=170833 + _PATTERNFLOWGTPV2SEQUENCENUMBERMETRICTAG._serialized_end=170952 + _PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER._serialized_start=170954 + _PATTERNFLOWGTPV2SEQUENCENUMBERCOUNTER._serialized_end=171081 + _PATTERNFLOWGTPV2SEQUENCENUMBER._serialized_start=171084 + _PATTERNFLOWGTPV2SEQUENCENUMBER._serialized_end=171562 + _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPV2SEQUENCENUMBER_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWGTPV2SPARE2METRICTAG._serialized_start=171564 + _PATTERNFLOWGTPV2SPARE2METRICTAG._serialized_end=171675 + _PATTERNFLOWGTPV2SPARE2COUNTER._serialized_start=171677 + _PATTERNFLOWGTPV2SPARE2COUNTER._serialized_end=171796 + _PATTERNFLOWGTPV2SPARE2._serialized_start=171799 + _PATTERNFLOWGTPV2SPARE2._serialized_end=172237 + _PATTERNFLOWGTPV2SPARE2_CHOICE._serialized_start=98442 + _PATTERNFLOWGTPV2SPARE2_CHOICE._serialized_end=98528 + _PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWGTPV2SPARE2_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWARPHARDWARETYPEMETRICTAG._serialized_start=172239 + _PATTERNFLOWARPHARDWARETYPEMETRICTAG._serialized_end=172354 + _PATTERNFLOWARPHARDWARETYPECOUNTER._serialized_start=172356 + _PATTERNFLOWARPHARDWARETYPECOUNTER._serialized_end=172479 + _PATTERNFLOWARPHARDWARETYPE._serialized_start=172482 + _PATTERNFLOWARPHARDWARETYPE._serialized_end=172940 + _PATTERNFLOWARPHARDWARETYPE_CHOICE._serialized_start=98442 + _PATTERNFLOWARPHARDWARETYPE_CHOICE._serialized_end=98528 + _PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWARPHARDWARETYPE_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWARPPROTOCOLTYPEMETRICTAG._serialized_start=172942 + _PATTERNFLOWARPPROTOCOLTYPEMETRICTAG._serialized_end=173057 + _PATTERNFLOWARPPROTOCOLTYPECOUNTER._serialized_start=173059 + _PATTERNFLOWARPPROTOCOLTYPECOUNTER._serialized_end=173182 + _PATTERNFLOWARPPROTOCOLTYPE._serialized_start=173185 + _PATTERNFLOWARPPROTOCOLTYPE._serialized_end=173643 + _PATTERNFLOWARPPROTOCOLTYPE_CHOICE._serialized_start=98442 + _PATTERNFLOWARPPROTOCOLTYPE_CHOICE._serialized_end=98528 + _PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWARPPROTOCOLTYPE_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWARPHARDWARELENGTHMETRICTAG._serialized_start=173645 + _PATTERNFLOWARPHARDWARELENGTHMETRICTAG._serialized_end=173762 + _PATTERNFLOWARPHARDWARELENGTHCOUNTER._serialized_start=173764 + _PATTERNFLOWARPHARDWARELENGTHCOUNTER._serialized_end=173889 + _PATTERNFLOWARPHARDWARELENGTH._serialized_start=173892 + _PATTERNFLOWARPHARDWARELENGTH._serialized_end=174360 + _PATTERNFLOWARPHARDWARELENGTH_CHOICE._serialized_start=98442 + _PATTERNFLOWARPHARDWARELENGTH_CHOICE._serialized_end=98528 + _PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWARPHARDWARELENGTH_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG._serialized_start=174362 + _PATTERNFLOWARPPROTOCOLLENGTHMETRICTAG._serialized_end=174479 + _PATTERNFLOWARPPROTOCOLLENGTHCOUNTER._serialized_start=174481 + _PATTERNFLOWARPPROTOCOLLENGTHCOUNTER._serialized_end=174606 + _PATTERNFLOWARPPROTOCOLLENGTH._serialized_start=174609 + _PATTERNFLOWARPPROTOCOLLENGTH._serialized_end=175077 + _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE._serialized_start=98442 + _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE._serialized_end=98528 + _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWARPPROTOCOLLENGTH_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWARPOPERATIONMETRICTAG._serialized_start=175079 + _PATTERNFLOWARPOPERATIONMETRICTAG._serialized_end=175191 + _PATTERNFLOWARPOPERATIONCOUNTER._serialized_start=175193 + _PATTERNFLOWARPOPERATIONCOUNTER._serialized_end=175313 + _PATTERNFLOWARPOPERATION._serialized_start=175316 + _PATTERNFLOWARPOPERATION._serialized_end=175759 + _PATTERNFLOWARPOPERATION_CHOICE._serialized_start=98442 + _PATTERNFLOWARPOPERATION_CHOICE._serialized_end=98528 + _PATTERNFLOWARPOPERATION_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWARPOPERATION_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG._serialized_start=175761 + _PATTERNFLOWARPSENDERHARDWAREADDRMETRICTAG._serialized_end=175882 + _PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER._serialized_start=175885 + _PATTERNFLOWARPSENDERHARDWAREADDRCOUNTER._serialized_end=176014 + _PATTERNFLOWARPSENDERHARDWAREADDR._serialized_start=176017 + _PATTERNFLOWARPSENDERHARDWAREADDR._serialized_end=176505 + _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE._serialized_start=98442 + _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE._serialized_end=98528 + _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWARPSENDERHARDWAREADDR_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG._serialized_start=176507 + _PATTERNFLOWARPSENDERPROTOCOLADDRMETRICTAG._serialized_end=176628 + _PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER._serialized_start=176631 + _PATTERNFLOWARPSENDERPROTOCOLADDRCOUNTER._serialized_end=176760 + _PATTERNFLOWARPSENDERPROTOCOLADDR._serialized_start=176763 + _PATTERNFLOWARPSENDERPROTOCOLADDR._serialized_end=177251 + _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE._serialized_start=98442 + _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE._serialized_end=98528 + _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWARPSENDERPROTOCOLADDR_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG._serialized_start=177253 + _PATTERNFLOWARPTARGETHARDWAREADDRMETRICTAG._serialized_end=177374 + _PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER._serialized_start=177377 + _PATTERNFLOWARPTARGETHARDWAREADDRCOUNTER._serialized_end=177506 + _PATTERNFLOWARPTARGETHARDWAREADDR._serialized_start=177509 + _PATTERNFLOWARPTARGETHARDWAREADDR._serialized_end=177997 + _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE._serialized_start=98442 + _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE._serialized_end=98528 + _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWARPTARGETHARDWAREADDR_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG._serialized_start=177999 + _PATTERNFLOWARPTARGETPROTOCOLADDRMETRICTAG._serialized_end=178120 + _PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER._serialized_start=178123 + _PATTERNFLOWARPTARGETPROTOCOLADDRCOUNTER._serialized_end=178252 + _PATTERNFLOWARPTARGETPROTOCOLADDR._serialized_start=178255 + _PATTERNFLOWARPTARGETPROTOCOLADDR._serialized_end=178743 + _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE._serialized_start=98442 + _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE._serialized_end=98528 + _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWARPTARGETPROTOCOLADDR_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWICMPECHOTYPEMETRICTAG._serialized_start=178745 + _PATTERNFLOWICMPECHOTYPEMETRICTAG._serialized_end=178857 + _PATTERNFLOWICMPECHOTYPECOUNTER._serialized_start=178859 + _PATTERNFLOWICMPECHOTYPECOUNTER._serialized_end=178979 + _PATTERNFLOWICMPECHOTYPE._serialized_start=178982 + _PATTERNFLOWICMPECHOTYPE._serialized_end=179425 + _PATTERNFLOWICMPECHOTYPE_CHOICE._serialized_start=98442 + _PATTERNFLOWICMPECHOTYPE_CHOICE._serialized_end=98528 + _PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWICMPECHOTYPE_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWICMPECHOCODEMETRICTAG._serialized_start=179427 + _PATTERNFLOWICMPECHOCODEMETRICTAG._serialized_end=179539 + _PATTERNFLOWICMPECHOCODECOUNTER._serialized_start=179541 + _PATTERNFLOWICMPECHOCODECOUNTER._serialized_end=179661 + _PATTERNFLOWICMPECHOCODE._serialized_start=179664 + _PATTERNFLOWICMPECHOCODE._serialized_end=180107 + _PATTERNFLOWICMPECHOCODE_CHOICE._serialized_start=98442 + _PATTERNFLOWICMPECHOCODE_CHOICE._serialized_end=98528 + _PATTERNFLOWICMPECHOCODE_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWICMPECHOCODE_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWICMPECHOCHECKSUM._serialized_start=180110 + _PATTERNFLOWICMPECHOCHECKSUM._serialized_end=180455 + _PATTERNFLOWICMPECHOCHECKSUM_CHOICE._serialized_start=112755 + _PATTERNFLOWICMPECHOCHECKSUM_CHOICE._serialized_end=112815 + _PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM._serialized_start=112765 + _PATTERNFLOWICMPECHOCHECKSUM_CHOICE_ENUM._serialized_end=112815 + _PATTERNFLOWICMPECHOCHECKSUM_GENERATED._serialized_start=112817 + _PATTERNFLOWICMPECHOCHECKSUM_GENERATED._serialized_end=112872 + _PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM._serialized_start=112830 + _PATTERNFLOWICMPECHOCHECKSUM_GENERATED_ENUM._serialized_end=112872 + _PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG._serialized_start=180457 + _PATTERNFLOWICMPECHOIDENTIFIERMETRICTAG._serialized_end=180575 + _PATTERNFLOWICMPECHOIDENTIFIERCOUNTER._serialized_start=180577 + _PATTERNFLOWICMPECHOIDENTIFIERCOUNTER._serialized_end=180703 + _PATTERNFLOWICMPECHOIDENTIFIER._serialized_start=180706 + _PATTERNFLOWICMPECHOIDENTIFIER._serialized_end=181179 + _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE._serialized_start=98442 + _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE._serialized_end=98528 + _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWICMPECHOIDENTIFIER_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG._serialized_start=181181 + _PATTERNFLOWICMPECHOSEQUENCENUMBERMETRICTAG._serialized_end=181303 + _PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER._serialized_start=181306 + _PATTERNFLOWICMPECHOSEQUENCENUMBERCOUNTER._serialized_end=181436 + _PATTERNFLOWICMPECHOSEQUENCENUMBER._serialized_start=181439 + _PATTERNFLOWICMPECHOSEQUENCENUMBER._serialized_end=181932 + _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE._serialized_start=98442 + _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE._serialized_end=98528 + _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWICMPECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWICMPCOMMONCHECKSUM._serialized_start=181935 + _PATTERNFLOWICMPCOMMONCHECKSUM._serialized_end=182286 + _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE._serialized_start=112755 + _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE._serialized_end=112815 + _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM._serialized_start=112765 + _PATTERNFLOWICMPCOMMONCHECKSUM_CHOICE_ENUM._serialized_end=112815 + _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED._serialized_start=112817 + _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED._serialized_end=112872 + _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM._serialized_start=112830 + _PATTERNFLOWICMPCOMMONCHECKSUM_GENERATED_ENUM._serialized_end=112872 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG._serialized_start=182288 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERMETRICTAG._serialized_end=182412 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER._serialized_start=182415 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIERCOUNTER._serialized_end=182547 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER._serialized_start=182550 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER._serialized_end=183053 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE._serialized_start=98442 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE._serialized_end=98528 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWICMPNEXTFIELDSIDENTIFIER_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG._serialized_start=183056 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERMETRICTAG._serialized_end=183184 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER._serialized_start=183187 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBERCOUNTER._serialized_end=183323 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER._serialized_start=183326 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER._serialized_end=183849 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE._serialized_start=98442 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE._serialized_end=98528 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWICMPNEXTFIELDSSEQUENCENUMBER_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWICMPV6ECHOTYPEMETRICTAG._serialized_start=183851 + _PATTERNFLOWICMPV6ECHOTYPEMETRICTAG._serialized_end=183965 + _PATTERNFLOWICMPV6ECHOTYPECOUNTER._serialized_start=183967 + _PATTERNFLOWICMPV6ECHOTYPECOUNTER._serialized_end=184089 + _PATTERNFLOWICMPV6ECHOTYPE._serialized_start=184092 + _PATTERNFLOWICMPV6ECHOTYPE._serialized_end=184545 + _PATTERNFLOWICMPV6ECHOTYPE_CHOICE._serialized_start=98442 + _PATTERNFLOWICMPV6ECHOTYPE_CHOICE._serialized_end=98528 + _PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWICMPV6ECHOTYPE_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWICMPV6ECHOCODEMETRICTAG._serialized_start=184547 + _PATTERNFLOWICMPV6ECHOCODEMETRICTAG._serialized_end=184661 + _PATTERNFLOWICMPV6ECHOCODECOUNTER._serialized_start=184663 + _PATTERNFLOWICMPV6ECHOCODECOUNTER._serialized_end=184785 + _PATTERNFLOWICMPV6ECHOCODE._serialized_start=184788 + _PATTERNFLOWICMPV6ECHOCODE._serialized_end=185241 + _PATTERNFLOWICMPV6ECHOCODE_CHOICE._serialized_start=98442 + _PATTERNFLOWICMPV6ECHOCODE_CHOICE._serialized_end=98528 + _PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWICMPV6ECHOCODE_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG._serialized_start=185243 + _PATTERNFLOWICMPV6ECHOIDENTIFIERMETRICTAG._serialized_end=185363 + _PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER._serialized_start=185366 + _PATTERNFLOWICMPV6ECHOIDENTIFIERCOUNTER._serialized_end=185494 + _PATTERNFLOWICMPV6ECHOIDENTIFIER._serialized_start=185497 + _PATTERNFLOWICMPV6ECHOIDENTIFIER._serialized_end=185980 + _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE._serialized_start=98442 + _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE._serialized_end=98528 + _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWICMPV6ECHOIDENTIFIER_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG._serialized_start=185982 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERMETRICTAG._serialized_end=186106 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER._serialized_start=186109 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBERCOUNTER._serialized_end=186241 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER._serialized_start=186244 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER._serialized_end=186747 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE._serialized_start=98442 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE._serialized_end=98528 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWICMPV6ECHOSEQUENCENUMBER_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWICMPV6ECHOCHECKSUM._serialized_start=186750 + _PATTERNFLOWICMPV6ECHOCHECKSUM._serialized_end=187101 + _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE._serialized_start=112755 + _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE._serialized_end=112815 + _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM._serialized_start=112765 + _PATTERNFLOWICMPV6ECHOCHECKSUM_CHOICE_ENUM._serialized_end=112815 + _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED._serialized_start=112817 + _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED._serialized_end=112872 + _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM._serialized_start=112830 + _PATTERNFLOWICMPV6ECHOCHECKSUM_GENERATED_ENUM._serialized_end=112872 + _PATTERNFLOWICMPV6COMMONCHECKSUM._serialized_start=187104 + _PATTERNFLOWICMPV6COMMONCHECKSUM._serialized_end=187461 + _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE._serialized_start=112755 + _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE._serialized_end=112815 + _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM._serialized_start=112765 + _PATTERNFLOWICMPV6COMMONCHECKSUM_CHOICE_ENUM._serialized_end=112815 + _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED._serialized_start=112817 + _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED._serialized_end=112872 + _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM._serialized_start=112830 + _PATTERNFLOWICMPV6COMMONCHECKSUM_GENERATED_ENUM._serialized_end=112872 + _PATTERNFLOWPPPADDRESSMETRICTAG._serialized_start=187463 + _PATTERNFLOWPPPADDRESSMETRICTAG._serialized_end=187573 + _PATTERNFLOWPPPADDRESSCOUNTER._serialized_start=187575 + _PATTERNFLOWPPPADDRESSCOUNTER._serialized_end=187693 + _PATTERNFLOWPPPADDRESS._serialized_start=187696 + _PATTERNFLOWPPPADDRESS._serialized_end=188129 + _PATTERNFLOWPPPADDRESS_CHOICE._serialized_start=98442 + _PATTERNFLOWPPPADDRESS_CHOICE._serialized_end=98528 + _PATTERNFLOWPPPADDRESS_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWPPPADDRESS_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWPPPCONTROLMETRICTAG._serialized_start=188131 + _PATTERNFLOWPPPCONTROLMETRICTAG._serialized_end=188241 + _PATTERNFLOWPPPCONTROLCOUNTER._serialized_start=188243 + _PATTERNFLOWPPPCONTROLCOUNTER._serialized_end=188361 + _PATTERNFLOWPPPCONTROL._serialized_start=188364 + _PATTERNFLOWPPPCONTROL._serialized_end=188797 + _PATTERNFLOWPPPCONTROL_CHOICE._serialized_start=98442 + _PATTERNFLOWPPPCONTROL_CHOICE._serialized_end=98528 + _PATTERNFLOWPPPCONTROL_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWPPPCONTROL_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG._serialized_start=188799 + _PATTERNFLOWPPPPROTOCOLTYPEMETRICTAG._serialized_end=188914 + _PATTERNFLOWPPPPROTOCOLTYPECOUNTER._serialized_start=188916 + _PATTERNFLOWPPPPROTOCOLTYPECOUNTER._serialized_end=189039 + _PATTERNFLOWPPPPROTOCOLTYPE._serialized_start=189042 + _PATTERNFLOWPPPPROTOCOLTYPE._serialized_end=189538 + _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE._serialized_start=97748 + _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE._serialized_end=97844 + _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM._serialized_start=97758 + _PATTERNFLOWPPPPROTOCOLTYPE_CHOICE_ENUM._serialized_end=97844 + _PATTERNFLOWIGMPV1VERSIONMETRICTAG._serialized_start=189540 + _PATTERNFLOWIGMPV1VERSIONMETRICTAG._serialized_end=189653 + _PATTERNFLOWIGMPV1VERSIONCOUNTER._serialized_start=189655 + _PATTERNFLOWIGMPV1VERSIONCOUNTER._serialized_end=189776 + _PATTERNFLOWIGMPV1VERSION._serialized_start=189779 + _PATTERNFLOWIGMPV1VERSION._serialized_end=190227 + _PATTERNFLOWIGMPV1VERSION_CHOICE._serialized_start=98442 + _PATTERNFLOWIGMPV1VERSION_CHOICE._serialized_end=98528 + _PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIGMPV1VERSION_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIGMPV1TYPEMETRICTAG._serialized_start=190229 + _PATTERNFLOWIGMPV1TYPEMETRICTAG._serialized_end=190339 + _PATTERNFLOWIGMPV1TYPECOUNTER._serialized_start=190341 + _PATTERNFLOWIGMPV1TYPECOUNTER._serialized_end=190459 + _PATTERNFLOWIGMPV1TYPE._serialized_start=190462 + _PATTERNFLOWIGMPV1TYPE._serialized_end=190895 + _PATTERNFLOWIGMPV1TYPE_CHOICE._serialized_start=98442 + _PATTERNFLOWIGMPV1TYPE_CHOICE._serialized_end=98528 + _PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIGMPV1TYPE_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIGMPV1UNUSEDMETRICTAG._serialized_start=190897 + _PATTERNFLOWIGMPV1UNUSEDMETRICTAG._serialized_end=191009 + _PATTERNFLOWIGMPV1UNUSEDCOUNTER._serialized_start=191011 + _PATTERNFLOWIGMPV1UNUSEDCOUNTER._serialized_end=191131 + _PATTERNFLOWIGMPV1UNUSED._serialized_start=191134 + _PATTERNFLOWIGMPV1UNUSED._serialized_end=191577 + _PATTERNFLOWIGMPV1UNUSED_CHOICE._serialized_start=98442 + _PATTERNFLOWIGMPV1UNUSED_CHOICE._serialized_end=98528 + _PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIGMPV1UNUSED_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWIGMPV1CHECKSUM._serialized_start=191580 + _PATTERNFLOWIGMPV1CHECKSUM._serialized_end=191919 + _PATTERNFLOWIGMPV1CHECKSUM_CHOICE._serialized_start=112755 + _PATTERNFLOWIGMPV1CHECKSUM_CHOICE._serialized_end=112815 + _PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM._serialized_start=112765 + _PATTERNFLOWIGMPV1CHECKSUM_CHOICE_ENUM._serialized_end=112815 + _PATTERNFLOWIGMPV1CHECKSUM_GENERATED._serialized_start=112817 + _PATTERNFLOWIGMPV1CHECKSUM_GENERATED._serialized_end=112872 + _PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM._serialized_start=112830 + _PATTERNFLOWIGMPV1CHECKSUM_GENERATED_ENUM._serialized_end=112872 + _PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG._serialized_start=191921 + _PATTERNFLOWIGMPV1GROUPADDRESSMETRICTAG._serialized_end=192039 + _PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER._serialized_start=192041 + _PATTERNFLOWIGMPV1GROUPADDRESSCOUNTER._serialized_end=192167 + _PATTERNFLOWIGMPV1GROUPADDRESS._serialized_start=192170 + _PATTERNFLOWIGMPV1GROUPADDRESS._serialized_end=192643 + _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE._serialized_start=98442 + _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE._serialized_end=98528 + _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWIGMPV1GROUPADDRESS_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWMPLSLABELMETRICTAG._serialized_start=192645 + _PATTERNFLOWMPLSLABELMETRICTAG._serialized_end=192754 + _PATTERNFLOWMPLSLABELCOUNTER._serialized_start=192756 + _PATTERNFLOWMPLSLABELCOUNTER._serialized_end=192873 + _PATTERNFLOWMPLSLABEL._serialized_start=192876 + _PATTERNFLOWMPLSLABEL._serialized_end=193342 + _PATTERNFLOWMPLSLABEL_CHOICE._serialized_start=97748 + _PATTERNFLOWMPLSLABEL_CHOICE._serialized_end=97844 + _PATTERNFLOWMPLSLABEL_CHOICE_ENUM._serialized_start=97758 + _PATTERNFLOWMPLSLABEL_CHOICE_ENUM._serialized_end=97844 + _PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG._serialized_start=193344 + _PATTERNFLOWMPLSTRAFFICCLASSMETRICTAG._serialized_end=193460 + _PATTERNFLOWMPLSTRAFFICCLASSCOUNTER._serialized_start=193462 + _PATTERNFLOWMPLSTRAFFICCLASSCOUNTER._serialized_end=193586 + _PATTERNFLOWMPLSTRAFFICCLASS._serialized_start=193589 + _PATTERNFLOWMPLSTRAFFICCLASS._serialized_end=194052 + _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE._serialized_start=98442 + _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE._serialized_end=98528 + _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWMPLSTRAFFICCLASS_CHOICE_ENUM._serialized_end=98528 + _PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG._serialized_start=194054 + _PATTERNFLOWMPLSBOTTOMOFSTACKMETRICTAG._serialized_end=194171 + _PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER._serialized_start=194173 + _PATTERNFLOWMPLSBOTTOMOFSTACKCOUNTER._serialized_end=194298 + _PATTERNFLOWMPLSBOTTOMOFSTACK._serialized_start=194301 + _PATTERNFLOWMPLSBOTTOMOFSTACK._serialized_end=194807 + _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE._serialized_start=97748 + _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE._serialized_end=97844 + _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM._serialized_start=97758 + _PATTERNFLOWMPLSBOTTOMOFSTACK_CHOICE_ENUM._serialized_end=97844 + _PATTERNFLOWMPLSTIMETOLIVEMETRICTAG._serialized_start=194809 + _PATTERNFLOWMPLSTIMETOLIVEMETRICTAG._serialized_end=194923 + _PATTERNFLOWMPLSTIMETOLIVECOUNTER._serialized_start=194925 + _PATTERNFLOWMPLSTIMETOLIVECOUNTER._serialized_end=195047 + _PATTERNFLOWMPLSTIMETOLIVE._serialized_start=195050 + _PATTERNFLOWMPLSTIMETOLIVE._serialized_end=195503 + _PATTERNFLOWMPLSTIMETOLIVE_CHOICE._serialized_start=98442 + _PATTERNFLOWMPLSTIMETOLIVE_CHOICE._serialized_end=98528 + _PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM._serialized_start=98452 + _PATTERNFLOWMPLSTIMETOLIVE_CHOICE_ENUM._serialized_end=98528 + _VERSION._serialized_start=195506 + _VERSION._serialized_end=195651 + _SUCCESS._serialized_start=195653 + _SUCCESS._serialized_end=195693 + _FAILURE._serialized_start=195695 + _FAILURE._serialized_end=195731 + _SETCONFIGREQUEST._serialized_start=195733 + _SETCONFIGREQUEST._serialized_end=195780 + _UPDATECONFIGREQUEST._serialized_start=195782 + _UPDATECONFIGREQUEST._serialized_end=195845 + _SETCONFIGRESPONSE._serialized_start=195847 + _SETCONFIGRESPONSE._serialized_end=195897 + _GETCONFIGRESPONSE._serialized_start=195899 + _GETCONFIGRESPONSE._serialized_end=195947 + _UPDATECONFIGRESPONSE._serialized_start=195949 + _UPDATECONFIGRESPONSE._serialized_end=196002 + _SETCONTROLSTATEREQUEST._serialized_start=196004 + _SETCONTROLSTATEREQUEST._serialized_end=196070 + _SETCONTROLSTATERESPONSE._serialized_start=196072 + _SETCONTROLSTATERESPONSE._serialized_end=196128 + _SETCONTROLACTIONREQUEST._serialized_start=196130 + _SETCONTROLACTIONREQUEST._serialized_end=196199 + _SETCONTROLACTIONRESPONSE._serialized_start=196201 + _SETCONTROLACTIONRESPONSE._serialized_end=196288 + _SETTRANSMITSTATEREQUEST._serialized_start=196290 + _SETTRANSMITSTATEREQUEST._serialized_end=196359 + _SETTRANSMITSTATERESPONSE._serialized_start=196361 + _SETTRANSMITSTATERESPONSE._serialized_end=196418 + _SETLINKSTATEREQUEST._serialized_start=196420 + _SETLINKSTATEREQUEST._serialized_end=196477 + _SETLINKSTATERESPONSE._serialized_start=196479 + _SETLINKSTATERESPONSE._serialized_end=196532 + _SETCAPTURESTATEREQUEST._serialized_start=196534 + _SETCAPTURESTATEREQUEST._serialized_end=196600 + _SETCAPTURESTATERESPONSE._serialized_start=196602 + _SETCAPTURESTATERESPONSE._serialized_end=196658 + _UPDATEFLOWSREQUEST._serialized_start=196660 + _UPDATEFLOWSREQUEST._serialized_end=196720 + _UPDATEFLOWSRESPONSE._serialized_start=196722 + _UPDATEFLOWSRESPONSE._serialized_end=196772 + _SETROUTESTATEREQUEST._serialized_start=196774 + _SETROUTESTATEREQUEST._serialized_end=196834 + _SETROUTESTATERESPONSE._serialized_start=196836 + _SETROUTESTATERESPONSE._serialized_end=196890 + _SENDPINGREQUEST._serialized_start=196892 + _SENDPINGREQUEST._serialized_end=196949 + _SENDPINGRESPONSE._serialized_start=196951 + _SENDPINGRESPONSE._serialized_end=197011 + _SETPROTOCOLSTATEREQUEST._serialized_start=197013 + _SETPROTOCOLSTATEREQUEST._serialized_end=197082 + _SETPROTOCOLSTATERESPONSE._serialized_start=197084 + _SETPROTOCOLSTATERESPONSE._serialized_end=197141 + _SETDEVICESTATEREQUEST._serialized_start=197143 + _SETDEVICESTATEREQUEST._serialized_end=197206 + _SETDEVICESTATERESPONSE._serialized_start=197208 + _SETDEVICESTATERESPONSE._serialized_end=197263 + _GETMETRICSREQUEST._serialized_start=197265 + _GETMETRICSREQUEST._serialized_end=197330 + _GETMETRICSRESPONSE._serialized_start=197332 + _GETMETRICSRESPONSE._serialized_end=197400 + _GETSTATESREQUEST._serialized_start=197402 + _GETSTATESREQUEST._serialized_end=197464 + _GETSTATESRESPONSE._serialized_start=197466 + _GETSTATESRESPONSE._serialized_end=197531 + _GETCAPTUREREQUEST._serialized_start=197533 + _GETCAPTUREREQUEST._serialized_end=197598 + _GETCAPTURERESPONSE._serialized_start=197600 + _GETCAPTURERESPONSE._serialized_end=197644 + _GETVERSIONRESPONSE._serialized_start=197646 + _GETVERSIONRESPONSE._serialized_end=197697 + _OPENAPI._serialized_start=197700 + _OPENAPI._serialized_end=198886 # @@protoc_insertion_point(module_scope) diff --git a/snappi/snappi.py b/snappi/snappi.py index 984697e0..73661589 100644 --- a/snappi/snappi.py +++ b/snappi/snappi.py @@ -1,4 +1,4 @@ -# Open Traffic Generator API 0.11.6 +# Open Traffic Generator API 0.11.7 # License: MIT import importlib @@ -23906,6 +23906,7 @@ class Flow(OpenApiObject): _TYPES = { "tx_rx": {"type": "FlowTxRx"}, "packet": {"type": "FlowHeaderIter"}, + "egress_packet": {"type": "FlowHeaderIter"}, "size": {"type": "FlowSize"}, "rate": {"type": "FlowRate"}, "duration": {"type": "FlowDuration"}, @@ -23917,7 +23918,9 @@ class Flow(OpenApiObject): _DEFAULTS = {} # type: Dict[str, Union(type)] - _STATUS = {} # type: Dict[str, Union(type)] + _STATUS = { + "egress_packet": "egress_packet property in schema Flow is under-review, The packet header schema for egress tracking currently exposes unwanted fields. The query structure for tagged metrics inside flows metrics requires documenting expected response format.", + } # type: Dict[str, Union(type)] def __init__(self, parent=None, name=None): super(Flow, self).__init__() @@ -23945,12 +23948,25 @@ def packet(self): # type: () -> FlowHeaderIter """packet getter - The header is list of traffic protocol headers.. The order of traffic protocol headers assigned to the list is the. order they will appear on the wire.. In the case of an empty list the keyword/value of minItems: . indicates that an implementation MUST provide at least one Flow.Header object.. The default value for the Flow.Header choice property is ethernet which will result in an implementation by default providing at least one ethernet packet header. + The list of protocol headers defining the shape of all intended packets in corresponding flow as it is transmitted. by traffic-generator port.. The order of protocol headers assigned to the list is the. order they will appear on the wire.. In the case of an empty list the keyword/value of minItems: . indicates that an implementation MUST provide at least one Flow.Header object.. The default value for the Flow.Header choice property is ethernet which will result in an implementation by default providing at least one ethernet packet header. Returns: FlowHeaderIter """ return self._get_property("packet", FlowHeaderIter, self._parent, self._choice) + @property + def egress_packet(self): + # type: () -> FlowHeaderIter + """egress_packet getter + + Under Review: The packet header schema for egress tracking currently exposes unwanted fields. The query structure for tagged metrics inside flows metrics requires documenting expected response format.. Under Review: The packet header schema for egress tracking currently exposes unwanted fields. The query structure for tagged metrics inside flows metrics requires documenting expected response format.. The list of protocol headers defining the shape of all intended packets in corresponding flow as it is received. by traffic-generator port.. For all protocol headers, only the `metric_tags` property is configurable. + + Returns: FlowHeaderIter + """ + return self._get_property( + "egress_packet", FlowHeaderIter, self._parent, self._choice + ) + @property def size(self): # type: () -> FlowSize @@ -24610,6 +24626,7 @@ class FlowCustom(OpenApiObject): _TYPES = { "bytes": {"type": str}, + "metric_tags": {"type": "FlowCustomMetricTagIter"}, } # type: Dict[str, str] _REQUIRED = ("bytes",) # type: tuple(str) @@ -24651,6 +24668,180 @@ def bytes(self, value): raise TypeError("Cannot set required property bytes as None") self._set_property("bytes", value) + @property + def metric_tags(self): + # type: () -> FlowCustomMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits. in corresponding header field for metrics per each applicable value.. These would appear as tagged metrics in corresponding flow metrics. + + Returns: FlowCustomMetricTagIter + """ + return self._get_property( + "metric_tags", FlowCustomMetricTagIter, self._parent, self._choice + ) + + +class FlowCustomMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + }, + "length": { + "type": int, + "minimum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(FlowCustomMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): + # type: () -> str + """name getter + + Name used to identify the metrics associated with the values applicable. for configured offset and length inside corresponding header field + + Returns: str + """ + return self._get_property("name") + + @name.setter + def name(self, value): + """name setter + + Name used to identify the metrics associated with the values applicable. for configured offset and length inside corresponding header field + + value: str + """ + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset. of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset. of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class FlowCustomMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(FlowCustomMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[FlowCustomMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> FlowCustomMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> FlowCustomMetricTag + return self._next() + + def next(self): + # type: () -> FlowCustomMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, FlowCustomMetricTag): + raise Exception("Item is not an instance of FlowCustomMetricTag") + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> FlowCustomMetricTagIter + """Factory method that creates an instance of the FlowCustomMetricTag class + + Metric Tag can be used to enable tracking portion of or all bits. in corresponding header field for metrics per each applicable value.. These would appear as tagged metrics in corresponding flow metrics. + + Returns: FlowCustomMetricTagIter + """ + item = FlowCustomMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> FlowCustomMetricTag + """Add method that creates and returns an instance of the FlowCustomMetricTag class + + Metric Tag can be used to enable tracking portion of or all bits. in corresponding header field for metrics per each applicable value.. These would appear as tagged metrics in corresponding flow metrics. + + Returns: FlowCustomMetricTag + """ + item = FlowCustomMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item + class FlowEthernet(OpenApiObject): __slots__ = "_parent" @@ -24744,7 +24935,7 @@ class PatternFlowEthernetDst(OpenApiObject): "type": str, "format": "mac", }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowEthernetDstMetricTagIter"}, "increment": {"type": "PatternFlowEthernetDstCounter"}, "decrement": {"type": "PatternFlowEthernetDstCounter"}, } # type: Dict[str, str] @@ -24773,14 +24964,12 @@ def __init__( value="00:00:00:00:00:00", values=["00:00:00:00:00:00"], auto="00:00:00:00:00:00", - metric_group=None, ): super(PatternFlowEthernetDst, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) self._set_property("auto", auto) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -24790,7 +24979,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, auto=None, metric_group=None): + def set(self, value=None, values=None, auto=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -24896,25 +25085,185 @@ def auto(self): return self._get_property("auto") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowEthernetDstMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetDstMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowEthernetDstMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowEthernetDstMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 47, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 48, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 48, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=48): + super(PatternFlowEthernetDstMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowEthernetDstMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowEthernetDstMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowEthernetDstMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowEthernetDstMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowEthernetDstMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowEthernetDstMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowEthernetDstMetricTag): + raise Exception( + "Item is not an instance of PatternFlowEthernetDstMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=48): + # type: (str,int,int) -> PatternFlowEthernetDstMetricTagIter + """Factory method that creates an instance of the PatternFlowEthernetDstMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetDstMetricTagIter + """ + item = PatternFlowEthernetDstMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=48): + # type: (str,int,int) -> PatternFlowEthernetDstMetricTag + """Add method that creates and returns an instance of the PatternFlowEthernetDstMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetDstMetricTag + """ + item = PatternFlowEthernetDstMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowEthernetDstCounter(OpenApiObject): @@ -25042,7 +25391,7 @@ class PatternFlowEthernetSrc(OpenApiObject): "format": "mac", "itemtype": str, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowEthernetSrcMetricTagIter"}, "increment": {"type": "PatternFlowEthernetSrcCounter"}, "decrement": {"type": "PatternFlowEthernetSrcCounter"}, } # type: Dict[str, str] @@ -25068,13 +25417,11 @@ def __init__( choice=None, value="00:00:00:00:00:00", values=["00:00:00:00:00:00"], - metric_group=None, ): super(PatternFlowEthernetSrc, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -25084,7 +25431,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -25179,25 +25526,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowEthernetSrcMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetSrcMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowEthernetSrcMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowEthernetSrcMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 47, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 48, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 48, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=48): + super(PatternFlowEthernetSrcMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowEthernetSrcMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowEthernetSrcMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowEthernetSrcMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowEthernetSrcMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowEthernetSrcMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowEthernetSrcMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowEthernetSrcMetricTag): + raise Exception( + "Item is not an instance of PatternFlowEthernetSrcMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=48): + # type: (str,int,int) -> PatternFlowEthernetSrcMetricTagIter + """Factory method that creates an instance of the PatternFlowEthernetSrcMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetSrcMetricTagIter + """ + item = PatternFlowEthernetSrcMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=48): + # type: (str,int,int) -> PatternFlowEthernetSrcMetricTag + """Add method that creates and returns an instance of the PatternFlowEthernetSrcMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetSrcMetricTag + """ + item = PatternFlowEthernetSrcMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowEthernetSrcCounter(OpenApiObject): @@ -25333,7 +25840,7 @@ class PatternFlowEthernetEtherType(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowEthernetEtherTypeMetricTagIter"}, "increment": {"type": "PatternFlowEthernetEtherTypeCounter"}, "decrement": {"type": "PatternFlowEthernetEtherTypeCounter"}, } # type: Dict[str, str] @@ -25362,20 +25869,13 @@ class PatternFlowEthernetEtherType(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] def __init__( - self, - parent=None, - choice=None, - value=65535, - values=[65535], - auto=65535, - metric_group=None, + self, parent=None, choice=None, value=65535, values=[65535], auto=65535 ): super(PatternFlowEthernetEtherType, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) self._set_property("auto", auto) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -25385,7 +25885,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, auto=None, metric_group=None): + def set(self, value=None, values=None, auto=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -25491,25 +25991,185 @@ def auto(self): return self._get_property("auto") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowEthernetEtherTypeMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetEtherTypeMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowEthernetEtherTypeMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowEthernetEtherTypeMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowEthernetEtherTypeMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowEthernetEtherTypeMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowEthernetEtherTypeMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowEthernetEtherTypeMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowEthernetEtherTypeMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowEthernetEtherTypeMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowEthernetEtherTypeMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowEthernetEtherTypeMetricTag): + raise Exception( + "Item is not an instance of PatternFlowEthernetEtherTypeMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowEthernetEtherTypeMetricTagIter + """Factory method that creates an instance of the PatternFlowEthernetEtherTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetEtherTypeMetricTagIter + """ + item = PatternFlowEthernetEtherTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowEthernetEtherTypeMetricTag + """Add method that creates and returns an instance of the PatternFlowEthernetEtherTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetEtherTypeMetricTag + """ + item = PatternFlowEthernetEtherTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowEthernetEtherTypeCounter(OpenApiObject): @@ -25645,7 +26305,7 @@ class PatternFlowEthernetPfcQueue(OpenApiObject): "minimum": 0, "maximum": 7, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowEthernetPfcQueueMetricTagIter"}, "increment": {"type": "PatternFlowEthernetPfcQueueCounter"}, "decrement": {"type": "PatternFlowEthernetPfcQueueCounter"}, } # type: Dict[str, str] @@ -25665,14 +26325,11 @@ class PatternFlowEthernetPfcQueue(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowEthernetPfcQueue, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -25682,7 +26339,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -25777,25 +26434,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowEthernetPfcQueueMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetPfcQueueMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowEthernetPfcQueueMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowEthernetPfcQueueMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 2, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 3, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 3, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=3): + super(PatternFlowEthernetPfcQueueMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowEthernetPfcQueueMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowEthernetPfcQueueMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowEthernetPfcQueueMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowEthernetPfcQueueMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowEthernetPfcQueueMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowEthernetPfcQueueMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowEthernetPfcQueueMetricTag): + raise Exception( + "Item is not an instance of PatternFlowEthernetPfcQueueMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=3): + # type: (str,int,int) -> PatternFlowEthernetPfcQueueMetricTagIter + """Factory method that creates an instance of the PatternFlowEthernetPfcQueueMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetPfcQueueMetricTagIter + """ + item = PatternFlowEthernetPfcQueueMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=3): + # type: (str,int,int) -> PatternFlowEthernetPfcQueueMetricTag + """Add method that creates and returns an instance of the PatternFlowEthernetPfcQueueMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetPfcQueueMetricTag + """ + item = PatternFlowEthernetPfcQueueMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowEthernetPfcQueueCounter(OpenApiObject): @@ -25990,7 +26807,7 @@ class PatternFlowVlanPriority(OpenApiObject): "minimum": 0, "maximum": 7, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowVlanPriorityMetricTagIter"}, "increment": {"type": "PatternFlowVlanPriorityCounter"}, "decrement": {"type": "PatternFlowVlanPriorityCounter"}, } # type: Dict[str, str] @@ -26010,14 +26827,11 @@ class PatternFlowVlanPriority(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowVlanPriority, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -26027,7 +26841,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -26122,25 +26936,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowVlanPriorityMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVlanPriorityMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowVlanPriorityMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowVlanPriorityMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 2, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 3, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 3, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=3): + super(PatternFlowVlanPriorityMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowVlanPriorityMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowVlanPriorityMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowVlanPriorityMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowVlanPriorityMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowVlanPriorityMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowVlanPriorityMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowVlanPriorityMetricTag): + raise Exception( + "Item is not an instance of PatternFlowVlanPriorityMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=3): + # type: (str,int,int) -> PatternFlowVlanPriorityMetricTagIter + """Factory method that creates an instance of the PatternFlowVlanPriorityMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVlanPriorityMetricTagIter + """ + item = PatternFlowVlanPriorityMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=3): + # type: (str,int,int) -> PatternFlowVlanPriorityMetricTag + """Add method that creates and returns an instance of the PatternFlowVlanPriorityMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVlanPriorityMetricTag + """ + item = PatternFlowVlanPriorityMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowVlanPriorityCounter(OpenApiObject): @@ -26270,7 +27244,7 @@ class PatternFlowVlanCfi(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowVlanCfiMetricTagIter"}, "increment": {"type": "PatternFlowVlanCfiCounter"}, "decrement": {"type": "PatternFlowVlanCfiCounter"}, } # type: Dict[str, str] @@ -26290,14 +27264,11 @@ class PatternFlowVlanCfi(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowVlanCfi, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -26307,7 +27278,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -26402,25 +27373,180 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowVlanCfiMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVlanCfiMetricTagIter + """ + return self._get_property( + "metric_tags", PatternFlowVlanCfiMetricTagIter, self._parent, self._choice + ) + + +class PatternFlowVlanCfiMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowVlanCfiMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowVlanCfiMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowVlanCfiMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowVlanCfiMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowVlanCfiMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowVlanCfiMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowVlanCfiMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowVlanCfiMetricTag): + raise Exception("Item is not an instance of PatternFlowVlanCfiMetricTag") + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowVlanCfiMetricTagIter + """Factory method that creates an instance of the PatternFlowVlanCfiMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVlanCfiMetricTagIter + """ + item = PatternFlowVlanCfiMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowVlanCfiMetricTag + """Add method that creates and returns an instance of the PatternFlowVlanCfiMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVlanCfiMetricTag + """ + item = PatternFlowVlanCfiMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowVlanCfiCounter(OpenApiObject): @@ -26550,7 +27676,7 @@ class PatternFlowVlanId(OpenApiObject): "minimum": 0, "maximum": 4095, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowVlanIdMetricTagIter"}, "increment": {"type": "PatternFlowVlanIdCounter"}, "decrement": {"type": "PatternFlowVlanIdCounter"}, } # type: Dict[str, str] @@ -26570,14 +27696,11 @@ class PatternFlowVlanId(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowVlanId, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -26587,7 +27710,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -26682,25 +27805,180 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowVlanIdMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVlanIdMetricTagIter + """ + return self._get_property( + "metric_tags", PatternFlowVlanIdMetricTagIter, self._parent, self._choice + ) + + +class PatternFlowVlanIdMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 11, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 12, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 12, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=12): + super(PatternFlowVlanIdMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowVlanIdMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowVlanIdMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowVlanIdMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowVlanIdMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowVlanIdMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowVlanIdMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowVlanIdMetricTag): + raise Exception("Item is not an instance of PatternFlowVlanIdMetricTag") + + def metrictag(self, name=None, offset=0, length=12): + # type: (str,int,int) -> PatternFlowVlanIdMetricTagIter + """Factory method that creates an instance of the PatternFlowVlanIdMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVlanIdMetricTagIter + """ + item = PatternFlowVlanIdMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=12): + # type: (str,int,int) -> PatternFlowVlanIdMetricTag + """Add method that creates and returns an instance of the PatternFlowVlanIdMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVlanIdMetricTag + """ + item = PatternFlowVlanIdMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowVlanIdCounter(OpenApiObject): @@ -26830,7 +28108,7 @@ class PatternFlowVlanTpid(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowVlanTpidMetricTagIter"}, "increment": {"type": "PatternFlowVlanTpidCounter"}, "decrement": {"type": "PatternFlowVlanTpidCounter"}, } # type: Dict[str, str] @@ -26856,14 +28134,11 @@ class PatternFlowVlanTpid(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=33024, values=[33024], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=33024, values=[33024]): super(PatternFlowVlanTpid, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -26873,7 +28148,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -26968,25 +28243,180 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowVlanTpidMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVlanTpidMetricTagIter + """ + return self._get_property( + "metric_tags", PatternFlowVlanTpidMetricTagIter, self._parent, self._choice + ) + + +class PatternFlowVlanTpidMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowVlanTpidMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowVlanTpidMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowVlanTpidMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowVlanTpidMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowVlanTpidMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowVlanTpidMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowVlanTpidMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowVlanTpidMetricTag): + raise Exception("Item is not an instance of PatternFlowVlanTpidMetricTag") + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowVlanTpidMetricTagIter + """Factory method that creates an instance of the PatternFlowVlanTpidMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVlanTpidMetricTagIter + """ + item = PatternFlowVlanTpidMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowVlanTpidMetricTag + """Add method that creates and returns an instance of the PatternFlowVlanTpidMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVlanTpidMetricTag + """ + item = PatternFlowVlanTpidMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowVlanTpidCounter(OpenApiObject): @@ -27187,7 +28617,7 @@ class PatternFlowVxlanFlags(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowVxlanFlagsMetricTagIter"}, "increment": {"type": "PatternFlowVxlanFlagsCounter"}, "decrement": {"type": "PatternFlowVxlanFlagsCounter"}, } # type: Dict[str, str] @@ -27207,14 +28637,11 @@ class PatternFlowVxlanFlags(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=8, values=[8], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=8, values=[8]): super(PatternFlowVxlanFlags, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -27224,7 +28651,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -27319,25 +28746,183 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowVxlanFlagsMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVxlanFlagsMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowVxlanFlagsMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowVxlanFlagsMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowVxlanFlagsMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowVxlanFlagsMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowVxlanFlagsMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowVxlanFlagsMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowVxlanFlagsMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowVxlanFlagsMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowVxlanFlagsMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowVxlanFlagsMetricTag): + raise Exception("Item is not an instance of PatternFlowVxlanFlagsMetricTag") + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowVxlanFlagsMetricTagIter + """Factory method that creates an instance of the PatternFlowVxlanFlagsMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVxlanFlagsMetricTagIter + """ + item = PatternFlowVxlanFlagsMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowVxlanFlagsMetricTag + """Add method that creates and returns an instance of the PatternFlowVxlanFlagsMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVxlanFlagsMetricTag + """ + item = PatternFlowVxlanFlagsMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowVxlanFlagsCounter(OpenApiObject): @@ -27467,7 +29052,7 @@ class PatternFlowVxlanReserved0(OpenApiObject): "minimum": 0, "maximum": 16777215, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowVxlanReserved0MetricTagIter"}, "increment": {"type": "PatternFlowVxlanReserved0Counter"}, "decrement": {"type": "PatternFlowVxlanReserved0Counter"}, } # type: Dict[str, str] @@ -27487,14 +29072,11 @@ class PatternFlowVxlanReserved0(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowVxlanReserved0, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -27504,7 +29086,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -27599,25 +29181,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowVxlanReserved0MetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVxlanReserved0MetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowVxlanReserved0MetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowVxlanReserved0MetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 23, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 24, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 24, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=24): + super(PatternFlowVxlanReserved0MetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowVxlanReserved0MetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowVxlanReserved0MetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowVxlanReserved0MetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowVxlanReserved0MetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowVxlanReserved0MetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowVxlanReserved0MetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowVxlanReserved0MetricTag): + raise Exception( + "Item is not an instance of PatternFlowVxlanReserved0MetricTag" + ) + + def metrictag(self, name=None, offset=0, length=24): + # type: (str,int,int) -> PatternFlowVxlanReserved0MetricTagIter + """Factory method that creates an instance of the PatternFlowVxlanReserved0MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVxlanReserved0MetricTagIter + """ + item = PatternFlowVxlanReserved0MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=24): + # type: (str,int,int) -> PatternFlowVxlanReserved0MetricTag + """Add method that creates and returns an instance of the PatternFlowVxlanReserved0MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVxlanReserved0MetricTag + """ + item = PatternFlowVxlanReserved0MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowVxlanReserved0Counter(OpenApiObject): @@ -27753,7 +29495,7 @@ class PatternFlowVxlanVni(OpenApiObject): "minimum": 0, "maximum": 16777215, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowVxlanVniMetricTagIter"}, "increment": {"type": "PatternFlowVxlanVniCounter"}, "decrement": {"type": "PatternFlowVxlanVniCounter"}, } # type: Dict[str, str] @@ -27775,15 +29517,12 @@ class PatternFlowVxlanVni(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], auto=0, metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0], auto=0): super(PatternFlowVxlanVni, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) self._set_property("auto", auto) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -27793,7 +29532,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, auto=None, metric_group=None): + def set(self, value=None, values=None, auto=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -27899,25 +29638,180 @@ def auto(self): return self._get_property("auto") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowVxlanVniMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVxlanVniMetricTagIter + """ + return self._get_property( + "metric_tags", PatternFlowVxlanVniMetricTagIter, self._parent, self._choice + ) + + +class PatternFlowVxlanVniMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 23, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 24, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 24, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=24): + super(PatternFlowVxlanVniMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowVxlanVniMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowVxlanVniMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowVxlanVniMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowVxlanVniMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowVxlanVniMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowVxlanVniMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowVxlanVniMetricTag): + raise Exception("Item is not an instance of PatternFlowVxlanVniMetricTag") + + def metrictag(self, name=None, offset=0, length=24): + # type: (str,int,int) -> PatternFlowVxlanVniMetricTagIter + """Factory method that creates an instance of the PatternFlowVxlanVniMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVxlanVniMetricTagIter + """ + item = PatternFlowVxlanVniMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=24): + # type: (str,int,int) -> PatternFlowVxlanVniMetricTag + """Add method that creates and returns an instance of the PatternFlowVxlanVniMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVxlanVniMetricTag + """ + item = PatternFlowVxlanVniMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowVxlanVniCounter(OpenApiObject): @@ -28047,7 +29941,7 @@ class PatternFlowVxlanReserved1(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowVxlanReserved1MetricTagIter"}, "increment": {"type": "PatternFlowVxlanReserved1Counter"}, "decrement": {"type": "PatternFlowVxlanReserved1Counter"}, } # type: Dict[str, str] @@ -28067,14 +29961,11 @@ class PatternFlowVxlanReserved1(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowVxlanReserved1, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -28084,7 +29975,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -28179,25 +30070,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowVxlanReserved1MetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVxlanReserved1MetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowVxlanReserved1MetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowVxlanReserved1MetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowVxlanReserved1MetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowVxlanReserved1MetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowVxlanReserved1MetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowVxlanReserved1MetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowVxlanReserved1MetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowVxlanReserved1MetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowVxlanReserved1MetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowVxlanReserved1MetricTag): + raise Exception( + "Item is not an instance of PatternFlowVxlanReserved1MetricTag" + ) + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowVxlanReserved1MetricTagIter + """Factory method that creates an instance of the PatternFlowVxlanReserved1MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVxlanReserved1MetricTagIter + """ + item = PatternFlowVxlanReserved1MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowVxlanReserved1MetricTag + """Add method that creates and returns an instance of the PatternFlowVxlanReserved1MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowVxlanReserved1MetricTag + """ + item = PatternFlowVxlanReserved1MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowVxlanReserved1Counter(OpenApiObject): @@ -28512,7 +30563,7 @@ class PatternFlowIpv4Version(OpenApiObject): "minimum": 0, "maximum": 15, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv4VersionMetricTagIter"}, "increment": {"type": "PatternFlowIpv4VersionCounter"}, "decrement": {"type": "PatternFlowIpv4VersionCounter"}, } # type: Dict[str, str] @@ -28532,14 +30583,11 @@ class PatternFlowIpv4Version(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=4, values=[4], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=4, values=[4]): super(PatternFlowIpv4Version, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -28549,7 +30597,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -28644,25 +30692,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv4VersionMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4VersionMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv4VersionMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv4VersionMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 3, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 4, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 4, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=4): + super(PatternFlowIpv4VersionMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv4VersionMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv4VersionMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv4VersionMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv4VersionMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv4VersionMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv4VersionMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv4VersionMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv4VersionMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=4): + # type: (str,int,int) -> PatternFlowIpv4VersionMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv4VersionMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4VersionMetricTagIter + """ + item = PatternFlowIpv4VersionMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=4): + # type: (str,int,int) -> PatternFlowIpv4VersionMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv4VersionMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4VersionMetricTag + """ + item = PatternFlowIpv4VersionMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv4VersionCounter(OpenApiObject): @@ -28798,7 +31006,7 @@ class PatternFlowIpv4HeaderLength(OpenApiObject): "minimum": 0, "maximum": 15, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv4HeaderLengthMetricTagIter"}, "increment": {"type": "PatternFlowIpv4HeaderLengthCounter"}, "decrement": {"type": "PatternFlowIpv4HeaderLengthCounter"}, } # type: Dict[str, str] @@ -28820,15 +31028,12 @@ class PatternFlowIpv4HeaderLength(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=5, values=[5], auto=5, metric_group=None - ): + def __init__(self, parent=None, choice=None, value=5, values=[5], auto=5): super(PatternFlowIpv4HeaderLength, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) self._set_property("auto", auto) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -28838,7 +31043,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, auto=None, metric_group=None): + def set(self, value=None, values=None, auto=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -28944,25 +31149,185 @@ def auto(self): return self._get_property("auto") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv4HeaderLengthMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4HeaderLengthMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv4HeaderLengthMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv4HeaderLengthMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 3, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 4, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 4, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=4): + super(PatternFlowIpv4HeaderLengthMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv4HeaderLengthMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv4HeaderLengthMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv4HeaderLengthMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv4HeaderLengthMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv4HeaderLengthMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv4HeaderLengthMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv4HeaderLengthMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv4HeaderLengthMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=4): + # type: (str,int,int) -> PatternFlowIpv4HeaderLengthMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv4HeaderLengthMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4HeaderLengthMetricTagIter + """ + item = PatternFlowIpv4HeaderLengthMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=4): + # type: (str,int,int) -> PatternFlowIpv4HeaderLengthMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv4HeaderLengthMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4HeaderLengthMetricTag + """ + item = PatternFlowIpv4HeaderLengthMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv4HeaderLengthCounter(OpenApiObject): @@ -29188,7 +31553,7 @@ class PatternFlowIpv4PriorityRaw(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv4PriorityRawMetricTagIter"}, "increment": {"type": "PatternFlowIpv4PriorityRawCounter"}, "decrement": {"type": "PatternFlowIpv4PriorityRawCounter"}, } # type: Dict[str, str] @@ -29208,14 +31573,11 @@ class PatternFlowIpv4PriorityRaw(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowIpv4PriorityRaw, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -29225,7 +31587,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -29320,25 +31682,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv4PriorityRawMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4PriorityRawMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv4PriorityRawMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv4PriorityRawMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowIpv4PriorityRawMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv4PriorityRawMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv4PriorityRawMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv4PriorityRawMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv4PriorityRawMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv4PriorityRawMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv4PriorityRawMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv4PriorityRawMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv4PriorityRawMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowIpv4PriorityRawMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv4PriorityRawMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4PriorityRawMetricTagIter + """ + item = PatternFlowIpv4PriorityRawMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowIpv4PriorityRawMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv4PriorityRawMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4PriorityRawMetricTag + """ + item = PatternFlowIpv4PriorityRawMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv4PriorityRawCounter(OpenApiObject): @@ -29557,7 +32079,7 @@ class PatternFlowIpv4TosPrecedence(OpenApiObject): "minimum": 0, "maximum": 7, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv4TosPrecedenceMetricTagIter"}, "increment": {"type": "PatternFlowIpv4TosPrecedenceCounter"}, "decrement": {"type": "PatternFlowIpv4TosPrecedenceCounter"}, } # type: Dict[str, str] @@ -29586,14 +32108,11 @@ class PatternFlowIpv4TosPrecedence(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowIpv4TosPrecedence, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -29603,7 +32122,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -29698,25 +32217,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv4TosPrecedenceMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TosPrecedenceMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv4TosPrecedenceMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv4TosPrecedenceMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 2, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 3, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 3, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=3): + super(PatternFlowIpv4TosPrecedenceMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv4TosPrecedenceMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv4TosPrecedenceMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv4TosPrecedenceMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv4TosPrecedenceMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv4TosPrecedenceMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv4TosPrecedenceMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv4TosPrecedenceMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv4TosPrecedenceMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=3): + # type: (str,int,int) -> PatternFlowIpv4TosPrecedenceMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv4TosPrecedenceMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TosPrecedenceMetricTagIter + """ + item = PatternFlowIpv4TosPrecedenceMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=3): + # type: (str,int,int) -> PatternFlowIpv4TosPrecedenceMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv4TosPrecedenceMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TosPrecedenceMetricTag + """ + item = PatternFlowIpv4TosPrecedenceMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv4TosPrecedenceCounter(OpenApiObject): @@ -29855,7 +32534,7 @@ class PatternFlowIpv4TosDelay(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv4TosDelayMetricTagIter"}, "increment": {"type": "PatternFlowIpv4TosDelayCounter"}, "decrement": {"type": "PatternFlowIpv4TosDelayCounter"}, } # type: Dict[str, str] @@ -29878,14 +32557,11 @@ class PatternFlowIpv4TosDelay(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowIpv4TosDelay, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -29895,7 +32571,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -29990,25 +32666,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv4TosDelayMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TosDelayMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv4TosDelayMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv4TosDelayMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowIpv4TosDelayMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv4TosDelayMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv4TosDelayMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv4TosDelayMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv4TosDelayMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv4TosDelayMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv4TosDelayMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv4TosDelayMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv4TosDelayMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowIpv4TosDelayMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv4TosDelayMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TosDelayMetricTagIter + """ + item = PatternFlowIpv4TosDelayMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowIpv4TosDelayMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv4TosDelayMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TosDelayMetricTag + """ + item = PatternFlowIpv4TosDelayMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv4TosDelayCounter(OpenApiObject): @@ -30141,7 +32977,7 @@ class PatternFlowIpv4TosThroughput(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv4TosThroughputMetricTagIter"}, "increment": {"type": "PatternFlowIpv4TosThroughputCounter"}, "decrement": {"type": "PatternFlowIpv4TosThroughputCounter"}, } # type: Dict[str, str] @@ -30164,14 +33000,11 @@ class PatternFlowIpv4TosThroughput(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowIpv4TosThroughput, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -30181,7 +33014,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -30276,25 +33109,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv4TosThroughputMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TosThroughputMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv4TosThroughputMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv4TosThroughputMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowIpv4TosThroughputMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv4TosThroughputMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv4TosThroughputMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv4TosThroughputMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv4TosThroughputMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv4TosThroughputMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv4TosThroughputMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv4TosThroughputMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv4TosThroughputMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowIpv4TosThroughputMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv4TosThroughputMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TosThroughputMetricTagIter + """ + item = PatternFlowIpv4TosThroughputMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowIpv4TosThroughputMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv4TosThroughputMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TosThroughputMetricTag + """ + item = PatternFlowIpv4TosThroughputMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv4TosThroughputCounter(OpenApiObject): @@ -30427,7 +33420,7 @@ class PatternFlowIpv4TosReliability(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv4TosReliabilityMetricTagIter"}, "increment": {"type": "PatternFlowIpv4TosReliabilityCounter"}, "decrement": {"type": "PatternFlowIpv4TosReliabilityCounter"}, } # type: Dict[str, str] @@ -30450,14 +33443,11 @@ class PatternFlowIpv4TosReliability(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowIpv4TosReliability, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -30467,7 +33457,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -30562,25 +33552,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv4TosReliabilityMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TosReliabilityMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv4TosReliabilityMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv4TosReliabilityMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowIpv4TosReliabilityMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv4TosReliabilityMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv4TosReliabilityMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv4TosReliabilityMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv4TosReliabilityMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv4TosReliabilityMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv4TosReliabilityMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv4TosReliabilityMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv4TosReliabilityMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowIpv4TosReliabilityMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv4TosReliabilityMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TosReliabilityMetricTagIter + """ + item = PatternFlowIpv4TosReliabilityMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowIpv4TosReliabilityMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv4TosReliabilityMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TosReliabilityMetricTag + """ + item = PatternFlowIpv4TosReliabilityMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv4TosReliabilityCounter(OpenApiObject): @@ -30713,7 +33863,7 @@ class PatternFlowIpv4TosMonetary(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv4TosMonetaryMetricTagIter"}, "increment": {"type": "PatternFlowIpv4TosMonetaryCounter"}, "decrement": {"type": "PatternFlowIpv4TosMonetaryCounter"}, } # type: Dict[str, str] @@ -30736,14 +33886,11 @@ class PatternFlowIpv4TosMonetary(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowIpv4TosMonetary, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -30753,7 +33900,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -30848,25 +33995,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv4TosMonetaryMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TosMonetaryMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv4TosMonetaryMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv4TosMonetaryMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowIpv4TosMonetaryMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv4TosMonetaryMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv4TosMonetaryMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv4TosMonetaryMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv4TosMonetaryMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv4TosMonetaryMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv4TosMonetaryMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv4TosMonetaryMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv4TosMonetaryMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowIpv4TosMonetaryMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv4TosMonetaryMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TosMonetaryMetricTagIter + """ + item = PatternFlowIpv4TosMonetaryMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowIpv4TosMonetaryMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv4TosMonetaryMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TosMonetaryMetricTag + """ + item = PatternFlowIpv4TosMonetaryMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv4TosMonetaryCounter(OpenApiObject): @@ -30999,7 +34306,7 @@ class PatternFlowIpv4TosUnused(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv4TosUnusedMetricTagIter"}, "increment": {"type": "PatternFlowIpv4TosUnusedCounter"}, "decrement": {"type": "PatternFlowIpv4TosUnusedCounter"}, } # type: Dict[str, str] @@ -31019,14 +34326,11 @@ class PatternFlowIpv4TosUnused(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowIpv4TosUnused, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -31036,7 +34340,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -31131,25 +34435,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv4TosUnusedMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TosUnusedMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv4TosUnusedMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv4TosUnusedMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowIpv4TosUnusedMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv4TosUnusedMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv4TosUnusedMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv4TosUnusedMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv4TosUnusedMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv4TosUnusedMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv4TosUnusedMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv4TosUnusedMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv4TosUnusedMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowIpv4TosUnusedMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv4TosUnusedMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TosUnusedMetricTagIter + """ + item = PatternFlowIpv4TosUnusedMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowIpv4TosUnusedMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv4TosUnusedMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TosUnusedMetricTag + """ + item = PatternFlowIpv4TosUnusedMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv4TosUnusedCounter(OpenApiObject): @@ -31320,7 +34784,7 @@ class PatternFlowIpv4DscpPhb(OpenApiObject): "minimum": 0, "maximum": 63, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv4DscpPhbMetricTagIter"}, "increment": {"type": "PatternFlowIpv4DscpPhbCounter"}, "decrement": {"type": "PatternFlowIpv4DscpPhbCounter"}, } # type: Dict[str, str] @@ -31362,14 +34826,11 @@ class PatternFlowIpv4DscpPhb(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowIpv4DscpPhb, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -31379,7 +34840,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -31474,25 +34935,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv4DscpPhbMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4DscpPhbMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv4DscpPhbMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv4DscpPhbMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 5, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 6, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 6, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=6): + super(PatternFlowIpv4DscpPhbMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv4DscpPhbMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv4DscpPhbMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv4DscpPhbMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv4DscpPhbMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv4DscpPhbMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv4DscpPhbMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv4DscpPhbMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv4DscpPhbMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=6): + # type: (str,int,int) -> PatternFlowIpv4DscpPhbMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv4DscpPhbMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4DscpPhbMetricTagIter + """ + item = PatternFlowIpv4DscpPhbMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=6): + # type: (str,int,int) -> PatternFlowIpv4DscpPhbMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv4DscpPhbMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4DscpPhbMetricTag + """ + item = PatternFlowIpv4DscpPhbMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv4DscpPhbCounter(OpenApiObject): @@ -31644,7 +35265,7 @@ class PatternFlowIpv4DscpEcn(OpenApiObject): "minimum": 0, "maximum": 3, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv4DscpEcnMetricTagIter"}, "increment": {"type": "PatternFlowIpv4DscpEcnCounter"}, "decrement": {"type": "PatternFlowIpv4DscpEcnCounter"}, } # type: Dict[str, str] @@ -31669,14 +35290,11 @@ class PatternFlowIpv4DscpEcn(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowIpv4DscpEcn, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -31686,7 +35304,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -31781,25 +35399,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv4DscpEcnMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4DscpEcnMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv4DscpEcnMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv4DscpEcnMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 1, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 2, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 2, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=2): + super(PatternFlowIpv4DscpEcnMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv4DscpEcnMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv4DscpEcnMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv4DscpEcnMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv4DscpEcnMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv4DscpEcnMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv4DscpEcnMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv4DscpEcnMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv4DscpEcnMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=2): + # type: (str,int,int) -> PatternFlowIpv4DscpEcnMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv4DscpEcnMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4DscpEcnMetricTagIter + """ + item = PatternFlowIpv4DscpEcnMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=2): + # type: (str,int,int) -> PatternFlowIpv4DscpEcnMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv4DscpEcnMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4DscpEcnMetricTag + """ + item = PatternFlowIpv4DscpEcnMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv4DscpEcnCounter(OpenApiObject): @@ -31940,7 +35718,7 @@ class PatternFlowIpv4TotalLength(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv4TotalLengthMetricTagIter"}, "increment": {"type": "PatternFlowIpv4TotalLengthCounter"}, "decrement": {"type": "PatternFlowIpv4TotalLengthCounter"}, } # type: Dict[str, str] @@ -31962,21 +35740,12 @@ class PatternFlowIpv4TotalLength(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, - parent=None, - choice=None, - value=46, - values=[46], - auto=46, - metric_group=None, - ): + def __init__(self, parent=None, choice=None, value=46, values=[46], auto=46): super(PatternFlowIpv4TotalLength, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) self._set_property("auto", auto) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -31986,7 +35755,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, auto=None, metric_group=None): + def set(self, value=None, values=None, auto=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -32092,25 +35861,185 @@ def auto(self): return self._get_property("auto") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv4TotalLengthMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TotalLengthMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv4TotalLengthMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv4TotalLengthMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowIpv4TotalLengthMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv4TotalLengthMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv4TotalLengthMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv4TotalLengthMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv4TotalLengthMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv4TotalLengthMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv4TotalLengthMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv4TotalLengthMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv4TotalLengthMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowIpv4TotalLengthMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv4TotalLengthMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TotalLengthMetricTagIter + """ + item = PatternFlowIpv4TotalLengthMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowIpv4TotalLengthMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv4TotalLengthMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TotalLengthMetricTag + """ + item = PatternFlowIpv4TotalLengthMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv4TotalLengthCounter(OpenApiObject): @@ -32240,7 +36169,7 @@ class PatternFlowIpv4Identification(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv4IdentificationMetricTagIter"}, "increment": {"type": "PatternFlowIpv4IdentificationCounter"}, "decrement": {"type": "PatternFlowIpv4IdentificationCounter"}, } # type: Dict[str, str] @@ -32260,14 +36189,11 @@ class PatternFlowIpv4Identification(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowIpv4Identification, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -32277,7 +36203,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -32372,25 +36298,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv4IdentificationMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4IdentificationMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv4IdentificationMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv4IdentificationMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowIpv4IdentificationMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv4IdentificationMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv4IdentificationMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv4IdentificationMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv4IdentificationMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv4IdentificationMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv4IdentificationMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv4IdentificationMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv4IdentificationMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowIpv4IdentificationMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv4IdentificationMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4IdentificationMetricTagIter + """ + item = PatternFlowIpv4IdentificationMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowIpv4IdentificationMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv4IdentificationMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4IdentificationMetricTag + """ + item = PatternFlowIpv4IdentificationMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv4IdentificationCounter(OpenApiObject): @@ -32520,7 +36606,7 @@ class PatternFlowIpv4Reserved(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv4ReservedMetricTagIter"}, "increment": {"type": "PatternFlowIpv4ReservedCounter"}, "decrement": {"type": "PatternFlowIpv4ReservedCounter"}, } # type: Dict[str, str] @@ -32540,14 +36626,11 @@ class PatternFlowIpv4Reserved(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowIpv4Reserved, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -32557,7 +36640,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -32652,25 +36735,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv4ReservedMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4ReservedMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv4ReservedMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv4ReservedMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowIpv4ReservedMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv4ReservedMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv4ReservedMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv4ReservedMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv4ReservedMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv4ReservedMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv4ReservedMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv4ReservedMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv4ReservedMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowIpv4ReservedMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv4ReservedMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4ReservedMetricTagIter + """ + item = PatternFlowIpv4ReservedMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowIpv4ReservedMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv4ReservedMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4ReservedMetricTag + """ + item = PatternFlowIpv4ReservedMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv4ReservedCounter(OpenApiObject): @@ -32800,7 +37043,7 @@ class PatternFlowIpv4DontFragment(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv4DontFragmentMetricTagIter"}, "increment": {"type": "PatternFlowIpv4DontFragmentCounter"}, "decrement": {"type": "PatternFlowIpv4DontFragmentCounter"}, } # type: Dict[str, str] @@ -32820,14 +37063,11 @@ class PatternFlowIpv4DontFragment(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowIpv4DontFragment, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -32837,7 +37077,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -32932,25 +37172,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv4DontFragmentMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4DontFragmentMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv4DontFragmentMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv4DontFragmentMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowIpv4DontFragmentMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv4DontFragmentMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv4DontFragmentMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv4DontFragmentMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv4DontFragmentMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv4DontFragmentMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv4DontFragmentMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv4DontFragmentMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv4DontFragmentMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowIpv4DontFragmentMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv4DontFragmentMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4DontFragmentMetricTagIter + """ + item = PatternFlowIpv4DontFragmentMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowIpv4DontFragmentMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv4DontFragmentMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4DontFragmentMetricTag + """ + item = PatternFlowIpv4DontFragmentMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv4DontFragmentCounter(OpenApiObject): @@ -33080,7 +37480,7 @@ class PatternFlowIpv4MoreFragments(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv4MoreFragmentsMetricTagIter"}, "increment": {"type": "PatternFlowIpv4MoreFragmentsCounter"}, "decrement": {"type": "PatternFlowIpv4MoreFragmentsCounter"}, } # type: Dict[str, str] @@ -33100,14 +37500,11 @@ class PatternFlowIpv4MoreFragments(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowIpv4MoreFragments, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -33117,7 +37514,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -33212,25 +37609,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv4MoreFragmentsMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4MoreFragmentsMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv4MoreFragmentsMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv4MoreFragmentsMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowIpv4MoreFragmentsMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv4MoreFragmentsMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv4MoreFragmentsMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv4MoreFragmentsMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv4MoreFragmentsMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv4MoreFragmentsMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv4MoreFragmentsMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv4MoreFragmentsMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv4MoreFragmentsMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowIpv4MoreFragmentsMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv4MoreFragmentsMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4MoreFragmentsMetricTagIter + """ + item = PatternFlowIpv4MoreFragmentsMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowIpv4MoreFragmentsMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv4MoreFragmentsMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4MoreFragmentsMetricTag + """ + item = PatternFlowIpv4MoreFragmentsMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv4MoreFragmentsCounter(OpenApiObject): @@ -33360,7 +37917,7 @@ class PatternFlowIpv4FragmentOffset(OpenApiObject): "minimum": 0, "maximum": 31, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv4FragmentOffsetMetricTagIter"}, "increment": {"type": "PatternFlowIpv4FragmentOffsetCounter"}, "decrement": {"type": "PatternFlowIpv4FragmentOffsetCounter"}, } # type: Dict[str, str] @@ -33380,14 +37937,11 @@ class PatternFlowIpv4FragmentOffset(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowIpv4FragmentOffset, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -33397,7 +37951,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -33492,25 +38046,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv4FragmentOffsetMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4FragmentOffsetMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv4FragmentOffsetMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv4FragmentOffsetMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 4, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 5, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 5, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=5): + super(PatternFlowIpv4FragmentOffsetMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv4FragmentOffsetMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv4FragmentOffsetMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv4FragmentOffsetMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv4FragmentOffsetMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv4FragmentOffsetMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv4FragmentOffsetMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv4FragmentOffsetMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv4FragmentOffsetMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=5): + # type: (str,int,int) -> PatternFlowIpv4FragmentOffsetMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv4FragmentOffsetMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4FragmentOffsetMetricTagIter + """ + item = PatternFlowIpv4FragmentOffsetMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=5): + # type: (str,int,int) -> PatternFlowIpv4FragmentOffsetMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv4FragmentOffsetMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4FragmentOffsetMetricTag + """ + item = PatternFlowIpv4FragmentOffsetMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv4FragmentOffsetCounter(OpenApiObject): @@ -33640,7 +38354,7 @@ class PatternFlowIpv4TimeToLive(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv4TimeToLiveMetricTagIter"}, "increment": {"type": "PatternFlowIpv4TimeToLiveCounter"}, "decrement": {"type": "PatternFlowIpv4TimeToLiveCounter"}, } # type: Dict[str, str] @@ -33660,14 +38374,11 @@ class PatternFlowIpv4TimeToLive(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=64, values=[64], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=64, values=[64]): super(PatternFlowIpv4TimeToLive, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -33677,7 +38388,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -33772,25 +38483,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv4TimeToLiveMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TimeToLiveMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv4TimeToLiveMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv4TimeToLiveMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowIpv4TimeToLiveMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv4TimeToLiveMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv4TimeToLiveMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv4TimeToLiveMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv4TimeToLiveMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv4TimeToLiveMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv4TimeToLiveMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv4TimeToLiveMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv4TimeToLiveMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowIpv4TimeToLiveMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv4TimeToLiveMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TimeToLiveMetricTagIter + """ + item = PatternFlowIpv4TimeToLiveMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowIpv4TimeToLiveMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv4TimeToLiveMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4TimeToLiveMetricTag + """ + item = PatternFlowIpv4TimeToLiveMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv4TimeToLiveCounter(OpenApiObject): @@ -33926,7 +38797,7 @@ class PatternFlowIpv4Protocol(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv4ProtocolMetricTagIter"}, "increment": {"type": "PatternFlowIpv4ProtocolCounter"}, "decrement": {"type": "PatternFlowIpv4ProtocolCounter"}, } # type: Dict[str, str] @@ -33948,21 +38819,12 @@ class PatternFlowIpv4Protocol(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, - parent=None, - choice=None, - value=61, - values=[61], - auto=61, - metric_group=None, - ): + def __init__(self, parent=None, choice=None, value=61, values=[61], auto=61): super(PatternFlowIpv4Protocol, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) self._set_property("auto", auto) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -33972,7 +38834,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, auto=None, metric_group=None): + def set(self, value=None, values=None, auto=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -34078,25 +38940,185 @@ def auto(self): return self._get_property("auto") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv4ProtocolMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4ProtocolMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv4ProtocolMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv4ProtocolMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowIpv4ProtocolMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv4ProtocolMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv4ProtocolMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv4ProtocolMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv4ProtocolMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv4ProtocolMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv4ProtocolMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv4ProtocolMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv4ProtocolMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowIpv4ProtocolMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv4ProtocolMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4ProtocolMetricTagIter + """ + item = PatternFlowIpv4ProtocolMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowIpv4ProtocolMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv4ProtocolMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4ProtocolMetricTag + """ + item = PatternFlowIpv4ProtocolMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv4ProtocolCounter(OpenApiObject): @@ -34347,7 +39369,7 @@ class PatternFlowIpv4Src(OpenApiObject): "format": "ipv4", "itemtype": str, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv4SrcMetricTagIter"}, "increment": {"type": "PatternFlowIpv4SrcCounter"}, "decrement": {"type": "PatternFlowIpv4SrcCounter"}, } # type: Dict[str, str] @@ -34367,19 +39389,11 @@ class PatternFlowIpv4Src(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, - parent=None, - choice=None, - value="0.0.0.0", - values=["0.0.0.0"], - metric_group=None, - ): + def __init__(self, parent=None, choice=None, value="0.0.0.0", values=["0.0.0.0"]): super(PatternFlowIpv4Src, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -34389,7 +39403,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -34484,25 +39498,180 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv4SrcMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4SrcMetricTagIter + """ + return self._get_property( + "metric_tags", PatternFlowIpv4SrcMetricTagIter, self._parent, self._choice + ) + + +class PatternFlowIpv4SrcMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 31, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 32, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 32, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=32): + super(PatternFlowIpv4SrcMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv4SrcMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv4SrcMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv4SrcMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv4SrcMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv4SrcMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv4SrcMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv4SrcMetricTag): + raise Exception("Item is not an instance of PatternFlowIpv4SrcMetricTag") + + def metrictag(self, name=None, offset=0, length=32): + # type: (str,int,int) -> PatternFlowIpv4SrcMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv4SrcMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4SrcMetricTagIter + """ + item = PatternFlowIpv4SrcMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=32): + # type: (str,int,int) -> PatternFlowIpv4SrcMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv4SrcMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4SrcMetricTag + """ + item = PatternFlowIpv4SrcMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv4SrcCounter(OpenApiObject): @@ -34628,7 +39797,7 @@ class PatternFlowIpv4Dst(OpenApiObject): "format": "ipv4", "itemtype": str, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv4DstMetricTagIter"}, "increment": {"type": "PatternFlowIpv4DstCounter"}, "decrement": {"type": "PatternFlowIpv4DstCounter"}, } # type: Dict[str, str] @@ -34648,19 +39817,11 @@ class PatternFlowIpv4Dst(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, - parent=None, - choice=None, - value="0.0.0.0", - values=["0.0.0.0"], - metric_group=None, - ): + def __init__(self, parent=None, choice=None, value="0.0.0.0", values=["0.0.0.0"]): super(PatternFlowIpv4Dst, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -34670,7 +39831,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -34765,25 +39926,180 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv4DstMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4DstMetricTagIter + """ + return self._get_property( + "metric_tags", PatternFlowIpv4DstMetricTagIter, self._parent, self._choice + ) + + +class PatternFlowIpv4DstMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 31, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 32, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 32, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=32): + super(PatternFlowIpv4DstMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv4DstMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv4DstMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv4DstMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv4DstMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv4DstMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv4DstMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv4DstMetricTag): + raise Exception("Item is not an instance of PatternFlowIpv4DstMetricTag") + + def metrictag(self, name=None, offset=0, length=32): + # type: (str,int,int) -> PatternFlowIpv4DstMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv4DstMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4DstMetricTagIter + """ + item = PatternFlowIpv4DstMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=32): + # type: (str,int,int) -> PatternFlowIpv4DstMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv4DstMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv4DstMetricTag + """ + item = PatternFlowIpv4DstMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv4DstCounter(OpenApiObject): @@ -35024,7 +40340,7 @@ class PatternFlowIpv6Version(OpenApiObject): "minimum": 0, "maximum": 15, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv6VersionMetricTagIter"}, "increment": {"type": "PatternFlowIpv6VersionCounter"}, "decrement": {"type": "PatternFlowIpv6VersionCounter"}, } # type: Dict[str, str] @@ -35044,14 +40360,11 @@ class PatternFlowIpv6Version(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=6, values=[6], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=6, values=[6]): super(PatternFlowIpv6Version, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -35061,7 +40374,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -35156,25 +40469,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv6VersionMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6VersionMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv6VersionMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv6VersionMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 3, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 4, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 4, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=4): + super(PatternFlowIpv6VersionMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv6VersionMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv6VersionMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv6VersionMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv6VersionMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv6VersionMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv6VersionMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv6VersionMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv6VersionMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=4): + # type: (str,int,int) -> PatternFlowIpv6VersionMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv6VersionMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6VersionMetricTagIter + """ + item = PatternFlowIpv6VersionMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=4): + # type: (str,int,int) -> PatternFlowIpv6VersionMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv6VersionMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6VersionMetricTag + """ + item = PatternFlowIpv6VersionMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv6VersionCounter(OpenApiObject): @@ -35304,7 +40777,7 @@ class PatternFlowIpv6TrafficClass(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv6TrafficClassMetricTagIter"}, "increment": {"type": "PatternFlowIpv6TrafficClassCounter"}, "decrement": {"type": "PatternFlowIpv6TrafficClassCounter"}, } # type: Dict[str, str] @@ -35324,14 +40797,11 @@ class PatternFlowIpv6TrafficClass(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowIpv6TrafficClass, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -35341,7 +40811,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -35436,25 +40906,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv6TrafficClassMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6TrafficClassMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv6TrafficClassMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv6TrafficClassMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowIpv6TrafficClassMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv6TrafficClassMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv6TrafficClassMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv6TrafficClassMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv6TrafficClassMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv6TrafficClassMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv6TrafficClassMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv6TrafficClassMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv6TrafficClassMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowIpv6TrafficClassMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv6TrafficClassMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6TrafficClassMetricTagIter + """ + item = PatternFlowIpv6TrafficClassMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowIpv6TrafficClassMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv6TrafficClassMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6TrafficClassMetricTag + """ + item = PatternFlowIpv6TrafficClassMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv6TrafficClassCounter(OpenApiObject): @@ -35584,7 +41214,7 @@ class PatternFlowIpv6FlowLabel(OpenApiObject): "minimum": 0, "maximum": 1048575, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv6FlowLabelMetricTagIter"}, "increment": {"type": "PatternFlowIpv6FlowLabelCounter"}, "decrement": {"type": "PatternFlowIpv6FlowLabelCounter"}, } # type: Dict[str, str] @@ -35604,14 +41234,11 @@ class PatternFlowIpv6FlowLabel(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowIpv6FlowLabel, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -35621,7 +41248,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -35716,25 +41343,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv6FlowLabelMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6FlowLabelMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv6FlowLabelMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv6FlowLabelMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 19, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 20, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 20, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=20): + super(PatternFlowIpv6FlowLabelMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv6FlowLabelMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv6FlowLabelMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv6FlowLabelMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv6FlowLabelMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv6FlowLabelMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv6FlowLabelMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv6FlowLabelMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv6FlowLabelMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=20): + # type: (str,int,int) -> PatternFlowIpv6FlowLabelMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv6FlowLabelMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6FlowLabelMetricTagIter + """ + item = PatternFlowIpv6FlowLabelMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=20): + # type: (str,int,int) -> PatternFlowIpv6FlowLabelMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv6FlowLabelMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6FlowLabelMetricTag + """ + item = PatternFlowIpv6FlowLabelMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv6FlowLabelCounter(OpenApiObject): @@ -35870,7 +41657,7 @@ class PatternFlowIpv6PayloadLength(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv6PayloadLengthMetricTagIter"}, "increment": {"type": "PatternFlowIpv6PayloadLengthCounter"}, "decrement": {"type": "PatternFlowIpv6PayloadLengthCounter"}, } # type: Dict[str, str] @@ -35892,15 +41679,12 @@ class PatternFlowIpv6PayloadLength(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], auto=0, metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0], auto=0): super(PatternFlowIpv6PayloadLength, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) self._set_property("auto", auto) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -35910,7 +41694,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, auto=None, metric_group=None): + def set(self, value=None, values=None, auto=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -36016,25 +41800,185 @@ def auto(self): return self._get_property("auto") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv6PayloadLengthMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6PayloadLengthMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv6PayloadLengthMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv6PayloadLengthMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowIpv6PayloadLengthMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv6PayloadLengthMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv6PayloadLengthMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv6PayloadLengthMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv6PayloadLengthMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv6PayloadLengthMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv6PayloadLengthMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv6PayloadLengthMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv6PayloadLengthMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowIpv6PayloadLengthMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv6PayloadLengthMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6PayloadLengthMetricTagIter + """ + item = PatternFlowIpv6PayloadLengthMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowIpv6PayloadLengthMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv6PayloadLengthMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6PayloadLengthMetricTag + """ + item = PatternFlowIpv6PayloadLengthMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv6PayloadLengthCounter(OpenApiObject): @@ -36170,7 +42114,7 @@ class PatternFlowIpv6NextHeader(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv6NextHeaderMetricTagIter"}, "increment": {"type": "PatternFlowIpv6NextHeaderCounter"}, "decrement": {"type": "PatternFlowIpv6NextHeaderCounter"}, } # type: Dict[str, str] @@ -36204,21 +42148,12 @@ class PatternFlowIpv6NextHeader(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, - parent=None, - choice=None, - value=59, - values=[59], - auto=59, - metric_group=None, - ): + def __init__(self, parent=None, choice=None, value=59, values=[59], auto=59): super(PatternFlowIpv6NextHeader, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) self._set_property("auto", auto) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -36228,7 +42163,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, auto=None, metric_group=None): + def set(self, value=None, values=None, auto=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -36334,25 +42269,185 @@ def auto(self): return self._get_property("auto") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv6NextHeaderMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6NextHeaderMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv6NextHeaderMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv6NextHeaderMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowIpv6NextHeaderMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv6NextHeaderMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv6NextHeaderMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv6NextHeaderMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv6NextHeaderMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv6NextHeaderMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv6NextHeaderMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv6NextHeaderMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv6NextHeaderMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowIpv6NextHeaderMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv6NextHeaderMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6NextHeaderMetricTagIter + """ + item = PatternFlowIpv6NextHeaderMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowIpv6NextHeaderMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv6NextHeaderMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6NextHeaderMetricTag + """ + item = PatternFlowIpv6NextHeaderMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv6NextHeaderCounter(OpenApiObject): @@ -36494,7 +42589,7 @@ class PatternFlowIpv6HopLimit(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv6HopLimitMetricTagIter"}, "increment": {"type": "PatternFlowIpv6HopLimitCounter"}, "decrement": {"type": "PatternFlowIpv6HopLimitCounter"}, } # type: Dict[str, str] @@ -36514,14 +42609,11 @@ class PatternFlowIpv6HopLimit(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=64, values=[64], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=64, values=[64]): super(PatternFlowIpv6HopLimit, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -36531,7 +42623,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -36626,25 +42718,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv6HopLimitMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6HopLimitMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIpv6HopLimitMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIpv6HopLimitMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowIpv6HopLimitMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv6HopLimitMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv6HopLimitMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv6HopLimitMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv6HopLimitMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv6HopLimitMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv6HopLimitMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv6HopLimitMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIpv6HopLimitMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowIpv6HopLimitMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv6HopLimitMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6HopLimitMetricTagIter + """ + item = PatternFlowIpv6HopLimitMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowIpv6HopLimitMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv6HopLimitMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6HopLimitMetricTag + """ + item = PatternFlowIpv6HopLimitMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv6HopLimitCounter(OpenApiObject): @@ -36772,7 +43024,7 @@ class PatternFlowIpv6Src(OpenApiObject): "format": "ipv6", "itemtype": str, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv6SrcMetricTagIter"}, "increment": {"type": "PatternFlowIpv6SrcCounter"}, "decrement": {"type": "PatternFlowIpv6SrcCounter"}, } # type: Dict[str, str] @@ -36792,14 +43044,11 @@ class PatternFlowIpv6Src(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value="::0", values=["::0"], metric_group=None - ): + def __init__(self, parent=None, choice=None, value="::0", values=["::0"]): super(PatternFlowIpv6Src, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -36809,7 +43058,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -36904,25 +43153,180 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv6SrcMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6SrcMetricTagIter + """ + return self._get_property( + "metric_tags", PatternFlowIpv6SrcMetricTagIter, self._parent, self._choice + ) + + +class PatternFlowIpv6SrcMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 127, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 128, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 128, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=128): + super(PatternFlowIpv6SrcMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv6SrcMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv6SrcMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv6SrcMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv6SrcMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv6SrcMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv6SrcMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv6SrcMetricTag): + raise Exception("Item is not an instance of PatternFlowIpv6SrcMetricTag") + + def metrictag(self, name=None, offset=0, length=128): + # type: (str,int,int) -> PatternFlowIpv6SrcMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv6SrcMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6SrcMetricTagIter + """ + item = PatternFlowIpv6SrcMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=128): + # type: (str,int,int) -> PatternFlowIpv6SrcMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv6SrcMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6SrcMetricTag + """ + item = PatternFlowIpv6SrcMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv6SrcCounter(OpenApiObject): @@ -37048,7 +43452,7 @@ class PatternFlowIpv6Dst(OpenApiObject): "format": "ipv6", "itemtype": str, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIpv6DstMetricTagIter"}, "increment": {"type": "PatternFlowIpv6DstCounter"}, "decrement": {"type": "PatternFlowIpv6DstCounter"}, } # type: Dict[str, str] @@ -37068,14 +43472,11 @@ class PatternFlowIpv6Dst(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value="::0", values=["::0"], metric_group=None - ): + def __init__(self, parent=None, choice=None, value="::0", values=["::0"]): super(PatternFlowIpv6Dst, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -37085,7 +43486,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -37180,25 +43581,180 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIpv6DstMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6DstMetricTagIter + """ + return self._get_property( + "metric_tags", PatternFlowIpv6DstMetricTagIter, self._parent, self._choice + ) + + +class PatternFlowIpv6DstMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 127, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 128, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 128, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=128): + super(PatternFlowIpv6DstMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIpv6DstMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIpv6DstMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIpv6DstMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIpv6DstMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIpv6DstMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIpv6DstMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIpv6DstMetricTag): + raise Exception("Item is not an instance of PatternFlowIpv6DstMetricTag") + + def metrictag(self, name=None, offset=0, length=128): + # type: (str,int,int) -> PatternFlowIpv6DstMetricTagIter + """Factory method that creates an instance of the PatternFlowIpv6DstMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6DstMetricTagIter + """ + item = PatternFlowIpv6DstMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=128): + # type: (str,int,int) -> PatternFlowIpv6DstMetricTag + """Add method that creates and returns an instance of the PatternFlowIpv6DstMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIpv6DstMetricTag + """ + item = PatternFlowIpv6DstMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIpv6DstCounter(OpenApiObject): @@ -37499,7 +44055,7 @@ class PatternFlowPfcPauseDst(OpenApiObject): "format": "mac", "itemtype": str, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowPfcPauseDstMetricTagIter"}, "increment": {"type": "PatternFlowPfcPauseDstCounter"}, "decrement": {"type": "PatternFlowPfcPauseDstCounter"}, } # type: Dict[str, str] @@ -37525,13 +44081,11 @@ def __init__( choice=None, value="01:80:c2:00:00:01", values=["01:80:c2:00:00:01"], - metric_group=None, ): super(PatternFlowPfcPauseDst, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -37541,7 +44095,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -37636,25 +44190,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowPfcPauseDstMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPauseDstMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowPfcPauseDstMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowPfcPauseDstMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 47, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 48, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 48, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=48): + super(PatternFlowPfcPauseDstMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowPfcPauseDstMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowPfcPauseDstMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowPfcPauseDstMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowPfcPauseDstMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowPfcPauseDstMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowPfcPauseDstMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowPfcPauseDstMetricTag): + raise Exception( + "Item is not an instance of PatternFlowPfcPauseDstMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=48): + # type: (str,int,int) -> PatternFlowPfcPauseDstMetricTagIter + """Factory method that creates an instance of the PatternFlowPfcPauseDstMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPauseDstMetricTagIter + """ + item = PatternFlowPfcPauseDstMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=48): + # type: (str,int,int) -> PatternFlowPfcPauseDstMetricTag + """Add method that creates and returns an instance of the PatternFlowPfcPauseDstMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPauseDstMetricTag + """ + item = PatternFlowPfcPauseDstMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowPfcPauseDstCounter(OpenApiObject): @@ -37782,7 +44496,7 @@ class PatternFlowPfcPauseSrc(OpenApiObject): "format": "mac", "itemtype": str, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowPfcPauseSrcMetricTagIter"}, "increment": {"type": "PatternFlowPfcPauseSrcCounter"}, "decrement": {"type": "PatternFlowPfcPauseSrcCounter"}, } # type: Dict[str, str] @@ -37808,13 +44522,11 @@ def __init__( choice=None, value="00:00:00:00:00:00", values=["00:00:00:00:00:00"], - metric_group=None, ): super(PatternFlowPfcPauseSrc, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -37824,7 +44536,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -37919,25 +44631,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowPfcPauseSrcMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPauseSrcMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowPfcPauseSrcMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowPfcPauseSrcMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 47, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 48, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 48, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=48): + super(PatternFlowPfcPauseSrcMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowPfcPauseSrcMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowPfcPauseSrcMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowPfcPauseSrcMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowPfcPauseSrcMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowPfcPauseSrcMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowPfcPauseSrcMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowPfcPauseSrcMetricTag): + raise Exception( + "Item is not an instance of PatternFlowPfcPauseSrcMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=48): + # type: (str,int,int) -> PatternFlowPfcPauseSrcMetricTagIter + """Factory method that creates an instance of the PatternFlowPfcPauseSrcMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPauseSrcMetricTagIter + """ + item = PatternFlowPfcPauseSrcMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=48): + # type: (str,int,int) -> PatternFlowPfcPauseSrcMetricTag + """Add method that creates and returns an instance of the PatternFlowPfcPauseSrcMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPauseSrcMetricTag + """ + item = PatternFlowPfcPauseSrcMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowPfcPauseSrcCounter(OpenApiObject): @@ -38067,7 +44939,7 @@ class PatternFlowPfcPauseEtherType(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowPfcPauseEtherTypeMetricTagIter"}, "increment": {"type": "PatternFlowPfcPauseEtherTypeCounter"}, "decrement": {"type": "PatternFlowPfcPauseEtherTypeCounter"}, } # type: Dict[str, str] @@ -38089,14 +44961,11 @@ class PatternFlowPfcPauseEtherType(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=34824, values=[34824], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=34824, values=[34824]): super(PatternFlowPfcPauseEtherType, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -38106,7 +44975,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -38201,25 +45070,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowPfcPauseEtherTypeMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPauseEtherTypeMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowPfcPauseEtherTypeMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowPfcPauseEtherTypeMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowPfcPauseEtherTypeMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowPfcPauseEtherTypeMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowPfcPauseEtherTypeMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowPfcPauseEtherTypeMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowPfcPauseEtherTypeMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowPfcPauseEtherTypeMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowPfcPauseEtherTypeMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowPfcPauseEtherTypeMetricTag): + raise Exception( + "Item is not an instance of PatternFlowPfcPauseEtherTypeMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPfcPauseEtherTypeMetricTagIter + """Factory method that creates an instance of the PatternFlowPfcPauseEtherTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPauseEtherTypeMetricTagIter + """ + item = PatternFlowPfcPauseEtherTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPfcPauseEtherTypeMetricTag + """Add method that creates and returns an instance of the PatternFlowPfcPauseEtherTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPauseEtherTypeMetricTag + """ + item = PatternFlowPfcPauseEtherTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowPfcPauseEtherTypeCounter(OpenApiObject): @@ -38351,7 +45380,7 @@ class PatternFlowPfcPauseControlOpCode(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowPfcPauseControlOpCodeMetricTagIter"}, "increment": {"type": "PatternFlowPfcPauseControlOpCodeCounter"}, "decrement": {"type": "PatternFlowPfcPauseControlOpCodeCounter"}, } # type: Dict[str, str] @@ -38371,14 +45400,11 @@ class PatternFlowPfcPauseControlOpCode(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=257, values=[257], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=257, values=[257]): super(PatternFlowPfcPauseControlOpCode, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -38388,7 +45414,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -38483,25 +45509,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowPfcPauseControlOpCodeMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPauseControlOpCodeMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowPfcPauseControlOpCodeMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowPfcPauseControlOpCodeMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowPfcPauseControlOpCodeMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowPfcPauseControlOpCodeMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowPfcPauseControlOpCodeMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowPfcPauseControlOpCodeMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowPfcPauseControlOpCodeMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowPfcPauseControlOpCodeMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowPfcPauseControlOpCodeMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowPfcPauseControlOpCodeMetricTag): + raise Exception( + "Item is not an instance of PatternFlowPfcPauseControlOpCodeMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPfcPauseControlOpCodeMetricTagIter + """Factory method that creates an instance of the PatternFlowPfcPauseControlOpCodeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPauseControlOpCodeMetricTagIter + """ + item = PatternFlowPfcPauseControlOpCodeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPfcPauseControlOpCodeMetricTag + """Add method that creates and returns an instance of the PatternFlowPfcPauseControlOpCodeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPauseControlOpCodeMetricTag + """ + item = PatternFlowPfcPauseControlOpCodeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowPfcPauseControlOpCodeCounter(OpenApiObject): @@ -38631,7 +45817,7 @@ class PatternFlowPfcPauseClassEnableVector(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowPfcPauseClassEnableVectorMetricTagIter"}, "increment": {"type": "PatternFlowPfcPauseClassEnableVectorCounter"}, "decrement": {"type": "PatternFlowPfcPauseClassEnableVectorCounter"}, } # type: Dict[str, str] @@ -38651,14 +45837,11 @@ class PatternFlowPfcPauseClassEnableVector(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowPfcPauseClassEnableVector, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -38668,7 +45851,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -38763,25 +45946,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowPfcPauseClassEnableVectorMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPauseClassEnableVectorMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowPfcPauseClassEnableVectorMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowPfcPauseClassEnableVectorMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowPfcPauseClassEnableVectorMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowPfcPauseClassEnableVectorMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowPfcPauseClassEnableVectorMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowPfcPauseClassEnableVectorMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowPfcPauseClassEnableVectorMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowPfcPauseClassEnableVectorMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowPfcPauseClassEnableVectorMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowPfcPauseClassEnableVectorMetricTag): + raise Exception( + "Item is not an instance of PatternFlowPfcPauseClassEnableVectorMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPfcPauseClassEnableVectorMetricTagIter + """Factory method that creates an instance of the PatternFlowPfcPauseClassEnableVectorMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPauseClassEnableVectorMetricTagIter + """ + item = PatternFlowPfcPauseClassEnableVectorMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPfcPauseClassEnableVectorMetricTag + """Add method that creates and returns an instance of the PatternFlowPfcPauseClassEnableVectorMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPauseClassEnableVectorMetricTag + """ + item = PatternFlowPfcPauseClassEnableVectorMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowPfcPauseClassEnableVectorCounter(OpenApiObject): @@ -38911,7 +46254,7 @@ class PatternFlowPfcPausePauseClass0(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowPfcPausePauseClass0MetricTagIter"}, "increment": {"type": "PatternFlowPfcPausePauseClass0Counter"}, "decrement": {"type": "PatternFlowPfcPausePauseClass0Counter"}, } # type: Dict[str, str] @@ -38931,14 +46274,11 @@ class PatternFlowPfcPausePauseClass0(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowPfcPausePauseClass0, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -38948,7 +46288,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -39043,25 +46383,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowPfcPausePauseClass0MetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass0MetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowPfcPausePauseClass0MetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowPfcPausePauseClass0MetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowPfcPausePauseClass0MetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowPfcPausePauseClass0MetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowPfcPausePauseClass0MetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowPfcPausePauseClass0MetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowPfcPausePauseClass0MetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowPfcPausePauseClass0MetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowPfcPausePauseClass0MetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowPfcPausePauseClass0MetricTag): + raise Exception( + "Item is not an instance of PatternFlowPfcPausePauseClass0MetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPfcPausePauseClass0MetricTagIter + """Factory method that creates an instance of the PatternFlowPfcPausePauseClass0MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass0MetricTagIter + """ + item = PatternFlowPfcPausePauseClass0MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPfcPausePauseClass0MetricTag + """Add method that creates and returns an instance of the PatternFlowPfcPausePauseClass0MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass0MetricTag + """ + item = PatternFlowPfcPausePauseClass0MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowPfcPausePauseClass0Counter(OpenApiObject): @@ -39191,7 +46691,7 @@ class PatternFlowPfcPausePauseClass1(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowPfcPausePauseClass1MetricTagIter"}, "increment": {"type": "PatternFlowPfcPausePauseClass1Counter"}, "decrement": {"type": "PatternFlowPfcPausePauseClass1Counter"}, } # type: Dict[str, str] @@ -39211,14 +46711,11 @@ class PatternFlowPfcPausePauseClass1(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowPfcPausePauseClass1, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -39228,7 +46725,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -39323,25 +46820,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowPfcPausePauseClass1MetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass1MetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowPfcPausePauseClass1MetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowPfcPausePauseClass1MetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowPfcPausePauseClass1MetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowPfcPausePauseClass1MetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowPfcPausePauseClass1MetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowPfcPausePauseClass1MetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowPfcPausePauseClass1MetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowPfcPausePauseClass1MetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowPfcPausePauseClass1MetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowPfcPausePauseClass1MetricTag): + raise Exception( + "Item is not an instance of PatternFlowPfcPausePauseClass1MetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPfcPausePauseClass1MetricTagIter + """Factory method that creates an instance of the PatternFlowPfcPausePauseClass1MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass1MetricTagIter + """ + item = PatternFlowPfcPausePauseClass1MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPfcPausePauseClass1MetricTag + """Add method that creates and returns an instance of the PatternFlowPfcPausePauseClass1MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass1MetricTag + """ + item = PatternFlowPfcPausePauseClass1MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowPfcPausePauseClass1Counter(OpenApiObject): @@ -39471,7 +47128,7 @@ class PatternFlowPfcPausePauseClass2(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowPfcPausePauseClass2MetricTagIter"}, "increment": {"type": "PatternFlowPfcPausePauseClass2Counter"}, "decrement": {"type": "PatternFlowPfcPausePauseClass2Counter"}, } # type: Dict[str, str] @@ -39491,14 +47148,11 @@ class PatternFlowPfcPausePauseClass2(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowPfcPausePauseClass2, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -39508,7 +47162,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -39603,25 +47257,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowPfcPausePauseClass2MetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass2MetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowPfcPausePauseClass2MetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowPfcPausePauseClass2MetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowPfcPausePauseClass2MetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowPfcPausePauseClass2MetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowPfcPausePauseClass2MetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowPfcPausePauseClass2MetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowPfcPausePauseClass2MetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowPfcPausePauseClass2MetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowPfcPausePauseClass2MetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowPfcPausePauseClass2MetricTag): + raise Exception( + "Item is not an instance of PatternFlowPfcPausePauseClass2MetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPfcPausePauseClass2MetricTagIter + """Factory method that creates an instance of the PatternFlowPfcPausePauseClass2MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass2MetricTagIter + """ + item = PatternFlowPfcPausePauseClass2MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPfcPausePauseClass2MetricTag + """Add method that creates and returns an instance of the PatternFlowPfcPausePauseClass2MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass2MetricTag + """ + item = PatternFlowPfcPausePauseClass2MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowPfcPausePauseClass2Counter(OpenApiObject): @@ -39751,7 +47565,7 @@ class PatternFlowPfcPausePauseClass3(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowPfcPausePauseClass3MetricTagIter"}, "increment": {"type": "PatternFlowPfcPausePauseClass3Counter"}, "decrement": {"type": "PatternFlowPfcPausePauseClass3Counter"}, } # type: Dict[str, str] @@ -39771,14 +47585,11 @@ class PatternFlowPfcPausePauseClass3(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowPfcPausePauseClass3, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -39788,7 +47599,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -39883,25 +47694,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowPfcPausePauseClass3MetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass3MetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowPfcPausePauseClass3MetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowPfcPausePauseClass3MetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowPfcPausePauseClass3MetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowPfcPausePauseClass3MetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowPfcPausePauseClass3MetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowPfcPausePauseClass3MetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowPfcPausePauseClass3MetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowPfcPausePauseClass3MetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowPfcPausePauseClass3MetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowPfcPausePauseClass3MetricTag): + raise Exception( + "Item is not an instance of PatternFlowPfcPausePauseClass3MetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPfcPausePauseClass3MetricTagIter + """Factory method that creates an instance of the PatternFlowPfcPausePauseClass3MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass3MetricTagIter + """ + item = PatternFlowPfcPausePauseClass3MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPfcPausePauseClass3MetricTag + """Add method that creates and returns an instance of the PatternFlowPfcPausePauseClass3MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass3MetricTag + """ + item = PatternFlowPfcPausePauseClass3MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowPfcPausePauseClass3Counter(OpenApiObject): @@ -40031,7 +48002,7 @@ class PatternFlowPfcPausePauseClass4(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowPfcPausePauseClass4MetricTagIter"}, "increment": {"type": "PatternFlowPfcPausePauseClass4Counter"}, "decrement": {"type": "PatternFlowPfcPausePauseClass4Counter"}, } # type: Dict[str, str] @@ -40051,14 +48022,11 @@ class PatternFlowPfcPausePauseClass4(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowPfcPausePauseClass4, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -40068,7 +48036,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -40163,25 +48131,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowPfcPausePauseClass4MetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass4MetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowPfcPausePauseClass4MetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowPfcPausePauseClass4MetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowPfcPausePauseClass4MetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowPfcPausePauseClass4MetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowPfcPausePauseClass4MetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowPfcPausePauseClass4MetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowPfcPausePauseClass4MetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowPfcPausePauseClass4MetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowPfcPausePauseClass4MetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowPfcPausePauseClass4MetricTag): + raise Exception( + "Item is not an instance of PatternFlowPfcPausePauseClass4MetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPfcPausePauseClass4MetricTagIter + """Factory method that creates an instance of the PatternFlowPfcPausePauseClass4MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass4MetricTagIter + """ + item = PatternFlowPfcPausePauseClass4MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPfcPausePauseClass4MetricTag + """Add method that creates and returns an instance of the PatternFlowPfcPausePauseClass4MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass4MetricTag + """ + item = PatternFlowPfcPausePauseClass4MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowPfcPausePauseClass4Counter(OpenApiObject): @@ -40311,7 +48439,7 @@ class PatternFlowPfcPausePauseClass5(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowPfcPausePauseClass5MetricTagIter"}, "increment": {"type": "PatternFlowPfcPausePauseClass5Counter"}, "decrement": {"type": "PatternFlowPfcPausePauseClass5Counter"}, } # type: Dict[str, str] @@ -40331,14 +48459,11 @@ class PatternFlowPfcPausePauseClass5(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowPfcPausePauseClass5, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -40348,7 +48473,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -40443,25 +48568,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowPfcPausePauseClass5MetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass5MetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowPfcPausePauseClass5MetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowPfcPausePauseClass5MetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowPfcPausePauseClass5MetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowPfcPausePauseClass5MetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowPfcPausePauseClass5MetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowPfcPausePauseClass5MetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowPfcPausePauseClass5MetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowPfcPausePauseClass5MetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowPfcPausePauseClass5MetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowPfcPausePauseClass5MetricTag): + raise Exception( + "Item is not an instance of PatternFlowPfcPausePauseClass5MetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPfcPausePauseClass5MetricTagIter + """Factory method that creates an instance of the PatternFlowPfcPausePauseClass5MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass5MetricTagIter + """ + item = PatternFlowPfcPausePauseClass5MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPfcPausePauseClass5MetricTag + """Add method that creates and returns an instance of the PatternFlowPfcPausePauseClass5MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass5MetricTag + """ + item = PatternFlowPfcPausePauseClass5MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowPfcPausePauseClass5Counter(OpenApiObject): @@ -40591,7 +48876,7 @@ class PatternFlowPfcPausePauseClass6(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowPfcPausePauseClass6MetricTagIter"}, "increment": {"type": "PatternFlowPfcPausePauseClass6Counter"}, "decrement": {"type": "PatternFlowPfcPausePauseClass6Counter"}, } # type: Dict[str, str] @@ -40611,14 +48896,11 @@ class PatternFlowPfcPausePauseClass6(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowPfcPausePauseClass6, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -40628,7 +48910,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -40723,25 +49005,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowPfcPausePauseClass6MetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass6MetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowPfcPausePauseClass6MetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowPfcPausePauseClass6MetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowPfcPausePauseClass6MetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowPfcPausePauseClass6MetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowPfcPausePauseClass6MetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowPfcPausePauseClass6MetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowPfcPausePauseClass6MetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowPfcPausePauseClass6MetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowPfcPausePauseClass6MetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowPfcPausePauseClass6MetricTag): + raise Exception( + "Item is not an instance of PatternFlowPfcPausePauseClass6MetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPfcPausePauseClass6MetricTagIter + """Factory method that creates an instance of the PatternFlowPfcPausePauseClass6MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass6MetricTagIter + """ + item = PatternFlowPfcPausePauseClass6MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPfcPausePauseClass6MetricTag + """Add method that creates and returns an instance of the PatternFlowPfcPausePauseClass6MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass6MetricTag + """ + item = PatternFlowPfcPausePauseClass6MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowPfcPausePauseClass6Counter(OpenApiObject): @@ -40871,7 +49313,7 @@ class PatternFlowPfcPausePauseClass7(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowPfcPausePauseClass7MetricTagIter"}, "increment": {"type": "PatternFlowPfcPausePauseClass7Counter"}, "decrement": {"type": "PatternFlowPfcPausePauseClass7Counter"}, } # type: Dict[str, str] @@ -40891,14 +49333,11 @@ class PatternFlowPfcPausePauseClass7(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowPfcPausePauseClass7, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -40908,7 +49347,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -41003,25 +49442,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowPfcPausePauseClass7MetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass7MetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowPfcPausePauseClass7MetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowPfcPausePauseClass7MetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowPfcPausePauseClass7MetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowPfcPausePauseClass7MetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowPfcPausePauseClass7MetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowPfcPausePauseClass7MetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowPfcPausePauseClass7MetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowPfcPausePauseClass7MetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowPfcPausePauseClass7MetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowPfcPausePauseClass7MetricTag): + raise Exception( + "Item is not an instance of PatternFlowPfcPausePauseClass7MetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPfcPausePauseClass7MetricTagIter + """Factory method that creates an instance of the PatternFlowPfcPausePauseClass7MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass7MetricTagIter + """ + item = PatternFlowPfcPausePauseClass7MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPfcPausePauseClass7MetricTag + """Add method that creates and returns an instance of the PatternFlowPfcPausePauseClass7MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPfcPausePauseClass7MetricTag + """ + item = PatternFlowPfcPausePauseClass7MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowPfcPausePauseClass7Counter(OpenApiObject): @@ -41228,7 +49827,7 @@ class PatternFlowEthernetPauseDst(OpenApiObject): "format": "mac", "itemtype": str, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowEthernetPauseDstMetricTagIter"}, "increment": {"type": "PatternFlowEthernetPauseDstCounter"}, "decrement": {"type": "PatternFlowEthernetPauseDstCounter"}, } # type: Dict[str, str] @@ -41254,13 +49853,11 @@ def __init__( choice=None, value="01:80:c2:00:00:01", values=["01:80:c2:00:00:01"], - metric_group=None, ): super(PatternFlowEthernetPauseDst, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -41270,7 +49867,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -41365,25 +49962,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowEthernetPauseDstMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetPauseDstMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowEthernetPauseDstMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowEthernetPauseDstMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 47, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 48, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 48, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=48): + super(PatternFlowEthernetPauseDstMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowEthernetPauseDstMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowEthernetPauseDstMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowEthernetPauseDstMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowEthernetPauseDstMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowEthernetPauseDstMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowEthernetPauseDstMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowEthernetPauseDstMetricTag): + raise Exception( + "Item is not an instance of PatternFlowEthernetPauseDstMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=48): + # type: (str,int,int) -> PatternFlowEthernetPauseDstMetricTagIter + """Factory method that creates an instance of the PatternFlowEthernetPauseDstMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetPauseDstMetricTagIter + """ + item = PatternFlowEthernetPauseDstMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=48): + # type: (str,int,int) -> PatternFlowEthernetPauseDstMetricTag + """Add method that creates and returns an instance of the PatternFlowEthernetPauseDstMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetPauseDstMetricTag + """ + item = PatternFlowEthernetPauseDstMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowEthernetPauseDstCounter(OpenApiObject): @@ -41511,7 +50268,7 @@ class PatternFlowEthernetPauseSrc(OpenApiObject): "format": "mac", "itemtype": str, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowEthernetPauseSrcMetricTagIter"}, "increment": {"type": "PatternFlowEthernetPauseSrcCounter"}, "decrement": {"type": "PatternFlowEthernetPauseSrcCounter"}, } # type: Dict[str, str] @@ -41537,13 +50294,11 @@ def __init__( choice=None, value="00:00:00:00:00:00", values=["00:00:00:00:00:00"], - metric_group=None, ): super(PatternFlowEthernetPauseSrc, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -41553,7 +50308,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -41648,25 +50403,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowEthernetPauseSrcMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetPauseSrcMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowEthernetPauseSrcMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowEthernetPauseSrcMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 47, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 48, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 48, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=48): + super(PatternFlowEthernetPauseSrcMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowEthernetPauseSrcMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowEthernetPauseSrcMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowEthernetPauseSrcMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowEthernetPauseSrcMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowEthernetPauseSrcMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowEthernetPauseSrcMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowEthernetPauseSrcMetricTag): + raise Exception( + "Item is not an instance of PatternFlowEthernetPauseSrcMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=48): + # type: (str,int,int) -> PatternFlowEthernetPauseSrcMetricTagIter + """Factory method that creates an instance of the PatternFlowEthernetPauseSrcMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetPauseSrcMetricTagIter + """ + item = PatternFlowEthernetPauseSrcMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=48): + # type: (str,int,int) -> PatternFlowEthernetPauseSrcMetricTag + """Add method that creates and returns an instance of the PatternFlowEthernetPauseSrcMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetPauseSrcMetricTag + """ + item = PatternFlowEthernetPauseSrcMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowEthernetPauseSrcCounter(OpenApiObject): @@ -41796,7 +50711,7 @@ class PatternFlowEthernetPauseEtherType(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowEthernetPauseEtherTypeMetricTagIter"}, "increment": {"type": "PatternFlowEthernetPauseEtherTypeCounter"}, "decrement": {"type": "PatternFlowEthernetPauseEtherTypeCounter"}, } # type: Dict[str, str] @@ -41818,14 +50733,11 @@ class PatternFlowEthernetPauseEtherType(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=34824, values=[34824], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=34824, values=[34824]): super(PatternFlowEthernetPauseEtherType, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -41835,7 +50747,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -41930,25 +50842,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowEthernetPauseEtherTypeMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetPauseEtherTypeMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowEthernetPauseEtherTypeMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowEthernetPauseEtherTypeMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowEthernetPauseEtherTypeMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowEthernetPauseEtherTypeMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowEthernetPauseEtherTypeMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowEthernetPauseEtherTypeMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowEthernetPauseEtherTypeMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowEthernetPauseEtherTypeMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowEthernetPauseEtherTypeMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowEthernetPauseEtherTypeMetricTag): + raise Exception( + "Item is not an instance of PatternFlowEthernetPauseEtherTypeMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowEthernetPauseEtherTypeMetricTagIter + """Factory method that creates an instance of the PatternFlowEthernetPauseEtherTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetPauseEtherTypeMetricTagIter + """ + item = PatternFlowEthernetPauseEtherTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowEthernetPauseEtherTypeMetricTag + """Add method that creates and returns an instance of the PatternFlowEthernetPauseEtherTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetPauseEtherTypeMetricTag + """ + item = PatternFlowEthernetPauseEtherTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowEthernetPauseEtherTypeCounter(OpenApiObject): @@ -42080,7 +51152,7 @@ class PatternFlowEthernetPauseControlOpCode(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowEthernetPauseControlOpCodeMetricTagIter"}, "increment": {"type": "PatternFlowEthernetPauseControlOpCodeCounter"}, "decrement": {"type": "PatternFlowEthernetPauseControlOpCodeCounter"}, } # type: Dict[str, str] @@ -42100,14 +51172,11 @@ class PatternFlowEthernetPauseControlOpCode(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=1, values=[1], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=1, values=[1]): super(PatternFlowEthernetPauseControlOpCode, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -42117,7 +51186,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -42212,25 +51281,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowEthernetPauseControlOpCodeMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetPauseControlOpCodeMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowEthernetPauseControlOpCodeMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowEthernetPauseControlOpCodeMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowEthernetPauseControlOpCodeMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowEthernetPauseControlOpCodeMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowEthernetPauseControlOpCodeMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowEthernetPauseControlOpCodeMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowEthernetPauseControlOpCodeMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowEthernetPauseControlOpCodeMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowEthernetPauseControlOpCodeMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowEthernetPauseControlOpCodeMetricTag): + raise Exception( + "Item is not an instance of PatternFlowEthernetPauseControlOpCodeMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowEthernetPauseControlOpCodeMetricTagIter + """Factory method that creates an instance of the PatternFlowEthernetPauseControlOpCodeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetPauseControlOpCodeMetricTagIter + """ + item = PatternFlowEthernetPauseControlOpCodeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowEthernetPauseControlOpCodeMetricTag + """Add method that creates and returns an instance of the PatternFlowEthernetPauseControlOpCodeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetPauseControlOpCodeMetricTag + """ + item = PatternFlowEthernetPauseControlOpCodeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowEthernetPauseControlOpCodeCounter(OpenApiObject): @@ -42360,7 +51589,7 @@ class PatternFlowEthernetPauseTime(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowEthernetPauseTimeMetricTagIter"}, "increment": {"type": "PatternFlowEthernetPauseTimeCounter"}, "decrement": {"type": "PatternFlowEthernetPauseTimeCounter"}, } # type: Dict[str, str] @@ -42380,14 +51609,11 @@ class PatternFlowEthernetPauseTime(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowEthernetPauseTime, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -42397,7 +51623,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -42492,25 +51718,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowEthernetPauseTimeMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetPauseTimeMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowEthernetPauseTimeMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowEthernetPauseTimeMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowEthernetPauseTimeMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowEthernetPauseTimeMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowEthernetPauseTimeMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowEthernetPauseTimeMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowEthernetPauseTimeMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowEthernetPauseTimeMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowEthernetPauseTimeMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowEthernetPauseTimeMetricTag): + raise Exception( + "Item is not an instance of PatternFlowEthernetPauseTimeMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowEthernetPauseTimeMetricTagIter + """Factory method that creates an instance of the PatternFlowEthernetPauseTimeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetPauseTimeMetricTagIter + """ + item = PatternFlowEthernetPauseTimeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowEthernetPauseTimeMetricTag + """Add method that creates and returns an instance of the PatternFlowEthernetPauseTimeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowEthernetPauseTimeMetricTag + """ + item = PatternFlowEthernetPauseTimeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowEthernetPauseTimeCounter(OpenApiObject): @@ -42837,7 +52223,7 @@ class PatternFlowTcpSrcPort(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowTcpSrcPortMetricTagIter"}, "increment": {"type": "PatternFlowTcpSrcPortCounter"}, "decrement": {"type": "PatternFlowTcpSrcPortCounter"}, } # type: Dict[str, str] @@ -42857,14 +52243,11 @@ class PatternFlowTcpSrcPort(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowTcpSrcPort, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -42874,7 +52257,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -42969,25 +52352,183 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowTcpSrcPortMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpSrcPortMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowTcpSrcPortMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowTcpSrcPortMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowTcpSrcPortMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowTcpSrcPortMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowTcpSrcPortMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowTcpSrcPortMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowTcpSrcPortMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowTcpSrcPortMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowTcpSrcPortMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowTcpSrcPortMetricTag): + raise Exception("Item is not an instance of PatternFlowTcpSrcPortMetricTag") + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowTcpSrcPortMetricTagIter + """Factory method that creates an instance of the PatternFlowTcpSrcPortMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpSrcPortMetricTagIter + """ + item = PatternFlowTcpSrcPortMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowTcpSrcPortMetricTag + """Add method that creates and returns an instance of the PatternFlowTcpSrcPortMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpSrcPortMetricTag + """ + item = PatternFlowTcpSrcPortMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowTcpSrcPortCounter(OpenApiObject): @@ -43117,7 +52658,7 @@ class PatternFlowTcpDstPort(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowTcpDstPortMetricTagIter"}, "increment": {"type": "PatternFlowTcpDstPortCounter"}, "decrement": {"type": "PatternFlowTcpDstPortCounter"}, } # type: Dict[str, str] @@ -43137,14 +52678,11 @@ class PatternFlowTcpDstPort(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowTcpDstPort, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -43154,7 +52692,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -43249,25 +52787,183 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowTcpDstPortMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpDstPortMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowTcpDstPortMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowTcpDstPortMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowTcpDstPortMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowTcpDstPortMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowTcpDstPortMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowTcpDstPortMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowTcpDstPortMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowTcpDstPortMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowTcpDstPortMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowTcpDstPortMetricTag): + raise Exception("Item is not an instance of PatternFlowTcpDstPortMetricTag") + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowTcpDstPortMetricTagIter + """Factory method that creates an instance of the PatternFlowTcpDstPortMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpDstPortMetricTagIter + """ + item = PatternFlowTcpDstPortMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowTcpDstPortMetricTag + """Add method that creates and returns an instance of the PatternFlowTcpDstPortMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpDstPortMetricTag + """ + item = PatternFlowTcpDstPortMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowTcpDstPortCounter(OpenApiObject): @@ -43399,7 +53095,7 @@ class PatternFlowTcpSeqNum(OpenApiObject): "minimum": 0, "maximum": 4294967295, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowTcpSeqNumMetricTagIter"}, "increment": {"type": "PatternFlowTcpSeqNumCounter"}, "decrement": {"type": "PatternFlowTcpSeqNumCounter"}, } # type: Dict[str, str] @@ -43419,14 +53115,11 @@ class PatternFlowTcpSeqNum(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowTcpSeqNum, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -43436,7 +53129,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -43531,25 +53224,180 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowTcpSeqNumMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpSeqNumMetricTagIter + """ + return self._get_property( + "metric_tags", PatternFlowTcpSeqNumMetricTagIter, self._parent, self._choice + ) + + +class PatternFlowTcpSeqNumMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 31, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 32, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 32, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=32): + super(PatternFlowTcpSeqNumMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowTcpSeqNumMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowTcpSeqNumMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowTcpSeqNumMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowTcpSeqNumMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowTcpSeqNumMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowTcpSeqNumMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowTcpSeqNumMetricTag): + raise Exception("Item is not an instance of PatternFlowTcpSeqNumMetricTag") + + def metrictag(self, name=None, offset=0, length=32): + # type: (str,int,int) -> PatternFlowTcpSeqNumMetricTagIter + """Factory method that creates an instance of the PatternFlowTcpSeqNumMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpSeqNumMetricTagIter + """ + item = PatternFlowTcpSeqNumMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=32): + # type: (str,int,int) -> PatternFlowTcpSeqNumMetricTag + """Add method that creates and returns an instance of the PatternFlowTcpSeqNumMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpSeqNumMetricTag + """ + item = PatternFlowTcpSeqNumMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowTcpSeqNumCounter(OpenApiObject): @@ -43683,7 +53531,7 @@ class PatternFlowTcpAckNum(OpenApiObject): "minimum": 0, "maximum": 4294967295, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowTcpAckNumMetricTagIter"}, "increment": {"type": "PatternFlowTcpAckNumCounter"}, "decrement": {"type": "PatternFlowTcpAckNumCounter"}, } # type: Dict[str, str] @@ -43703,14 +53551,11 @@ class PatternFlowTcpAckNum(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowTcpAckNum, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -43720,7 +53565,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -43815,25 +53660,180 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowTcpAckNumMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpAckNumMetricTagIter + """ + return self._get_property( + "metric_tags", PatternFlowTcpAckNumMetricTagIter, self._parent, self._choice + ) + + +class PatternFlowTcpAckNumMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 31, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 32, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 32, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=32): + super(PatternFlowTcpAckNumMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowTcpAckNumMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowTcpAckNumMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowTcpAckNumMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowTcpAckNumMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowTcpAckNumMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowTcpAckNumMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowTcpAckNumMetricTag): + raise Exception("Item is not an instance of PatternFlowTcpAckNumMetricTag") + + def metrictag(self, name=None, offset=0, length=32): + # type: (str,int,int) -> PatternFlowTcpAckNumMetricTagIter + """Factory method that creates an instance of the PatternFlowTcpAckNumMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpAckNumMetricTagIter + """ + item = PatternFlowTcpAckNumMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=32): + # type: (str,int,int) -> PatternFlowTcpAckNumMetricTag + """Add method that creates and returns an instance of the PatternFlowTcpAckNumMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpAckNumMetricTag + """ + item = PatternFlowTcpAckNumMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowTcpAckNumCounter(OpenApiObject): @@ -43965,7 +53965,7 @@ class PatternFlowTcpDataOffset(OpenApiObject): "minimum": 0, "maximum": 15, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowTcpDataOffsetMetricTagIter"}, "increment": {"type": "PatternFlowTcpDataOffsetCounter"}, "decrement": {"type": "PatternFlowTcpDataOffsetCounter"}, } # type: Dict[str, str] @@ -43985,14 +53985,11 @@ class PatternFlowTcpDataOffset(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowTcpDataOffset, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -44002,7 +53999,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -44097,25 +54094,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowTcpDataOffsetMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpDataOffsetMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowTcpDataOffsetMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowTcpDataOffsetMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 3, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 4, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 4, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=4): + super(PatternFlowTcpDataOffsetMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowTcpDataOffsetMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowTcpDataOffsetMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowTcpDataOffsetMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowTcpDataOffsetMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowTcpDataOffsetMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowTcpDataOffsetMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowTcpDataOffsetMetricTag): + raise Exception( + "Item is not an instance of PatternFlowTcpDataOffsetMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=4): + # type: (str,int,int) -> PatternFlowTcpDataOffsetMetricTagIter + """Factory method that creates an instance of the PatternFlowTcpDataOffsetMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpDataOffsetMetricTagIter + """ + item = PatternFlowTcpDataOffsetMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=4): + # type: (str,int,int) -> PatternFlowTcpDataOffsetMetricTag + """Add method that creates and returns an instance of the PatternFlowTcpDataOffsetMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpDataOffsetMetricTag + """ + item = PatternFlowTcpDataOffsetMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowTcpDataOffsetCounter(OpenApiObject): @@ -44245,7 +54402,7 @@ class PatternFlowTcpEcnNs(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowTcpEcnNsMetricTagIter"}, "increment": {"type": "PatternFlowTcpEcnNsCounter"}, "decrement": {"type": "PatternFlowTcpEcnNsCounter"}, } # type: Dict[str, str] @@ -44265,14 +54422,11 @@ class PatternFlowTcpEcnNs(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowTcpEcnNs, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -44282,7 +54436,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -44377,25 +54531,180 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowTcpEcnNsMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpEcnNsMetricTagIter + """ + return self._get_property( + "metric_tags", PatternFlowTcpEcnNsMetricTagIter, self._parent, self._choice + ) + + +class PatternFlowTcpEcnNsMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowTcpEcnNsMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowTcpEcnNsMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowTcpEcnNsMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowTcpEcnNsMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowTcpEcnNsMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowTcpEcnNsMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowTcpEcnNsMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowTcpEcnNsMetricTag): + raise Exception("Item is not an instance of PatternFlowTcpEcnNsMetricTag") + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowTcpEcnNsMetricTagIter + """Factory method that creates an instance of the PatternFlowTcpEcnNsMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpEcnNsMetricTagIter + """ + item = PatternFlowTcpEcnNsMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowTcpEcnNsMetricTag + """Add method that creates and returns an instance of the PatternFlowTcpEcnNsMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpEcnNsMetricTag + """ + item = PatternFlowTcpEcnNsMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowTcpEcnNsCounter(OpenApiObject): @@ -44525,7 +54834,7 @@ class PatternFlowTcpEcnCwr(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowTcpEcnCwrMetricTagIter"}, "increment": {"type": "PatternFlowTcpEcnCwrCounter"}, "decrement": {"type": "PatternFlowTcpEcnCwrCounter"}, } # type: Dict[str, str] @@ -44545,14 +54854,11 @@ class PatternFlowTcpEcnCwr(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowTcpEcnCwr, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -44562,7 +54868,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -44657,25 +54963,180 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowTcpEcnCwrMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpEcnCwrMetricTagIter + """ + return self._get_property( + "metric_tags", PatternFlowTcpEcnCwrMetricTagIter, self._parent, self._choice + ) + + +class PatternFlowTcpEcnCwrMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowTcpEcnCwrMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowTcpEcnCwrMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowTcpEcnCwrMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowTcpEcnCwrMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowTcpEcnCwrMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowTcpEcnCwrMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowTcpEcnCwrMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowTcpEcnCwrMetricTag): + raise Exception("Item is not an instance of PatternFlowTcpEcnCwrMetricTag") + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowTcpEcnCwrMetricTagIter + """Factory method that creates an instance of the PatternFlowTcpEcnCwrMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpEcnCwrMetricTagIter + """ + item = PatternFlowTcpEcnCwrMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowTcpEcnCwrMetricTag + """Add method that creates and returns an instance of the PatternFlowTcpEcnCwrMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpEcnCwrMetricTag + """ + item = PatternFlowTcpEcnCwrMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowTcpEcnCwrCounter(OpenApiObject): @@ -44805,7 +55266,7 @@ class PatternFlowTcpEcnEcho(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowTcpEcnEchoMetricTagIter"}, "increment": {"type": "PatternFlowTcpEcnEchoCounter"}, "decrement": {"type": "PatternFlowTcpEcnEchoCounter"}, } # type: Dict[str, str] @@ -44825,14 +55286,11 @@ class PatternFlowTcpEcnEcho(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowTcpEcnEcho, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -44842,7 +55300,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -44937,25 +55395,183 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowTcpEcnEchoMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpEcnEchoMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowTcpEcnEchoMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowTcpEcnEchoMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowTcpEcnEchoMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowTcpEcnEchoMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowTcpEcnEchoMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowTcpEcnEchoMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowTcpEcnEchoMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowTcpEcnEchoMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowTcpEcnEchoMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowTcpEcnEchoMetricTag): + raise Exception("Item is not an instance of PatternFlowTcpEcnEchoMetricTag") + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowTcpEcnEchoMetricTagIter + """Factory method that creates an instance of the PatternFlowTcpEcnEchoMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpEcnEchoMetricTagIter + """ + item = PatternFlowTcpEcnEchoMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowTcpEcnEchoMetricTag + """Add method that creates and returns an instance of the PatternFlowTcpEcnEchoMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpEcnEchoMetricTag + """ + item = PatternFlowTcpEcnEchoMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowTcpEcnEchoCounter(OpenApiObject): @@ -45085,7 +55701,7 @@ class PatternFlowTcpCtlUrg(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowTcpCtlUrgMetricTagIter"}, "increment": {"type": "PatternFlowTcpCtlUrgCounter"}, "decrement": {"type": "PatternFlowTcpCtlUrgCounter"}, } # type: Dict[str, str] @@ -45105,14 +55721,11 @@ class PatternFlowTcpCtlUrg(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowTcpCtlUrg, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -45122,7 +55735,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -45217,25 +55830,180 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowTcpCtlUrgMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpCtlUrgMetricTagIter + """ + return self._get_property( + "metric_tags", PatternFlowTcpCtlUrgMetricTagIter, self._parent, self._choice + ) + + +class PatternFlowTcpCtlUrgMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowTcpCtlUrgMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowTcpCtlUrgMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowTcpCtlUrgMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowTcpCtlUrgMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowTcpCtlUrgMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowTcpCtlUrgMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowTcpCtlUrgMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowTcpCtlUrgMetricTag): + raise Exception("Item is not an instance of PatternFlowTcpCtlUrgMetricTag") + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowTcpCtlUrgMetricTagIter + """Factory method that creates an instance of the PatternFlowTcpCtlUrgMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpCtlUrgMetricTagIter + """ + item = PatternFlowTcpCtlUrgMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowTcpCtlUrgMetricTag + """Add method that creates and returns an instance of the PatternFlowTcpCtlUrgMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpCtlUrgMetricTag + """ + item = PatternFlowTcpCtlUrgMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowTcpCtlUrgCounter(OpenApiObject): @@ -45365,7 +56133,7 @@ class PatternFlowTcpCtlAck(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowTcpCtlAckMetricTagIter"}, "increment": {"type": "PatternFlowTcpCtlAckCounter"}, "decrement": {"type": "PatternFlowTcpCtlAckCounter"}, } # type: Dict[str, str] @@ -45385,14 +56153,11 @@ class PatternFlowTcpCtlAck(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowTcpCtlAck, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -45402,7 +56167,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -45497,25 +56262,180 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowTcpCtlAckMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpCtlAckMetricTagIter + """ + return self._get_property( + "metric_tags", PatternFlowTcpCtlAckMetricTagIter, self._parent, self._choice + ) + + +class PatternFlowTcpCtlAckMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowTcpCtlAckMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowTcpCtlAckMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowTcpCtlAckMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowTcpCtlAckMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowTcpCtlAckMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowTcpCtlAckMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowTcpCtlAckMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowTcpCtlAckMetricTag): + raise Exception("Item is not an instance of PatternFlowTcpCtlAckMetricTag") + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowTcpCtlAckMetricTagIter + """Factory method that creates an instance of the PatternFlowTcpCtlAckMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpCtlAckMetricTagIter + """ + item = PatternFlowTcpCtlAckMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowTcpCtlAckMetricTag + """Add method that creates and returns an instance of the PatternFlowTcpCtlAckMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpCtlAckMetricTag + """ + item = PatternFlowTcpCtlAckMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowTcpCtlAckCounter(OpenApiObject): @@ -45645,7 +56565,7 @@ class PatternFlowTcpCtlPsh(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowTcpCtlPshMetricTagIter"}, "increment": {"type": "PatternFlowTcpCtlPshCounter"}, "decrement": {"type": "PatternFlowTcpCtlPshCounter"}, } # type: Dict[str, str] @@ -45665,14 +56585,11 @@ class PatternFlowTcpCtlPsh(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowTcpCtlPsh, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -45682,7 +56599,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -45777,25 +56694,180 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowTcpCtlPshMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpCtlPshMetricTagIter + """ + return self._get_property( + "metric_tags", PatternFlowTcpCtlPshMetricTagIter, self._parent, self._choice + ) + + +class PatternFlowTcpCtlPshMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowTcpCtlPshMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowTcpCtlPshMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowTcpCtlPshMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowTcpCtlPshMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowTcpCtlPshMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowTcpCtlPshMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowTcpCtlPshMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowTcpCtlPshMetricTag): + raise Exception("Item is not an instance of PatternFlowTcpCtlPshMetricTag") + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowTcpCtlPshMetricTagIter + """Factory method that creates an instance of the PatternFlowTcpCtlPshMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpCtlPshMetricTagIter + """ + item = PatternFlowTcpCtlPshMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowTcpCtlPshMetricTag + """Add method that creates and returns an instance of the PatternFlowTcpCtlPshMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpCtlPshMetricTag + """ + item = PatternFlowTcpCtlPshMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowTcpCtlPshCounter(OpenApiObject): @@ -45925,7 +56997,7 @@ class PatternFlowTcpCtlRst(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowTcpCtlRstMetricTagIter"}, "increment": {"type": "PatternFlowTcpCtlRstCounter"}, "decrement": {"type": "PatternFlowTcpCtlRstCounter"}, } # type: Dict[str, str] @@ -45945,14 +57017,11 @@ class PatternFlowTcpCtlRst(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowTcpCtlRst, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -45962,7 +57031,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -46057,25 +57126,180 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowTcpCtlRstMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpCtlRstMetricTagIter + """ + return self._get_property( + "metric_tags", PatternFlowTcpCtlRstMetricTagIter, self._parent, self._choice + ) + + +class PatternFlowTcpCtlRstMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowTcpCtlRstMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowTcpCtlRstMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowTcpCtlRstMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowTcpCtlRstMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowTcpCtlRstMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowTcpCtlRstMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowTcpCtlRstMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowTcpCtlRstMetricTag): + raise Exception("Item is not an instance of PatternFlowTcpCtlRstMetricTag") + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowTcpCtlRstMetricTagIter + """Factory method that creates an instance of the PatternFlowTcpCtlRstMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpCtlRstMetricTagIter + """ + item = PatternFlowTcpCtlRstMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowTcpCtlRstMetricTag + """Add method that creates and returns an instance of the PatternFlowTcpCtlRstMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpCtlRstMetricTag + """ + item = PatternFlowTcpCtlRstMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowTcpCtlRstCounter(OpenApiObject): @@ -46205,7 +57429,7 @@ class PatternFlowTcpCtlSyn(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowTcpCtlSynMetricTagIter"}, "increment": {"type": "PatternFlowTcpCtlSynCounter"}, "decrement": {"type": "PatternFlowTcpCtlSynCounter"}, } # type: Dict[str, str] @@ -46225,14 +57449,11 @@ class PatternFlowTcpCtlSyn(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowTcpCtlSyn, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -46242,7 +57463,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -46337,25 +57558,180 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowTcpCtlSynMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpCtlSynMetricTagIter + """ + return self._get_property( + "metric_tags", PatternFlowTcpCtlSynMetricTagIter, self._parent, self._choice + ) + + +class PatternFlowTcpCtlSynMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowTcpCtlSynMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowTcpCtlSynMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowTcpCtlSynMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowTcpCtlSynMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowTcpCtlSynMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowTcpCtlSynMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowTcpCtlSynMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowTcpCtlSynMetricTag): + raise Exception("Item is not an instance of PatternFlowTcpCtlSynMetricTag") + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowTcpCtlSynMetricTagIter + """Factory method that creates an instance of the PatternFlowTcpCtlSynMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpCtlSynMetricTagIter + """ + item = PatternFlowTcpCtlSynMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowTcpCtlSynMetricTag + """Add method that creates and returns an instance of the PatternFlowTcpCtlSynMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpCtlSynMetricTag + """ + item = PatternFlowTcpCtlSynMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowTcpCtlSynCounter(OpenApiObject): @@ -46485,7 +57861,7 @@ class PatternFlowTcpCtlFin(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowTcpCtlFinMetricTagIter"}, "increment": {"type": "PatternFlowTcpCtlFinCounter"}, "decrement": {"type": "PatternFlowTcpCtlFinCounter"}, } # type: Dict[str, str] @@ -46505,14 +57881,11 @@ class PatternFlowTcpCtlFin(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowTcpCtlFin, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -46522,7 +57895,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -46617,25 +57990,180 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowTcpCtlFinMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpCtlFinMetricTagIter + """ + return self._get_property( + "metric_tags", PatternFlowTcpCtlFinMetricTagIter, self._parent, self._choice + ) + + +class PatternFlowTcpCtlFinMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowTcpCtlFinMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowTcpCtlFinMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowTcpCtlFinMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowTcpCtlFinMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowTcpCtlFinMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowTcpCtlFinMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowTcpCtlFinMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowTcpCtlFinMetricTag): + raise Exception("Item is not an instance of PatternFlowTcpCtlFinMetricTag") + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowTcpCtlFinMetricTagIter + """Factory method that creates an instance of the PatternFlowTcpCtlFinMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpCtlFinMetricTagIter + """ + item = PatternFlowTcpCtlFinMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowTcpCtlFinMetricTag + """Add method that creates and returns an instance of the PatternFlowTcpCtlFinMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpCtlFinMetricTag + """ + item = PatternFlowTcpCtlFinMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowTcpCtlFinCounter(OpenApiObject): @@ -46765,7 +58293,7 @@ class PatternFlowTcpWindow(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowTcpWindowMetricTagIter"}, "increment": {"type": "PatternFlowTcpWindowCounter"}, "decrement": {"type": "PatternFlowTcpWindowCounter"}, } # type: Dict[str, str] @@ -46785,14 +58313,11 @@ class PatternFlowTcpWindow(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowTcpWindow, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -46802,7 +58327,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -46897,25 +58422,180 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowTcpWindowMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpWindowMetricTagIter + """ + return self._get_property( + "metric_tags", PatternFlowTcpWindowMetricTagIter, self._parent, self._choice + ) + + +class PatternFlowTcpWindowMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowTcpWindowMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowTcpWindowMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowTcpWindowMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowTcpWindowMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowTcpWindowMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowTcpWindowMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowTcpWindowMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowTcpWindowMetricTag): + raise Exception("Item is not an instance of PatternFlowTcpWindowMetricTag") + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowTcpWindowMetricTagIter + """Factory method that creates an instance of the PatternFlowTcpWindowMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpWindowMetricTagIter + """ + item = PatternFlowTcpWindowMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowTcpWindowMetricTag + """Add method that creates and returns an instance of the PatternFlowTcpWindowMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowTcpWindowMetricTag + """ + item = PatternFlowTcpWindowMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowTcpWindowCounter(OpenApiObject): @@ -47110,7 +58790,7 @@ class PatternFlowUdpSrcPort(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowUdpSrcPortMetricTagIter"}, "increment": {"type": "PatternFlowUdpSrcPortCounter"}, "decrement": {"type": "PatternFlowUdpSrcPortCounter"}, } # type: Dict[str, str] @@ -47130,14 +58810,11 @@ class PatternFlowUdpSrcPort(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowUdpSrcPort, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -47147,7 +58824,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -47242,25 +58919,183 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowUdpSrcPortMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowUdpSrcPortMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowUdpSrcPortMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowUdpSrcPortMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowUdpSrcPortMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowUdpSrcPortMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowUdpSrcPortMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowUdpSrcPortMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowUdpSrcPortMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowUdpSrcPortMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowUdpSrcPortMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowUdpSrcPortMetricTag): + raise Exception("Item is not an instance of PatternFlowUdpSrcPortMetricTag") + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowUdpSrcPortMetricTagIter + """Factory method that creates an instance of the PatternFlowUdpSrcPortMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowUdpSrcPortMetricTagIter + """ + item = PatternFlowUdpSrcPortMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowUdpSrcPortMetricTag + """Add method that creates and returns an instance of the PatternFlowUdpSrcPortMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowUdpSrcPortMetricTag + """ + item = PatternFlowUdpSrcPortMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowUdpSrcPortCounter(OpenApiObject): @@ -47390,7 +59225,7 @@ class PatternFlowUdpDstPort(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowUdpDstPortMetricTagIter"}, "increment": {"type": "PatternFlowUdpDstPortCounter"}, "decrement": {"type": "PatternFlowUdpDstPortCounter"}, } # type: Dict[str, str] @@ -47410,14 +59245,11 @@ class PatternFlowUdpDstPort(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowUdpDstPort, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -47427,7 +59259,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -47522,25 +59354,183 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowUdpDstPortMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowUdpDstPortMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowUdpDstPortMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowUdpDstPortMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowUdpDstPortMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowUdpDstPortMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowUdpDstPortMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowUdpDstPortMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowUdpDstPortMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowUdpDstPortMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowUdpDstPortMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowUdpDstPortMetricTag): + raise Exception("Item is not an instance of PatternFlowUdpDstPortMetricTag") + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowUdpDstPortMetricTagIter + """Factory method that creates an instance of the PatternFlowUdpDstPortMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowUdpDstPortMetricTagIter + """ + item = PatternFlowUdpDstPortMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowUdpDstPortMetricTag + """Add method that creates and returns an instance of the PatternFlowUdpDstPortMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowUdpDstPortMetricTag + """ + item = PatternFlowUdpDstPortMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowUdpDstPortCounter(OpenApiObject): @@ -47670,7 +59660,7 @@ class PatternFlowUdpLength(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowUdpLengthMetricTagIter"}, "increment": {"type": "PatternFlowUdpLengthCounter"}, "decrement": {"type": "PatternFlowUdpLengthCounter"}, } # type: Dict[str, str] @@ -47690,14 +59680,11 @@ class PatternFlowUdpLength(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowUdpLength, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -47707,7 +59694,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -47802,25 +59789,180 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowUdpLengthMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowUdpLengthMetricTagIter + """ + return self._get_property( + "metric_tags", PatternFlowUdpLengthMetricTagIter, self._parent, self._choice + ) + + +class PatternFlowUdpLengthMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowUdpLengthMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowUdpLengthMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowUdpLengthMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowUdpLengthMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowUdpLengthMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowUdpLengthMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowUdpLengthMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowUdpLengthMetricTag): + raise Exception("Item is not an instance of PatternFlowUdpLengthMetricTag") + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowUdpLengthMetricTagIter + """Factory method that creates an instance of the PatternFlowUdpLengthMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowUdpLengthMetricTagIter + """ + item = PatternFlowUdpLengthMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowUdpLengthMetricTag + """Add method that creates and returns an instance of the PatternFlowUdpLengthMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowUdpLengthMetricTag + """ + item = PatternFlowUdpLengthMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowUdpLengthCounter(OpenApiObject): @@ -48162,7 +60304,7 @@ class PatternFlowGreChecksumPresent(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGreChecksumPresentMetricTagIter"}, "increment": {"type": "PatternFlowGreChecksumPresentCounter"}, "decrement": {"type": "PatternFlowGreChecksumPresentCounter"}, } # type: Dict[str, str] @@ -48182,14 +60324,11 @@ class PatternFlowGreChecksumPresent(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGreChecksumPresent, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -48199,7 +60338,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -48294,25 +60433,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGreChecksumPresentMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGreChecksumPresentMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGreChecksumPresentMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGreChecksumPresentMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowGreChecksumPresentMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGreChecksumPresentMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGreChecksumPresentMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGreChecksumPresentMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGreChecksumPresentMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGreChecksumPresentMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGreChecksumPresentMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGreChecksumPresentMetricTag): + raise Exception( + "Item is not an instance of PatternFlowGreChecksumPresentMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowGreChecksumPresentMetricTagIter + """Factory method that creates an instance of the PatternFlowGreChecksumPresentMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGreChecksumPresentMetricTagIter + """ + item = PatternFlowGreChecksumPresentMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowGreChecksumPresentMetricTag + """Add method that creates and returns an instance of the PatternFlowGreChecksumPresentMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGreChecksumPresentMetricTag + """ + item = PatternFlowGreChecksumPresentMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGreChecksumPresentCounter(OpenApiObject): @@ -48442,7 +60741,7 @@ class PatternFlowGreReserved0(OpenApiObject): "minimum": 0, "maximum": 4095, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGreReserved0MetricTagIter"}, "increment": {"type": "PatternFlowGreReserved0Counter"}, "decrement": {"type": "PatternFlowGreReserved0Counter"}, } # type: Dict[str, str] @@ -48462,14 +60761,11 @@ class PatternFlowGreReserved0(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGreReserved0, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -48479,7 +60775,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -48574,25 +60870,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGreReserved0MetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGreReserved0MetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGreReserved0MetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGreReserved0MetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 11, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 12, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 12, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=12): + super(PatternFlowGreReserved0MetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGreReserved0MetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGreReserved0MetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGreReserved0MetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGreReserved0MetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGreReserved0MetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGreReserved0MetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGreReserved0MetricTag): + raise Exception( + "Item is not an instance of PatternFlowGreReserved0MetricTag" + ) + + def metrictag(self, name=None, offset=0, length=12): + # type: (str,int,int) -> PatternFlowGreReserved0MetricTagIter + """Factory method that creates an instance of the PatternFlowGreReserved0MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGreReserved0MetricTagIter + """ + item = PatternFlowGreReserved0MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=12): + # type: (str,int,int) -> PatternFlowGreReserved0MetricTag + """Add method that creates and returns an instance of the PatternFlowGreReserved0MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGreReserved0MetricTag + """ + item = PatternFlowGreReserved0MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGreReserved0Counter(OpenApiObject): @@ -48722,7 +61178,7 @@ class PatternFlowGreVersion(OpenApiObject): "minimum": 0, "maximum": 7, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGreVersionMetricTagIter"}, "increment": {"type": "PatternFlowGreVersionCounter"}, "decrement": {"type": "PatternFlowGreVersionCounter"}, } # type: Dict[str, str] @@ -48742,14 +61198,11 @@ class PatternFlowGreVersion(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGreVersion, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -48759,7 +61212,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -48854,25 +61307,183 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGreVersionMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGreVersionMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGreVersionMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGreVersionMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 2, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 3, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 3, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=3): + super(PatternFlowGreVersionMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGreVersionMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGreVersionMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGreVersionMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGreVersionMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGreVersionMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGreVersionMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGreVersionMetricTag): + raise Exception("Item is not an instance of PatternFlowGreVersionMetricTag") + + def metrictag(self, name=None, offset=0, length=3): + # type: (str,int,int) -> PatternFlowGreVersionMetricTagIter + """Factory method that creates an instance of the PatternFlowGreVersionMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGreVersionMetricTagIter + """ + item = PatternFlowGreVersionMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=3): + # type: (str,int,int) -> PatternFlowGreVersionMetricTag + """Add method that creates and returns an instance of the PatternFlowGreVersionMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGreVersionMetricTag + """ + item = PatternFlowGreVersionMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGreVersionCounter(OpenApiObject): @@ -49002,7 +61613,7 @@ class PatternFlowGreProtocol(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGreProtocolMetricTagIter"}, "increment": {"type": "PatternFlowGreProtocolCounter"}, "decrement": {"type": "PatternFlowGreProtocolCounter"}, } # type: Dict[str, str] @@ -49025,14 +61636,11 @@ class PatternFlowGreProtocol(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=2048, values=[2048], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=2048, values=[2048]): super(PatternFlowGreProtocol, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -49042,7 +61650,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -49137,25 +61745,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGreProtocolMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGreProtocolMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGreProtocolMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGreProtocolMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowGreProtocolMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGreProtocolMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGreProtocolMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGreProtocolMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGreProtocolMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGreProtocolMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGreProtocolMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGreProtocolMetricTag): + raise Exception( + "Item is not an instance of PatternFlowGreProtocolMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowGreProtocolMetricTagIter + """Factory method that creates an instance of the PatternFlowGreProtocolMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGreProtocolMetricTagIter + """ + item = PatternFlowGreProtocolMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowGreProtocolMetricTag + """Add method that creates and returns an instance of the PatternFlowGreProtocolMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGreProtocolMetricTag + """ + item = PatternFlowGreProtocolMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGreProtocolCounter(OpenApiObject): @@ -49411,7 +62179,7 @@ class PatternFlowGreReserved1(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGreReserved1MetricTagIter"}, "increment": {"type": "PatternFlowGreReserved1Counter"}, "decrement": {"type": "PatternFlowGreReserved1Counter"}, } # type: Dict[str, str] @@ -49431,14 +62199,11 @@ class PatternFlowGreReserved1(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGreReserved1, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -49448,7 +62213,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -49543,25 +62308,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGreReserved1MetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGreReserved1MetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGreReserved1MetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGreReserved1MetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowGreReserved1MetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGreReserved1MetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGreReserved1MetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGreReserved1MetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGreReserved1MetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGreReserved1MetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGreReserved1MetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGreReserved1MetricTag): + raise Exception( + "Item is not an instance of PatternFlowGreReserved1MetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowGreReserved1MetricTagIter + """Factory method that creates an instance of the PatternFlowGreReserved1MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGreReserved1MetricTagIter + """ + item = PatternFlowGreReserved1MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowGreReserved1MetricTag + """Add method that creates and returns an instance of the PatternFlowGreReserved1MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGreReserved1MetricTag + """ + item = PatternFlowGreReserved1MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGreReserved1Counter(OpenApiObject): @@ -49870,7 +62795,7 @@ class PatternFlowGtpv1Version(OpenApiObject): "minimum": 0, "maximum": 7, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGtpv1VersionMetricTagIter"}, "increment": {"type": "PatternFlowGtpv1VersionCounter"}, "decrement": {"type": "PatternFlowGtpv1VersionCounter"}, } # type: Dict[str, str] @@ -49890,14 +62815,11 @@ class PatternFlowGtpv1Version(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=1, values=[1], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=1, values=[1]): super(PatternFlowGtpv1Version, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -49907,7 +62829,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -50002,25 +62924,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpv1VersionMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1VersionMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGtpv1VersionMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGtpv1VersionMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 2, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 3, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 3, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=3): + super(PatternFlowGtpv1VersionMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpv1VersionMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpv1VersionMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpv1VersionMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpv1VersionMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpv1VersionMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpv1VersionMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpv1VersionMetricTag): + raise Exception( + "Item is not an instance of PatternFlowGtpv1VersionMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=3): + # type: (str,int,int) -> PatternFlowGtpv1VersionMetricTagIter + """Factory method that creates an instance of the PatternFlowGtpv1VersionMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1VersionMetricTagIter + """ + item = PatternFlowGtpv1VersionMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=3): + # type: (str,int,int) -> PatternFlowGtpv1VersionMetricTag + """Add method that creates and returns an instance of the PatternFlowGtpv1VersionMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1VersionMetricTag + """ + item = PatternFlowGtpv1VersionMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpv1VersionCounter(OpenApiObject): @@ -50150,7 +63232,7 @@ class PatternFlowGtpv1ProtocolType(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGtpv1ProtocolTypeMetricTagIter"}, "increment": {"type": "PatternFlowGtpv1ProtocolTypeCounter"}, "decrement": {"type": "PatternFlowGtpv1ProtocolTypeCounter"}, } # type: Dict[str, str] @@ -50170,14 +63252,11 @@ class PatternFlowGtpv1ProtocolType(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=1, values=[1], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=1, values=[1]): super(PatternFlowGtpv1ProtocolType, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -50187,7 +63266,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -50282,25 +63361,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpv1ProtocolTypeMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1ProtocolTypeMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGtpv1ProtocolTypeMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGtpv1ProtocolTypeMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowGtpv1ProtocolTypeMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpv1ProtocolTypeMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpv1ProtocolTypeMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpv1ProtocolTypeMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpv1ProtocolTypeMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpv1ProtocolTypeMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpv1ProtocolTypeMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpv1ProtocolTypeMetricTag): + raise Exception( + "Item is not an instance of PatternFlowGtpv1ProtocolTypeMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowGtpv1ProtocolTypeMetricTagIter + """Factory method that creates an instance of the PatternFlowGtpv1ProtocolTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1ProtocolTypeMetricTagIter + """ + item = PatternFlowGtpv1ProtocolTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowGtpv1ProtocolTypeMetricTag + """Add method that creates and returns an instance of the PatternFlowGtpv1ProtocolTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1ProtocolTypeMetricTag + """ + item = PatternFlowGtpv1ProtocolTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpv1ProtocolTypeCounter(OpenApiObject): @@ -50430,7 +63669,7 @@ class PatternFlowGtpv1Reserved(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGtpv1ReservedMetricTagIter"}, "increment": {"type": "PatternFlowGtpv1ReservedCounter"}, "decrement": {"type": "PatternFlowGtpv1ReservedCounter"}, } # type: Dict[str, str] @@ -50450,14 +63689,11 @@ class PatternFlowGtpv1Reserved(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGtpv1Reserved, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -50467,7 +63703,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -50562,25 +63798,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpv1ReservedMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1ReservedMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGtpv1ReservedMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGtpv1ReservedMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowGtpv1ReservedMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpv1ReservedMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpv1ReservedMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpv1ReservedMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpv1ReservedMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpv1ReservedMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpv1ReservedMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpv1ReservedMetricTag): + raise Exception( + "Item is not an instance of PatternFlowGtpv1ReservedMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowGtpv1ReservedMetricTagIter + """Factory method that creates an instance of the PatternFlowGtpv1ReservedMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1ReservedMetricTagIter + """ + item = PatternFlowGtpv1ReservedMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowGtpv1ReservedMetricTag + """Add method that creates and returns an instance of the PatternFlowGtpv1ReservedMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1ReservedMetricTag + """ + item = PatternFlowGtpv1ReservedMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpv1ReservedCounter(OpenApiObject): @@ -50710,7 +64106,7 @@ class PatternFlowGtpv1EFlag(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGtpv1EFlagMetricTagIter"}, "increment": {"type": "PatternFlowGtpv1EFlagCounter"}, "decrement": {"type": "PatternFlowGtpv1EFlagCounter"}, } # type: Dict[str, str] @@ -50730,14 +64126,11 @@ class PatternFlowGtpv1EFlag(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGtpv1EFlag, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -50747,7 +64140,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -50842,25 +64235,183 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpv1EFlagMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1EFlagMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGtpv1EFlagMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGtpv1EFlagMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowGtpv1EFlagMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpv1EFlagMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpv1EFlagMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpv1EFlagMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpv1EFlagMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpv1EFlagMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpv1EFlagMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpv1EFlagMetricTag): + raise Exception("Item is not an instance of PatternFlowGtpv1EFlagMetricTag") + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowGtpv1EFlagMetricTagIter + """Factory method that creates an instance of the PatternFlowGtpv1EFlagMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1EFlagMetricTagIter + """ + item = PatternFlowGtpv1EFlagMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowGtpv1EFlagMetricTag + """Add method that creates and returns an instance of the PatternFlowGtpv1EFlagMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1EFlagMetricTag + """ + item = PatternFlowGtpv1EFlagMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpv1EFlagCounter(OpenApiObject): @@ -50990,7 +64541,7 @@ class PatternFlowGtpv1SFlag(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGtpv1SFlagMetricTagIter"}, "increment": {"type": "PatternFlowGtpv1SFlagCounter"}, "decrement": {"type": "PatternFlowGtpv1SFlagCounter"}, } # type: Dict[str, str] @@ -51010,14 +64561,11 @@ class PatternFlowGtpv1SFlag(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGtpv1SFlag, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -51027,7 +64575,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -51122,25 +64670,183 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpv1SFlagMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1SFlagMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGtpv1SFlagMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGtpv1SFlagMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowGtpv1SFlagMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpv1SFlagMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpv1SFlagMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpv1SFlagMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpv1SFlagMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpv1SFlagMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpv1SFlagMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpv1SFlagMetricTag): + raise Exception("Item is not an instance of PatternFlowGtpv1SFlagMetricTag") + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowGtpv1SFlagMetricTagIter + """Factory method that creates an instance of the PatternFlowGtpv1SFlagMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1SFlagMetricTagIter + """ + item = PatternFlowGtpv1SFlagMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowGtpv1SFlagMetricTag + """Add method that creates and returns an instance of the PatternFlowGtpv1SFlagMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1SFlagMetricTag + """ + item = PatternFlowGtpv1SFlagMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpv1SFlagCounter(OpenApiObject): @@ -51270,7 +64976,7 @@ class PatternFlowGtpv1PnFlag(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGtpv1PnFlagMetricTagIter"}, "increment": {"type": "PatternFlowGtpv1PnFlagCounter"}, "decrement": {"type": "PatternFlowGtpv1PnFlagCounter"}, } # type: Dict[str, str] @@ -51290,14 +64996,11 @@ class PatternFlowGtpv1PnFlag(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGtpv1PnFlag, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -51307,7 +65010,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -51402,25 +65105,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpv1PnFlagMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1PnFlagMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGtpv1PnFlagMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGtpv1PnFlagMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowGtpv1PnFlagMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpv1PnFlagMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpv1PnFlagMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpv1PnFlagMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpv1PnFlagMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpv1PnFlagMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpv1PnFlagMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpv1PnFlagMetricTag): + raise Exception( + "Item is not an instance of PatternFlowGtpv1PnFlagMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowGtpv1PnFlagMetricTagIter + """Factory method that creates an instance of the PatternFlowGtpv1PnFlagMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1PnFlagMetricTagIter + """ + item = PatternFlowGtpv1PnFlagMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowGtpv1PnFlagMetricTag + """Add method that creates and returns an instance of the PatternFlowGtpv1PnFlagMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1PnFlagMetricTag + """ + item = PatternFlowGtpv1PnFlagMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpv1PnFlagCounter(OpenApiObject): @@ -51550,7 +65413,7 @@ class PatternFlowGtpv1MessageType(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGtpv1MessageTypeMetricTagIter"}, "increment": {"type": "PatternFlowGtpv1MessageTypeCounter"}, "decrement": {"type": "PatternFlowGtpv1MessageTypeCounter"}, } # type: Dict[str, str] @@ -51570,14 +65433,11 @@ class PatternFlowGtpv1MessageType(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGtpv1MessageType, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -51587,7 +65447,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -51682,25 +65542,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpv1MessageTypeMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1MessageTypeMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGtpv1MessageTypeMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGtpv1MessageTypeMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowGtpv1MessageTypeMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpv1MessageTypeMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpv1MessageTypeMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpv1MessageTypeMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpv1MessageTypeMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpv1MessageTypeMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpv1MessageTypeMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpv1MessageTypeMetricTag): + raise Exception( + "Item is not an instance of PatternFlowGtpv1MessageTypeMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowGtpv1MessageTypeMetricTagIter + """Factory method that creates an instance of the PatternFlowGtpv1MessageTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1MessageTypeMetricTagIter + """ + item = PatternFlowGtpv1MessageTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowGtpv1MessageTypeMetricTag + """Add method that creates and returns an instance of the PatternFlowGtpv1MessageTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1MessageTypeMetricTag + """ + item = PatternFlowGtpv1MessageTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpv1MessageTypeCounter(OpenApiObject): @@ -51830,7 +65850,7 @@ class PatternFlowGtpv1MessageLength(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGtpv1MessageLengthMetricTagIter"}, "increment": {"type": "PatternFlowGtpv1MessageLengthCounter"}, "decrement": {"type": "PatternFlowGtpv1MessageLengthCounter"}, } # type: Dict[str, str] @@ -51850,14 +65870,11 @@ class PatternFlowGtpv1MessageLength(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGtpv1MessageLength, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -51867,7 +65884,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -51962,25 +65979,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpv1MessageLengthMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1MessageLengthMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGtpv1MessageLengthMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGtpv1MessageLengthMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowGtpv1MessageLengthMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpv1MessageLengthMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpv1MessageLengthMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpv1MessageLengthMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpv1MessageLengthMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpv1MessageLengthMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpv1MessageLengthMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpv1MessageLengthMetricTag): + raise Exception( + "Item is not an instance of PatternFlowGtpv1MessageLengthMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowGtpv1MessageLengthMetricTagIter + """Factory method that creates an instance of the PatternFlowGtpv1MessageLengthMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1MessageLengthMetricTagIter + """ + item = PatternFlowGtpv1MessageLengthMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowGtpv1MessageLengthMetricTag + """Add method that creates and returns an instance of the PatternFlowGtpv1MessageLengthMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1MessageLengthMetricTag + """ + item = PatternFlowGtpv1MessageLengthMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpv1MessageLengthCounter(OpenApiObject): @@ -52112,7 +66289,7 @@ class PatternFlowGtpv1Teid(OpenApiObject): "minimum": 0, "maximum": 4294967295, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGtpv1TeidMetricTagIter"}, "increment": {"type": "PatternFlowGtpv1TeidCounter"}, "decrement": {"type": "PatternFlowGtpv1TeidCounter"}, } # type: Dict[str, str] @@ -52132,14 +66309,11 @@ class PatternFlowGtpv1Teid(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGtpv1Teid, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -52149,7 +66323,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -52244,25 +66418,180 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpv1TeidMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1TeidMetricTagIter + """ + return self._get_property( + "metric_tags", PatternFlowGtpv1TeidMetricTagIter, self._parent, self._choice + ) + + +class PatternFlowGtpv1TeidMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 31, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 32, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 32, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=32): + super(PatternFlowGtpv1TeidMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpv1TeidMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpv1TeidMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpv1TeidMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpv1TeidMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpv1TeidMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpv1TeidMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpv1TeidMetricTag): + raise Exception("Item is not an instance of PatternFlowGtpv1TeidMetricTag") + + def metrictag(self, name=None, offset=0, length=32): + # type: (str,int,int) -> PatternFlowGtpv1TeidMetricTagIter + """Factory method that creates an instance of the PatternFlowGtpv1TeidMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1TeidMetricTagIter + """ + item = PatternFlowGtpv1TeidMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=32): + # type: (str,int,int) -> PatternFlowGtpv1TeidMetricTag + """Add method that creates and returns an instance of the PatternFlowGtpv1TeidMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1TeidMetricTag + """ + item = PatternFlowGtpv1TeidMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpv1TeidCounter(OpenApiObject): @@ -52394,7 +66723,7 @@ class PatternFlowGtpv1SquenceNumber(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGtpv1SquenceNumberMetricTagIter"}, "increment": {"type": "PatternFlowGtpv1SquenceNumberCounter"}, "decrement": {"type": "PatternFlowGtpv1SquenceNumberCounter"}, } # type: Dict[str, str] @@ -52414,14 +66743,11 @@ class PatternFlowGtpv1SquenceNumber(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGtpv1SquenceNumber, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -52431,7 +66757,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -52526,25 +66852,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpv1SquenceNumberMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1SquenceNumberMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGtpv1SquenceNumberMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGtpv1SquenceNumberMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowGtpv1SquenceNumberMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpv1SquenceNumberMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpv1SquenceNumberMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpv1SquenceNumberMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpv1SquenceNumberMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpv1SquenceNumberMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpv1SquenceNumberMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpv1SquenceNumberMetricTag): + raise Exception( + "Item is not an instance of PatternFlowGtpv1SquenceNumberMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowGtpv1SquenceNumberMetricTagIter + """Factory method that creates an instance of the PatternFlowGtpv1SquenceNumberMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1SquenceNumberMetricTagIter + """ + item = PatternFlowGtpv1SquenceNumberMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowGtpv1SquenceNumberMetricTag + """Add method that creates and returns an instance of the PatternFlowGtpv1SquenceNumberMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1SquenceNumberMetricTag + """ + item = PatternFlowGtpv1SquenceNumberMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpv1SquenceNumberCounter(OpenApiObject): @@ -52674,7 +67160,7 @@ class PatternFlowGtpv1NPduNumber(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGtpv1NPduNumberMetricTagIter"}, "increment": {"type": "PatternFlowGtpv1NPduNumberCounter"}, "decrement": {"type": "PatternFlowGtpv1NPduNumberCounter"}, } # type: Dict[str, str] @@ -52694,14 +67180,11 @@ class PatternFlowGtpv1NPduNumber(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGtpv1NPduNumber, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -52711,7 +67194,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -52806,25 +67289,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpv1NPduNumberMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1NPduNumberMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGtpv1NPduNumberMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGtpv1NPduNumberMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowGtpv1NPduNumberMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpv1NPduNumberMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpv1NPduNumberMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpv1NPduNumberMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpv1NPduNumberMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpv1NPduNumberMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpv1NPduNumberMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpv1NPduNumberMetricTag): + raise Exception( + "Item is not an instance of PatternFlowGtpv1NPduNumberMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowGtpv1NPduNumberMetricTagIter + """Factory method that creates an instance of the PatternFlowGtpv1NPduNumberMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1NPduNumberMetricTagIter + """ + item = PatternFlowGtpv1NPduNumberMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowGtpv1NPduNumberMetricTag + """Add method that creates and returns an instance of the PatternFlowGtpv1NPduNumberMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1NPduNumberMetricTag + """ + item = PatternFlowGtpv1NPduNumberMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpv1NPduNumberCounter(OpenApiObject): @@ -52954,7 +67597,7 @@ class PatternFlowGtpv1NextExtensionHeaderType(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGtpv1NextExtensionHeaderTypeMetricTagIter"}, "increment": {"type": "PatternFlowGtpv1NextExtensionHeaderTypeCounter"}, "decrement": {"type": "PatternFlowGtpv1NextExtensionHeaderTypeCounter"}, } # type: Dict[str, str] @@ -52974,14 +67617,11 @@ class PatternFlowGtpv1NextExtensionHeaderType(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGtpv1NextExtensionHeaderType, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -52991,7 +67631,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -53092,25 +67732,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpv1NextExtensionHeaderTypeMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1NextExtensionHeaderTypeMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGtpv1NextExtensionHeaderTypeMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGtpv1NextExtensionHeaderTypeMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowGtpv1NextExtensionHeaderTypeMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpv1NextExtensionHeaderTypeMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpv1NextExtensionHeaderTypeMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpv1NextExtensionHeaderTypeMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpv1NextExtensionHeaderTypeMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpv1NextExtensionHeaderTypeMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpv1NextExtensionHeaderTypeMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpv1NextExtensionHeaderTypeMetricTag): + raise Exception( + "Item is not an instance of PatternFlowGtpv1NextExtensionHeaderTypeMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowGtpv1NextExtensionHeaderTypeMetricTagIter + """Factory method that creates an instance of the PatternFlowGtpv1NextExtensionHeaderTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1NextExtensionHeaderTypeMetricTagIter + """ + item = PatternFlowGtpv1NextExtensionHeaderTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowGtpv1NextExtensionHeaderTypeMetricTag + """Add method that creates and returns an instance of the PatternFlowGtpv1NextExtensionHeaderTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv1NextExtensionHeaderTypeMetricTag + """ + item = PatternFlowGtpv1NextExtensionHeaderTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpv1NextExtensionHeaderTypeCounter(OpenApiObject): @@ -53297,7 +68097,7 @@ class PatternFlowGtpExtensionExtensionLength(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGtpExtensionExtensionLengthMetricTagIter"}, "increment": {"type": "PatternFlowGtpExtensionExtensionLengthCounter"}, "decrement": {"type": "PatternFlowGtpExtensionExtensionLengthCounter"}, } # type: Dict[str, str] @@ -53317,14 +68117,11 @@ class PatternFlowGtpExtensionExtensionLength(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGtpExtensionExtensionLength, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -53334,7 +68131,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -53435,25 +68232,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpExtensionExtensionLengthMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpExtensionExtensionLengthMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGtpExtensionExtensionLengthMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGtpExtensionExtensionLengthMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowGtpExtensionExtensionLengthMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpExtensionExtensionLengthMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpExtensionExtensionLengthMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpExtensionExtensionLengthMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpExtensionExtensionLengthMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpExtensionExtensionLengthMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpExtensionExtensionLengthMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpExtensionExtensionLengthMetricTag): + raise Exception( + "Item is not an instance of PatternFlowGtpExtensionExtensionLengthMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowGtpExtensionExtensionLengthMetricTagIter + """Factory method that creates an instance of the PatternFlowGtpExtensionExtensionLengthMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpExtensionExtensionLengthMetricTagIter + """ + item = PatternFlowGtpExtensionExtensionLengthMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowGtpExtensionExtensionLengthMetricTag + """Add method that creates and returns an instance of the PatternFlowGtpExtensionExtensionLengthMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpExtensionExtensionLengthMetricTag + """ + item = PatternFlowGtpExtensionExtensionLengthMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpExtensionExtensionLengthCounter(OpenApiObject): @@ -53585,7 +68542,7 @@ class PatternFlowGtpExtensionContents(OpenApiObject): "minimum": 0, "maximum": 281474976710655, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGtpExtensionContentsMetricTagIter"}, "increment": {"type": "PatternFlowGtpExtensionContentsCounter"}, "decrement": {"type": "PatternFlowGtpExtensionContentsCounter"}, } # type: Dict[str, str] @@ -53605,14 +68562,11 @@ class PatternFlowGtpExtensionContents(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGtpExtensionContents, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -53622,7 +68576,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -53717,25 +68671,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpExtensionContentsMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpExtensionContentsMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGtpExtensionContentsMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGtpExtensionContentsMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 47, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 48, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 48, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=48): + super(PatternFlowGtpExtensionContentsMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpExtensionContentsMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpExtensionContentsMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpExtensionContentsMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpExtensionContentsMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpExtensionContentsMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpExtensionContentsMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpExtensionContentsMetricTag): + raise Exception( + "Item is not an instance of PatternFlowGtpExtensionContentsMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=48): + # type: (str,int,int) -> PatternFlowGtpExtensionContentsMetricTagIter + """Factory method that creates an instance of the PatternFlowGtpExtensionContentsMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpExtensionContentsMetricTagIter + """ + item = PatternFlowGtpExtensionContentsMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=48): + # type: (str,int,int) -> PatternFlowGtpExtensionContentsMetricTag + """Add method that creates and returns an instance of the PatternFlowGtpExtensionContentsMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpExtensionContentsMetricTag + """ + item = PatternFlowGtpExtensionContentsMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpExtensionContentsCounter(OpenApiObject): @@ -53867,7 +68981,9 @@ class PatternFlowGtpExtensionNextExtensionHeader(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": { + "type": "PatternFlowGtpExtensionNextExtensionHeaderMetricTagIter" + }, "increment": {"type": "PatternFlowGtpExtensionNextExtensionHeaderCounter"}, "decrement": {"type": "PatternFlowGtpExtensionNextExtensionHeaderCounter"}, } # type: Dict[str, str] @@ -53887,14 +69003,11 @@ class PatternFlowGtpExtensionNextExtensionHeader(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGtpExtensionNextExtensionHeader, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -53904,7 +69017,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -54005,25 +69118,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpExtensionNextExtensionHeaderMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpExtensionNextExtensionHeaderMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGtpExtensionNextExtensionHeaderMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGtpExtensionNextExtensionHeaderMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowGtpExtensionNextExtensionHeaderMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpExtensionNextExtensionHeaderMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpExtensionNextExtensionHeaderMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpExtensionNextExtensionHeaderMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpExtensionNextExtensionHeaderMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpExtensionNextExtensionHeaderMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpExtensionNextExtensionHeaderMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpExtensionNextExtensionHeaderMetricTag): + raise Exception( + "Item is not an instance of PatternFlowGtpExtensionNextExtensionHeaderMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowGtpExtensionNextExtensionHeaderMetricTagIter + """Factory method that creates an instance of the PatternFlowGtpExtensionNextExtensionHeaderMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpExtensionNextExtensionHeaderMetricTagIter + """ + item = PatternFlowGtpExtensionNextExtensionHeaderMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowGtpExtensionNextExtensionHeaderMetricTag + """Add method that creates and returns an instance of the PatternFlowGtpExtensionNextExtensionHeaderMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpExtensionNextExtensionHeaderMetricTag + """ + item = PatternFlowGtpExtensionNextExtensionHeaderMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpExtensionNextExtensionHeaderCounter(OpenApiObject): @@ -54333,7 +69606,7 @@ class PatternFlowGtpv2Version(OpenApiObject): "minimum": 0, "maximum": 7, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGtpv2VersionMetricTagIter"}, "increment": {"type": "PatternFlowGtpv2VersionCounter"}, "decrement": {"type": "PatternFlowGtpv2VersionCounter"}, } # type: Dict[str, str] @@ -54353,14 +69626,11 @@ class PatternFlowGtpv2Version(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=2, values=[2], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=2, values=[2]): super(PatternFlowGtpv2Version, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -54370,7 +69640,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -54465,25 +69735,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpv2VersionMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2VersionMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGtpv2VersionMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGtpv2VersionMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 2, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 3, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 3, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=3): + super(PatternFlowGtpv2VersionMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpv2VersionMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpv2VersionMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpv2VersionMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpv2VersionMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpv2VersionMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpv2VersionMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpv2VersionMetricTag): + raise Exception( + "Item is not an instance of PatternFlowGtpv2VersionMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=3): + # type: (str,int,int) -> PatternFlowGtpv2VersionMetricTagIter + """Factory method that creates an instance of the PatternFlowGtpv2VersionMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2VersionMetricTagIter + """ + item = PatternFlowGtpv2VersionMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=3): + # type: (str,int,int) -> PatternFlowGtpv2VersionMetricTag + """Add method that creates and returns an instance of the PatternFlowGtpv2VersionMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2VersionMetricTag + """ + item = PatternFlowGtpv2VersionMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpv2VersionCounter(OpenApiObject): @@ -54613,7 +70043,7 @@ class PatternFlowGtpv2PiggybackingFlag(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGtpv2PiggybackingFlagMetricTagIter"}, "increment": {"type": "PatternFlowGtpv2PiggybackingFlagCounter"}, "decrement": {"type": "PatternFlowGtpv2PiggybackingFlagCounter"}, } # type: Dict[str, str] @@ -54633,14 +70063,11 @@ class PatternFlowGtpv2PiggybackingFlag(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGtpv2PiggybackingFlag, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -54650,7 +70077,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -54745,25 +70172,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpv2PiggybackingFlagMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2PiggybackingFlagMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGtpv2PiggybackingFlagMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGtpv2PiggybackingFlagMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowGtpv2PiggybackingFlagMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpv2PiggybackingFlagMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpv2PiggybackingFlagMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpv2PiggybackingFlagMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpv2PiggybackingFlagMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpv2PiggybackingFlagMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpv2PiggybackingFlagMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpv2PiggybackingFlagMetricTag): + raise Exception( + "Item is not an instance of PatternFlowGtpv2PiggybackingFlagMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowGtpv2PiggybackingFlagMetricTagIter + """Factory method that creates an instance of the PatternFlowGtpv2PiggybackingFlagMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2PiggybackingFlagMetricTagIter + """ + item = PatternFlowGtpv2PiggybackingFlagMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowGtpv2PiggybackingFlagMetricTag + """Add method that creates and returns an instance of the PatternFlowGtpv2PiggybackingFlagMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2PiggybackingFlagMetricTag + """ + item = PatternFlowGtpv2PiggybackingFlagMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpv2PiggybackingFlagCounter(OpenApiObject): @@ -54893,7 +70480,7 @@ class PatternFlowGtpv2TeidFlag(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGtpv2TeidFlagMetricTagIter"}, "increment": {"type": "PatternFlowGtpv2TeidFlagCounter"}, "decrement": {"type": "PatternFlowGtpv2TeidFlagCounter"}, } # type: Dict[str, str] @@ -54913,14 +70500,11 @@ class PatternFlowGtpv2TeidFlag(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGtpv2TeidFlag, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -54930,7 +70514,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -55025,25 +70609,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpv2TeidFlagMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2TeidFlagMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGtpv2TeidFlagMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGtpv2TeidFlagMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowGtpv2TeidFlagMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpv2TeidFlagMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpv2TeidFlagMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpv2TeidFlagMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpv2TeidFlagMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpv2TeidFlagMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpv2TeidFlagMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpv2TeidFlagMetricTag): + raise Exception( + "Item is not an instance of PatternFlowGtpv2TeidFlagMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowGtpv2TeidFlagMetricTagIter + """Factory method that creates an instance of the PatternFlowGtpv2TeidFlagMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2TeidFlagMetricTagIter + """ + item = PatternFlowGtpv2TeidFlagMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowGtpv2TeidFlagMetricTag + """Add method that creates and returns an instance of the PatternFlowGtpv2TeidFlagMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2TeidFlagMetricTag + """ + item = PatternFlowGtpv2TeidFlagMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpv2TeidFlagCounter(OpenApiObject): @@ -55173,7 +70917,7 @@ class PatternFlowGtpv2Spare1(OpenApiObject): "minimum": 0, "maximum": 7, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGtpv2Spare1MetricTagIter"}, "increment": {"type": "PatternFlowGtpv2Spare1Counter"}, "decrement": {"type": "PatternFlowGtpv2Spare1Counter"}, } # type: Dict[str, str] @@ -55193,14 +70937,11 @@ class PatternFlowGtpv2Spare1(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGtpv2Spare1, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -55210,7 +70951,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -55305,25 +71046,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpv2Spare1MetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2Spare1MetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGtpv2Spare1MetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGtpv2Spare1MetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 2, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 3, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 3, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=3): + super(PatternFlowGtpv2Spare1MetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpv2Spare1MetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpv2Spare1MetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpv2Spare1MetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpv2Spare1MetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpv2Spare1MetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpv2Spare1MetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpv2Spare1MetricTag): + raise Exception( + "Item is not an instance of PatternFlowGtpv2Spare1MetricTag" + ) + + def metrictag(self, name=None, offset=0, length=3): + # type: (str,int,int) -> PatternFlowGtpv2Spare1MetricTagIter + """Factory method that creates an instance of the PatternFlowGtpv2Spare1MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2Spare1MetricTagIter + """ + item = PatternFlowGtpv2Spare1MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=3): + # type: (str,int,int) -> PatternFlowGtpv2Spare1MetricTag + """Add method that creates and returns an instance of the PatternFlowGtpv2Spare1MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2Spare1MetricTag + """ + item = PatternFlowGtpv2Spare1MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpv2Spare1Counter(OpenApiObject): @@ -55453,7 +71354,7 @@ class PatternFlowGtpv2MessageType(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGtpv2MessageTypeMetricTagIter"}, "increment": {"type": "PatternFlowGtpv2MessageTypeCounter"}, "decrement": {"type": "PatternFlowGtpv2MessageTypeCounter"}, } # type: Dict[str, str] @@ -55473,14 +71374,11 @@ class PatternFlowGtpv2MessageType(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGtpv2MessageType, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -55490,7 +71388,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -55585,25 +71483,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpv2MessageTypeMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2MessageTypeMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGtpv2MessageTypeMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGtpv2MessageTypeMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowGtpv2MessageTypeMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpv2MessageTypeMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpv2MessageTypeMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpv2MessageTypeMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpv2MessageTypeMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpv2MessageTypeMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpv2MessageTypeMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpv2MessageTypeMetricTag): + raise Exception( + "Item is not an instance of PatternFlowGtpv2MessageTypeMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowGtpv2MessageTypeMetricTagIter + """Factory method that creates an instance of the PatternFlowGtpv2MessageTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2MessageTypeMetricTagIter + """ + item = PatternFlowGtpv2MessageTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowGtpv2MessageTypeMetricTag + """Add method that creates and returns an instance of the PatternFlowGtpv2MessageTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2MessageTypeMetricTag + """ + item = PatternFlowGtpv2MessageTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpv2MessageTypeCounter(OpenApiObject): @@ -55733,7 +71791,7 @@ class PatternFlowGtpv2MessageLength(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGtpv2MessageLengthMetricTagIter"}, "increment": {"type": "PatternFlowGtpv2MessageLengthCounter"}, "decrement": {"type": "PatternFlowGtpv2MessageLengthCounter"}, } # type: Dict[str, str] @@ -55753,14 +71811,11 @@ class PatternFlowGtpv2MessageLength(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGtpv2MessageLength, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -55770,7 +71825,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -55865,25 +71920,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpv2MessageLengthMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2MessageLengthMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGtpv2MessageLengthMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGtpv2MessageLengthMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowGtpv2MessageLengthMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpv2MessageLengthMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpv2MessageLengthMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpv2MessageLengthMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpv2MessageLengthMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpv2MessageLengthMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpv2MessageLengthMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpv2MessageLengthMetricTag): + raise Exception( + "Item is not an instance of PatternFlowGtpv2MessageLengthMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowGtpv2MessageLengthMetricTagIter + """Factory method that creates an instance of the PatternFlowGtpv2MessageLengthMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2MessageLengthMetricTagIter + """ + item = PatternFlowGtpv2MessageLengthMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowGtpv2MessageLengthMetricTag + """Add method that creates and returns an instance of the PatternFlowGtpv2MessageLengthMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2MessageLengthMetricTag + """ + item = PatternFlowGtpv2MessageLengthMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpv2MessageLengthCounter(OpenApiObject): @@ -56015,7 +72230,7 @@ class PatternFlowGtpv2Teid(OpenApiObject): "minimum": 0, "maximum": 4294967295, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGtpv2TeidMetricTagIter"}, "increment": {"type": "PatternFlowGtpv2TeidCounter"}, "decrement": {"type": "PatternFlowGtpv2TeidCounter"}, } # type: Dict[str, str] @@ -56035,14 +72250,11 @@ class PatternFlowGtpv2Teid(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGtpv2Teid, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -56052,7 +72264,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -56147,25 +72359,180 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpv2TeidMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2TeidMetricTagIter + """ + return self._get_property( + "metric_tags", PatternFlowGtpv2TeidMetricTagIter, self._parent, self._choice + ) + + +class PatternFlowGtpv2TeidMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 31, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 32, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 32, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=32): + super(PatternFlowGtpv2TeidMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpv2TeidMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpv2TeidMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpv2TeidMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpv2TeidMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpv2TeidMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpv2TeidMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpv2TeidMetricTag): + raise Exception("Item is not an instance of PatternFlowGtpv2TeidMetricTag") + + def metrictag(self, name=None, offset=0, length=32): + # type: (str,int,int) -> PatternFlowGtpv2TeidMetricTagIter + """Factory method that creates an instance of the PatternFlowGtpv2TeidMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2TeidMetricTagIter + """ + item = PatternFlowGtpv2TeidMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=32): + # type: (str,int,int) -> PatternFlowGtpv2TeidMetricTag + """Add method that creates and returns an instance of the PatternFlowGtpv2TeidMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2TeidMetricTag + """ + item = PatternFlowGtpv2TeidMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpv2TeidCounter(OpenApiObject): @@ -56297,7 +72664,7 @@ class PatternFlowGtpv2SequenceNumber(OpenApiObject): "minimum": 0, "maximum": 16777215, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGtpv2SequenceNumberMetricTagIter"}, "increment": {"type": "PatternFlowGtpv2SequenceNumberCounter"}, "decrement": {"type": "PatternFlowGtpv2SequenceNumberCounter"}, } # type: Dict[str, str] @@ -56317,14 +72684,11 @@ class PatternFlowGtpv2SequenceNumber(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGtpv2SequenceNumber, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -56334,7 +72698,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -56429,25 +72793,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpv2SequenceNumberMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2SequenceNumberMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGtpv2SequenceNumberMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGtpv2SequenceNumberMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 23, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 24, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 24, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=24): + super(PatternFlowGtpv2SequenceNumberMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpv2SequenceNumberMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpv2SequenceNumberMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpv2SequenceNumberMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpv2SequenceNumberMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpv2SequenceNumberMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpv2SequenceNumberMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpv2SequenceNumberMetricTag): + raise Exception( + "Item is not an instance of PatternFlowGtpv2SequenceNumberMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=24): + # type: (str,int,int) -> PatternFlowGtpv2SequenceNumberMetricTagIter + """Factory method that creates an instance of the PatternFlowGtpv2SequenceNumberMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2SequenceNumberMetricTagIter + """ + item = PatternFlowGtpv2SequenceNumberMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=24): + # type: (str,int,int) -> PatternFlowGtpv2SequenceNumberMetricTag + """Add method that creates and returns an instance of the PatternFlowGtpv2SequenceNumberMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2SequenceNumberMetricTag + """ + item = PatternFlowGtpv2SequenceNumberMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpv2SequenceNumberCounter(OpenApiObject): @@ -56577,7 +73101,7 @@ class PatternFlowGtpv2Spare2(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowGtpv2Spare2MetricTagIter"}, "increment": {"type": "PatternFlowGtpv2Spare2Counter"}, "decrement": {"type": "PatternFlowGtpv2Spare2Counter"}, } # type: Dict[str, str] @@ -56597,14 +73121,11 @@ class PatternFlowGtpv2Spare2(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowGtpv2Spare2, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -56614,7 +73135,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -56709,25 +73230,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowGtpv2Spare2MetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2Spare2MetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowGtpv2Spare2MetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowGtpv2Spare2MetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowGtpv2Spare2MetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowGtpv2Spare2MetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowGtpv2Spare2MetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowGtpv2Spare2MetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowGtpv2Spare2MetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowGtpv2Spare2MetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowGtpv2Spare2MetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowGtpv2Spare2MetricTag): + raise Exception( + "Item is not an instance of PatternFlowGtpv2Spare2MetricTag" + ) + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowGtpv2Spare2MetricTagIter + """Factory method that creates an instance of the PatternFlowGtpv2Spare2MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2Spare2MetricTagIter + """ + item = PatternFlowGtpv2Spare2MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowGtpv2Spare2MetricTag + """Add method that creates and returns an instance of the PatternFlowGtpv2Spare2MetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowGtpv2Spare2MetricTag + """ + item = PatternFlowGtpv2Spare2MetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowGtpv2Spare2Counter(OpenApiObject): @@ -56990,7 +73671,7 @@ class PatternFlowArpHardwareType(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowArpHardwareTypeMetricTagIter"}, "increment": {"type": "PatternFlowArpHardwareTypeCounter"}, "decrement": {"type": "PatternFlowArpHardwareTypeCounter"}, } # type: Dict[str, str] @@ -57012,14 +73693,11 @@ class PatternFlowArpHardwareType(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=1, values=[1], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=1, values=[1]): super(PatternFlowArpHardwareType, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -57029,7 +73707,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -57124,25 +73802,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowArpHardwareTypeMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpHardwareTypeMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowArpHardwareTypeMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowArpHardwareTypeMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowArpHardwareTypeMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowArpHardwareTypeMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowArpHardwareTypeMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowArpHardwareTypeMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowArpHardwareTypeMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowArpHardwareTypeMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowArpHardwareTypeMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowArpHardwareTypeMetricTag): + raise Exception( + "Item is not an instance of PatternFlowArpHardwareTypeMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowArpHardwareTypeMetricTagIter + """Factory method that creates an instance of the PatternFlowArpHardwareTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpHardwareTypeMetricTagIter + """ + item = PatternFlowArpHardwareTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowArpHardwareTypeMetricTag + """Add method that creates and returns an instance of the PatternFlowArpHardwareTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpHardwareTypeMetricTag + """ + item = PatternFlowArpHardwareTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowArpHardwareTypeCounter(OpenApiObject): @@ -57274,7 +74112,7 @@ class PatternFlowArpProtocolType(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowArpProtocolTypeMetricTagIter"}, "increment": {"type": "PatternFlowArpProtocolTypeCounter"}, "decrement": {"type": "PatternFlowArpProtocolTypeCounter"}, } # type: Dict[str, str] @@ -57297,14 +74135,11 @@ class PatternFlowArpProtocolType(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=2048, values=[2048], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=2048, values=[2048]): super(PatternFlowArpProtocolType, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -57314,7 +74149,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -57409,25 +74244,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowArpProtocolTypeMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpProtocolTypeMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowArpProtocolTypeMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowArpProtocolTypeMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowArpProtocolTypeMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowArpProtocolTypeMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowArpProtocolTypeMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowArpProtocolTypeMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowArpProtocolTypeMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowArpProtocolTypeMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowArpProtocolTypeMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowArpProtocolTypeMetricTag): + raise Exception( + "Item is not an instance of PatternFlowArpProtocolTypeMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowArpProtocolTypeMetricTagIter + """Factory method that creates an instance of the PatternFlowArpProtocolTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpProtocolTypeMetricTagIter + """ + item = PatternFlowArpProtocolTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowArpProtocolTypeMetricTag + """Add method that creates and returns an instance of the PatternFlowArpProtocolTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpProtocolTypeMetricTag + """ + item = PatternFlowArpProtocolTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowArpProtocolTypeCounter(OpenApiObject): @@ -57560,7 +74555,7 @@ class PatternFlowArpHardwareLength(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowArpHardwareLengthMetricTagIter"}, "increment": {"type": "PatternFlowArpHardwareLengthCounter"}, "decrement": {"type": "PatternFlowArpHardwareLengthCounter"}, } # type: Dict[str, str] @@ -57580,14 +74575,11 @@ class PatternFlowArpHardwareLength(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=6, values=[6], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=6, values=[6]): super(PatternFlowArpHardwareLength, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -57597,7 +74589,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -57692,25 +74684,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowArpHardwareLengthMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpHardwareLengthMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowArpHardwareLengthMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowArpHardwareLengthMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowArpHardwareLengthMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowArpHardwareLengthMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowArpHardwareLengthMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowArpHardwareLengthMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowArpHardwareLengthMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowArpHardwareLengthMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowArpHardwareLengthMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowArpHardwareLengthMetricTag): + raise Exception( + "Item is not an instance of PatternFlowArpHardwareLengthMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowArpHardwareLengthMetricTagIter + """Factory method that creates an instance of the PatternFlowArpHardwareLengthMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpHardwareLengthMetricTagIter + """ + item = PatternFlowArpHardwareLengthMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowArpHardwareLengthMetricTag + """Add method that creates and returns an instance of the PatternFlowArpHardwareLengthMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpHardwareLengthMetricTag + """ + item = PatternFlowArpHardwareLengthMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowArpHardwareLengthCounter(OpenApiObject): @@ -57840,7 +74992,7 @@ class PatternFlowArpProtocolLength(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowArpProtocolLengthMetricTagIter"}, "increment": {"type": "PatternFlowArpProtocolLengthCounter"}, "decrement": {"type": "PatternFlowArpProtocolLengthCounter"}, } # type: Dict[str, str] @@ -57860,14 +75012,11 @@ class PatternFlowArpProtocolLength(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=4, values=[4], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=4, values=[4]): super(PatternFlowArpProtocolLength, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -57877,7 +75026,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -57972,25 +75121,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowArpProtocolLengthMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpProtocolLengthMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowArpProtocolLengthMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowArpProtocolLengthMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowArpProtocolLengthMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowArpProtocolLengthMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowArpProtocolLengthMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowArpProtocolLengthMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowArpProtocolLengthMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowArpProtocolLengthMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowArpProtocolLengthMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowArpProtocolLengthMetricTag): + raise Exception( + "Item is not an instance of PatternFlowArpProtocolLengthMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowArpProtocolLengthMetricTagIter + """Factory method that creates an instance of the PatternFlowArpProtocolLengthMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpProtocolLengthMetricTagIter + """ + item = PatternFlowArpProtocolLengthMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowArpProtocolLengthMetricTag + """Add method that creates and returns an instance of the PatternFlowArpProtocolLengthMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpProtocolLengthMetricTag + """ + item = PatternFlowArpProtocolLengthMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowArpProtocolLengthCounter(OpenApiObject): @@ -58120,7 +75429,7 @@ class PatternFlowArpOperation(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowArpOperationMetricTagIter"}, "increment": {"type": "PatternFlowArpOperationCounter"}, "decrement": {"type": "PatternFlowArpOperationCounter"}, } # type: Dict[str, str] @@ -58143,14 +75452,11 @@ class PatternFlowArpOperation(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=1, values=[1], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=1, values=[1]): super(PatternFlowArpOperation, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -58160,7 +75466,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -58255,25 +75561,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowArpOperationMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpOperationMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowArpOperationMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowArpOperationMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowArpOperationMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowArpOperationMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowArpOperationMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowArpOperationMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowArpOperationMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowArpOperationMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowArpOperationMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowArpOperationMetricTag): + raise Exception( + "Item is not an instance of PatternFlowArpOperationMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowArpOperationMetricTagIter + """Factory method that creates an instance of the PatternFlowArpOperationMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpOperationMetricTagIter + """ + item = PatternFlowArpOperationMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowArpOperationMetricTag + """Add method that creates and returns an instance of the PatternFlowArpOperationMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpOperationMetricTag + """ + item = PatternFlowArpOperationMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowArpOperationCounter(OpenApiObject): @@ -58404,7 +75870,7 @@ class PatternFlowArpSenderHardwareAddr(OpenApiObject): "format": "mac", "itemtype": str, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowArpSenderHardwareAddrMetricTagIter"}, "increment": {"type": "PatternFlowArpSenderHardwareAddrCounter"}, "decrement": {"type": "PatternFlowArpSenderHardwareAddrCounter"}, } # type: Dict[str, str] @@ -58430,13 +75896,11 @@ def __init__( choice=None, value="00:00:00:00:00:00", values=["00:00:00:00:00:00"], - metric_group=None, ): super(PatternFlowArpSenderHardwareAddr, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -58446,7 +75910,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -58541,25 +76005,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowArpSenderHardwareAddrMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpSenderHardwareAddrMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowArpSenderHardwareAddrMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowArpSenderHardwareAddrMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 47, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 48, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 48, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=48): + super(PatternFlowArpSenderHardwareAddrMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowArpSenderHardwareAddrMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowArpSenderHardwareAddrMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowArpSenderHardwareAddrMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowArpSenderHardwareAddrMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowArpSenderHardwareAddrMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowArpSenderHardwareAddrMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowArpSenderHardwareAddrMetricTag): + raise Exception( + "Item is not an instance of PatternFlowArpSenderHardwareAddrMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=48): + # type: (str,int,int) -> PatternFlowArpSenderHardwareAddrMetricTagIter + """Factory method that creates an instance of the PatternFlowArpSenderHardwareAddrMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpSenderHardwareAddrMetricTagIter + """ + item = PatternFlowArpSenderHardwareAddrMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=48): + # type: (str,int,int) -> PatternFlowArpSenderHardwareAddrMetricTag + """Add method that creates and returns an instance of the PatternFlowArpSenderHardwareAddrMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpSenderHardwareAddrMetricTag + """ + item = PatternFlowArpSenderHardwareAddrMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowArpSenderHardwareAddrCounter(OpenApiObject): @@ -58687,7 +76311,7 @@ class PatternFlowArpSenderProtocolAddr(OpenApiObject): "format": "ipv4", "itemtype": str, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowArpSenderProtocolAddrMetricTagIter"}, "increment": {"type": "PatternFlowArpSenderProtocolAddrCounter"}, "decrement": {"type": "PatternFlowArpSenderProtocolAddrCounter"}, } # type: Dict[str, str] @@ -58707,19 +76331,11 @@ class PatternFlowArpSenderProtocolAddr(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, - parent=None, - choice=None, - value="0.0.0.0", - values=["0.0.0.0"], - metric_group=None, - ): + def __init__(self, parent=None, choice=None, value="0.0.0.0", values=["0.0.0.0"]): super(PatternFlowArpSenderProtocolAddr, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -58729,7 +76345,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -58824,25 +76440,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowArpSenderProtocolAddrMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpSenderProtocolAddrMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowArpSenderProtocolAddrMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowArpSenderProtocolAddrMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 31, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 32, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 32, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=32): + super(PatternFlowArpSenderProtocolAddrMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowArpSenderProtocolAddrMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowArpSenderProtocolAddrMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowArpSenderProtocolAddrMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowArpSenderProtocolAddrMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowArpSenderProtocolAddrMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowArpSenderProtocolAddrMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowArpSenderProtocolAddrMetricTag): + raise Exception( + "Item is not an instance of PatternFlowArpSenderProtocolAddrMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=32): + # type: (str,int,int) -> PatternFlowArpSenderProtocolAddrMetricTagIter + """Factory method that creates an instance of the PatternFlowArpSenderProtocolAddrMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpSenderProtocolAddrMetricTagIter + """ + item = PatternFlowArpSenderProtocolAddrMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=32): + # type: (str,int,int) -> PatternFlowArpSenderProtocolAddrMetricTag + """Add method that creates and returns an instance of the PatternFlowArpSenderProtocolAddrMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpSenderProtocolAddrMetricTag + """ + item = PatternFlowArpSenderProtocolAddrMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowArpSenderProtocolAddrCounter(OpenApiObject): @@ -58968,7 +76744,7 @@ class PatternFlowArpTargetHardwareAddr(OpenApiObject): "format": "mac", "itemtype": str, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowArpTargetHardwareAddrMetricTagIter"}, "increment": {"type": "PatternFlowArpTargetHardwareAddrCounter"}, "decrement": {"type": "PatternFlowArpTargetHardwareAddrCounter"}, } # type: Dict[str, str] @@ -58994,13 +76770,11 @@ def __init__( choice=None, value="00:00:00:00:00:00", values=["00:00:00:00:00:00"], - metric_group=None, ): super(PatternFlowArpTargetHardwareAddr, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -59010,7 +76784,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -59105,25 +76879,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowArpTargetHardwareAddrMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpTargetHardwareAddrMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowArpTargetHardwareAddrMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowArpTargetHardwareAddrMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 47, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 48, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 48, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=48): + super(PatternFlowArpTargetHardwareAddrMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowArpTargetHardwareAddrMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowArpTargetHardwareAddrMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowArpTargetHardwareAddrMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowArpTargetHardwareAddrMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowArpTargetHardwareAddrMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowArpTargetHardwareAddrMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowArpTargetHardwareAddrMetricTag): + raise Exception( + "Item is not an instance of PatternFlowArpTargetHardwareAddrMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=48): + # type: (str,int,int) -> PatternFlowArpTargetHardwareAddrMetricTagIter + """Factory method that creates an instance of the PatternFlowArpTargetHardwareAddrMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpTargetHardwareAddrMetricTagIter + """ + item = PatternFlowArpTargetHardwareAddrMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=48): + # type: (str,int,int) -> PatternFlowArpTargetHardwareAddrMetricTag + """Add method that creates and returns an instance of the PatternFlowArpTargetHardwareAddrMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpTargetHardwareAddrMetricTag + """ + item = PatternFlowArpTargetHardwareAddrMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowArpTargetHardwareAddrCounter(OpenApiObject): @@ -59251,7 +77185,7 @@ class PatternFlowArpTargetProtocolAddr(OpenApiObject): "format": "ipv4", "itemtype": str, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowArpTargetProtocolAddrMetricTagIter"}, "increment": {"type": "PatternFlowArpTargetProtocolAddrCounter"}, "decrement": {"type": "PatternFlowArpTargetProtocolAddrCounter"}, } # type: Dict[str, str] @@ -59271,19 +77205,11 @@ class PatternFlowArpTargetProtocolAddr(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, - parent=None, - choice=None, - value="0.0.0.0", - values=["0.0.0.0"], - metric_group=None, - ): + def __init__(self, parent=None, choice=None, value="0.0.0.0", values=["0.0.0.0"]): super(PatternFlowArpTargetProtocolAddr, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -59293,7 +77219,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -59388,25 +77314,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowArpTargetProtocolAddrMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpTargetProtocolAddrMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowArpTargetProtocolAddrMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowArpTargetProtocolAddrMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 31, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 32, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 32, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=32): + super(PatternFlowArpTargetProtocolAddrMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowArpTargetProtocolAddrMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowArpTargetProtocolAddrMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowArpTargetProtocolAddrMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowArpTargetProtocolAddrMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowArpTargetProtocolAddrMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowArpTargetProtocolAddrMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowArpTargetProtocolAddrMetricTag): + raise Exception( + "Item is not an instance of PatternFlowArpTargetProtocolAddrMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=32): + # type: (str,int,int) -> PatternFlowArpTargetProtocolAddrMetricTagIter + """Factory method that creates an instance of the PatternFlowArpTargetProtocolAddrMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpTargetProtocolAddrMetricTagIter + """ + item = PatternFlowArpTargetProtocolAddrMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=32): + # type: (str,int,int) -> PatternFlowArpTargetProtocolAddrMetricTag + """Add method that creates and returns an instance of the PatternFlowArpTargetProtocolAddrMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowArpTargetProtocolAddrMetricTag + """ + item = PatternFlowArpTargetProtocolAddrMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowArpTargetProtocolAddrCounter(OpenApiObject): @@ -59679,7 +77765,7 @@ class PatternFlowIcmpEchoType(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIcmpEchoTypeMetricTagIter"}, "increment": {"type": "PatternFlowIcmpEchoTypeCounter"}, "decrement": {"type": "PatternFlowIcmpEchoTypeCounter"}, } # type: Dict[str, str] @@ -59702,14 +77788,11 @@ class PatternFlowIcmpEchoType(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=8, values=[8], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=8, values=[8]): super(PatternFlowIcmpEchoType, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -59719,7 +77802,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -59814,25 +77897,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIcmpEchoTypeMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpEchoTypeMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIcmpEchoTypeMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIcmpEchoTypeMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowIcmpEchoTypeMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIcmpEchoTypeMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIcmpEchoTypeMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIcmpEchoTypeMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIcmpEchoTypeMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIcmpEchoTypeMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIcmpEchoTypeMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIcmpEchoTypeMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIcmpEchoTypeMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowIcmpEchoTypeMetricTagIter + """Factory method that creates an instance of the PatternFlowIcmpEchoTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpEchoTypeMetricTagIter + """ + item = PatternFlowIcmpEchoTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowIcmpEchoTypeMetricTag + """Add method that creates and returns an instance of the PatternFlowIcmpEchoTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpEchoTypeMetricTag + """ + item = PatternFlowIcmpEchoTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIcmpEchoTypeCounter(OpenApiObject): @@ -59965,7 +78208,7 @@ class PatternFlowIcmpEchoCode(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIcmpEchoCodeMetricTagIter"}, "increment": {"type": "PatternFlowIcmpEchoCodeCounter"}, "decrement": {"type": "PatternFlowIcmpEchoCodeCounter"}, } # type: Dict[str, str] @@ -59985,14 +78228,11 @@ class PatternFlowIcmpEchoCode(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowIcmpEchoCode, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -60002,7 +78242,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -60097,25 +78337,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIcmpEchoCodeMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpEchoCodeMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIcmpEchoCodeMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIcmpEchoCodeMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowIcmpEchoCodeMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIcmpEchoCodeMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIcmpEchoCodeMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIcmpEchoCodeMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIcmpEchoCodeMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIcmpEchoCodeMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIcmpEchoCodeMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIcmpEchoCodeMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIcmpEchoCodeMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowIcmpEchoCodeMetricTagIter + """Factory method that creates an instance of the PatternFlowIcmpEchoCodeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpEchoCodeMetricTagIter + """ + item = PatternFlowIcmpEchoCodeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowIcmpEchoCodeMetricTag + """Add method that creates and returns an instance of the PatternFlowIcmpEchoCodeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpEchoCodeMetricTag + """ + item = PatternFlowIcmpEchoCodeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIcmpEchoCodeCounter(OpenApiObject): @@ -60368,7 +78768,7 @@ class PatternFlowIcmpEchoIdentifier(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIcmpEchoIdentifierMetricTagIter"}, "increment": {"type": "PatternFlowIcmpEchoIdentifierCounter"}, "decrement": {"type": "PatternFlowIcmpEchoIdentifierCounter"}, } # type: Dict[str, str] @@ -60388,14 +78788,11 @@ class PatternFlowIcmpEchoIdentifier(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowIcmpEchoIdentifier, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -60405,7 +78802,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -60500,25 +78897,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIcmpEchoIdentifierMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpEchoIdentifierMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIcmpEchoIdentifierMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIcmpEchoIdentifierMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowIcmpEchoIdentifierMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIcmpEchoIdentifierMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIcmpEchoIdentifierMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIcmpEchoIdentifierMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIcmpEchoIdentifierMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIcmpEchoIdentifierMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIcmpEchoIdentifierMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIcmpEchoIdentifierMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIcmpEchoIdentifierMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowIcmpEchoIdentifierMetricTagIter + """Factory method that creates an instance of the PatternFlowIcmpEchoIdentifierMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpEchoIdentifierMetricTagIter + """ + item = PatternFlowIcmpEchoIdentifierMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowIcmpEchoIdentifierMetricTag + """Add method that creates and returns an instance of the PatternFlowIcmpEchoIdentifierMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpEchoIdentifierMetricTag + """ + item = PatternFlowIcmpEchoIdentifierMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIcmpEchoIdentifierCounter(OpenApiObject): @@ -60648,7 +79205,7 @@ class PatternFlowIcmpEchoSequenceNumber(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIcmpEchoSequenceNumberMetricTagIter"}, "increment": {"type": "PatternFlowIcmpEchoSequenceNumberCounter"}, "decrement": {"type": "PatternFlowIcmpEchoSequenceNumberCounter"}, } # type: Dict[str, str] @@ -60668,14 +79225,11 @@ class PatternFlowIcmpEchoSequenceNumber(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowIcmpEchoSequenceNumber, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -60685,7 +79239,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -60780,25 +79334,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIcmpEchoSequenceNumberMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpEchoSequenceNumberMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIcmpEchoSequenceNumberMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIcmpEchoSequenceNumberMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowIcmpEchoSequenceNumberMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIcmpEchoSequenceNumberMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIcmpEchoSequenceNumberMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIcmpEchoSequenceNumberMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIcmpEchoSequenceNumberMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIcmpEchoSequenceNumberMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIcmpEchoSequenceNumberMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIcmpEchoSequenceNumberMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIcmpEchoSequenceNumberMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowIcmpEchoSequenceNumberMetricTagIter + """Factory method that creates an instance of the PatternFlowIcmpEchoSequenceNumberMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpEchoSequenceNumberMetricTagIter + """ + item = PatternFlowIcmpEchoSequenceNumberMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowIcmpEchoSequenceNumberMetricTag + """Add method that creates and returns an instance of the PatternFlowIcmpEchoSequenceNumberMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpEchoSequenceNumberMetricTag + """ + item = PatternFlowIcmpEchoSequenceNumberMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIcmpEchoSequenceNumberCounter(OpenApiObject): @@ -61075,7 +79789,7 @@ class PatternFlowIcmpv6EchoType(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIcmpv6EchoTypeMetricTagIter"}, "increment": {"type": "PatternFlowIcmpv6EchoTypeCounter"}, "decrement": {"type": "PatternFlowIcmpv6EchoTypeCounter"}, } # type: Dict[str, str] @@ -61098,14 +79812,11 @@ class PatternFlowIcmpv6EchoType(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=128, values=[128], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=128, values=[128]): super(PatternFlowIcmpv6EchoType, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -61115,7 +79826,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -61210,25 +79921,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIcmpv6EchoTypeMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpv6EchoTypeMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIcmpv6EchoTypeMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIcmpv6EchoTypeMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowIcmpv6EchoTypeMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIcmpv6EchoTypeMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIcmpv6EchoTypeMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIcmpv6EchoTypeMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIcmpv6EchoTypeMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIcmpv6EchoTypeMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIcmpv6EchoTypeMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIcmpv6EchoTypeMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIcmpv6EchoTypeMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowIcmpv6EchoTypeMetricTagIter + """Factory method that creates an instance of the PatternFlowIcmpv6EchoTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpv6EchoTypeMetricTagIter + """ + item = PatternFlowIcmpv6EchoTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowIcmpv6EchoTypeMetricTag + """Add method that creates and returns an instance of the PatternFlowIcmpv6EchoTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpv6EchoTypeMetricTag + """ + item = PatternFlowIcmpv6EchoTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIcmpv6EchoTypeCounter(OpenApiObject): @@ -61361,7 +80232,7 @@ class PatternFlowIcmpv6EchoCode(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIcmpv6EchoCodeMetricTagIter"}, "increment": {"type": "PatternFlowIcmpv6EchoCodeCounter"}, "decrement": {"type": "PatternFlowIcmpv6EchoCodeCounter"}, } # type: Dict[str, str] @@ -61381,14 +80252,11 @@ class PatternFlowIcmpv6EchoCode(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowIcmpv6EchoCode, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -61398,7 +80266,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -61493,25 +80361,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIcmpv6EchoCodeMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpv6EchoCodeMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIcmpv6EchoCodeMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIcmpv6EchoCodeMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowIcmpv6EchoCodeMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIcmpv6EchoCodeMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIcmpv6EchoCodeMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIcmpv6EchoCodeMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIcmpv6EchoCodeMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIcmpv6EchoCodeMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIcmpv6EchoCodeMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIcmpv6EchoCodeMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIcmpv6EchoCodeMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowIcmpv6EchoCodeMetricTagIter + """Factory method that creates an instance of the PatternFlowIcmpv6EchoCodeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpv6EchoCodeMetricTagIter + """ + item = PatternFlowIcmpv6EchoCodeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowIcmpv6EchoCodeMetricTag + """Add method that creates and returns an instance of the PatternFlowIcmpv6EchoCodeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpv6EchoCodeMetricTag + """ + item = PatternFlowIcmpv6EchoCodeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIcmpv6EchoCodeCounter(OpenApiObject): @@ -61641,7 +80669,7 @@ class PatternFlowIcmpv6EchoIdentifier(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIcmpv6EchoIdentifierMetricTagIter"}, "increment": {"type": "PatternFlowIcmpv6EchoIdentifierCounter"}, "decrement": {"type": "PatternFlowIcmpv6EchoIdentifierCounter"}, } # type: Dict[str, str] @@ -61661,14 +80689,11 @@ class PatternFlowIcmpv6EchoIdentifier(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowIcmpv6EchoIdentifier, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -61678,7 +80703,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -61773,25 +80798,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIcmpv6EchoIdentifierMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpv6EchoIdentifierMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIcmpv6EchoIdentifierMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIcmpv6EchoIdentifierMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowIcmpv6EchoIdentifierMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIcmpv6EchoIdentifierMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIcmpv6EchoIdentifierMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIcmpv6EchoIdentifierMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIcmpv6EchoIdentifierMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIcmpv6EchoIdentifierMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIcmpv6EchoIdentifierMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIcmpv6EchoIdentifierMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIcmpv6EchoIdentifierMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowIcmpv6EchoIdentifierMetricTagIter + """Factory method that creates an instance of the PatternFlowIcmpv6EchoIdentifierMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpv6EchoIdentifierMetricTagIter + """ + item = PatternFlowIcmpv6EchoIdentifierMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowIcmpv6EchoIdentifierMetricTag + """Add method that creates and returns an instance of the PatternFlowIcmpv6EchoIdentifierMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpv6EchoIdentifierMetricTag + """ + item = PatternFlowIcmpv6EchoIdentifierMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIcmpv6EchoIdentifierCounter(OpenApiObject): @@ -61921,7 +81106,7 @@ class PatternFlowIcmpv6EchoSequenceNumber(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIcmpv6EchoSequenceNumberMetricTagIter"}, "increment": {"type": "PatternFlowIcmpv6EchoSequenceNumberCounter"}, "decrement": {"type": "PatternFlowIcmpv6EchoSequenceNumberCounter"}, } # type: Dict[str, str] @@ -61941,14 +81126,11 @@ class PatternFlowIcmpv6EchoSequenceNumber(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowIcmpv6EchoSequenceNumber, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -61958,7 +81140,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -62053,25 +81235,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIcmpv6EchoSequenceNumberMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpv6EchoSequenceNumberMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIcmpv6EchoSequenceNumberMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIcmpv6EchoSequenceNumberMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowIcmpv6EchoSequenceNumberMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIcmpv6EchoSequenceNumberMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIcmpv6EchoSequenceNumberMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIcmpv6EchoSequenceNumberMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIcmpv6EchoSequenceNumberMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIcmpv6EchoSequenceNumberMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIcmpv6EchoSequenceNumberMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIcmpv6EchoSequenceNumberMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIcmpv6EchoSequenceNumberMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowIcmpv6EchoSequenceNumberMetricTagIter + """Factory method that creates an instance of the PatternFlowIcmpv6EchoSequenceNumberMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpv6EchoSequenceNumberMetricTagIter + """ + item = PatternFlowIcmpv6EchoSequenceNumberMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowIcmpv6EchoSequenceNumberMetricTag + """Add method that creates and returns an instance of the PatternFlowIcmpv6EchoSequenceNumberMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIcmpv6EchoSequenceNumberMetricTag + """ + item = PatternFlowIcmpv6EchoSequenceNumberMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIcmpv6EchoSequenceNumberCounter(OpenApiObject): @@ -62377,7 +81719,7 @@ class PatternFlowPppAddress(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowPppAddressMetricTagIter"}, "increment": {"type": "PatternFlowPppAddressCounter"}, "decrement": {"type": "PatternFlowPppAddressCounter"}, } # type: Dict[str, str] @@ -62399,14 +81741,11 @@ class PatternFlowPppAddress(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=255, values=[255], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=255, values=[255]): super(PatternFlowPppAddress, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -62416,7 +81755,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -62511,25 +81850,183 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowPppAddressMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPppAddressMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowPppAddressMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowPppAddressMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowPppAddressMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowPppAddressMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowPppAddressMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowPppAddressMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowPppAddressMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowPppAddressMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowPppAddressMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowPppAddressMetricTag): + raise Exception("Item is not an instance of PatternFlowPppAddressMetricTag") + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowPppAddressMetricTagIter + """Factory method that creates an instance of the PatternFlowPppAddressMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPppAddressMetricTagIter + """ + item = PatternFlowPppAddressMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowPppAddressMetricTag + """Add method that creates and returns an instance of the PatternFlowPppAddressMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPppAddressMetricTag + """ + item = PatternFlowPppAddressMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowPppAddressCounter(OpenApiObject): @@ -62661,7 +82158,7 @@ class PatternFlowPppControl(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowPppControlMetricTagIter"}, "increment": {"type": "PatternFlowPppControlCounter"}, "decrement": {"type": "PatternFlowPppControlCounter"}, } # type: Dict[str, str] @@ -62683,14 +82180,11 @@ class PatternFlowPppControl(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=3, values=[3], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=3, values=[3]): super(PatternFlowPppControl, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -62700,7 +82194,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -62795,25 +82289,183 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowPppControlMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPppControlMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowPppControlMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowPppControlMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowPppControlMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowPppControlMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowPppControlMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowPppControlMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowPppControlMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowPppControlMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowPppControlMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowPppControlMetricTag): + raise Exception("Item is not an instance of PatternFlowPppControlMetricTag") + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowPppControlMetricTagIter + """Factory method that creates an instance of the PatternFlowPppControlMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPppControlMetricTagIter + """ + item = PatternFlowPppControlMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowPppControlMetricTag + """Add method that creates and returns an instance of the PatternFlowPppControlMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPppControlMetricTag + """ + item = PatternFlowPppControlMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowPppControlCounter(OpenApiObject): @@ -62951,7 +82603,7 @@ class PatternFlowPppProtocolType(OpenApiObject): "minimum": 0, "maximum": 65535, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowPppProtocolTypeMetricTagIter"}, "increment": {"type": "PatternFlowPppProtocolTypeCounter"}, "decrement": {"type": "PatternFlowPppProtocolTypeCounter"}, } # type: Dict[str, str] @@ -62973,21 +82625,12 @@ class PatternFlowPppProtocolType(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, - parent=None, - choice=None, - value=33, - values=[33], - auto=33, - metric_group=None, - ): + def __init__(self, parent=None, choice=None, value=33, values=[33], auto=33): super(PatternFlowPppProtocolType, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) self._set_property("auto", auto) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -62997,7 +82640,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, auto=None, metric_group=None): + def set(self, value=None, values=None, auto=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -63103,25 +82746,185 @@ def auto(self): return self._get_property("auto") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowPppProtocolTypeMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPppProtocolTypeMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowPppProtocolTypeMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowPppProtocolTypeMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 15, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 16, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 16, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=16): + super(PatternFlowPppProtocolTypeMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowPppProtocolTypeMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowPppProtocolTypeMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowPppProtocolTypeMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowPppProtocolTypeMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowPppProtocolTypeMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowPppProtocolTypeMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowPppProtocolTypeMetricTag): + raise Exception( + "Item is not an instance of PatternFlowPppProtocolTypeMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPppProtocolTypeMetricTagIter + """Factory method that creates an instance of the PatternFlowPppProtocolTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPppProtocolTypeMetricTagIter + """ + item = PatternFlowPppProtocolTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=16): + # type: (str,int,int) -> PatternFlowPppProtocolTypeMetricTag + """Add method that creates and returns an instance of the PatternFlowPppProtocolTypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowPppProtocolTypeMetricTag + """ + item = PatternFlowPppProtocolTypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowPppProtocolTypeCounter(OpenApiObject): @@ -63328,7 +83131,7 @@ class PatternFlowIgmpv1Version(OpenApiObject): "minimum": 0, "maximum": 15, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIgmpv1VersionMetricTagIter"}, "increment": {"type": "PatternFlowIgmpv1VersionCounter"}, "decrement": {"type": "PatternFlowIgmpv1VersionCounter"}, } # type: Dict[str, str] @@ -63348,14 +83151,11 @@ class PatternFlowIgmpv1Version(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=1, values=[1], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=1, values=[1]): super(PatternFlowIgmpv1Version, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -63365,7 +83165,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -63460,25 +83260,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIgmpv1VersionMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIgmpv1VersionMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIgmpv1VersionMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIgmpv1VersionMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 3, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 4, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 4, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=4): + super(PatternFlowIgmpv1VersionMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIgmpv1VersionMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIgmpv1VersionMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIgmpv1VersionMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIgmpv1VersionMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIgmpv1VersionMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIgmpv1VersionMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIgmpv1VersionMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIgmpv1VersionMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=4): + # type: (str,int,int) -> PatternFlowIgmpv1VersionMetricTagIter + """Factory method that creates an instance of the PatternFlowIgmpv1VersionMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIgmpv1VersionMetricTagIter + """ + item = PatternFlowIgmpv1VersionMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=4): + # type: (str,int,int) -> PatternFlowIgmpv1VersionMetricTag + """Add method that creates and returns an instance of the PatternFlowIgmpv1VersionMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIgmpv1VersionMetricTag + """ + item = PatternFlowIgmpv1VersionMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIgmpv1VersionCounter(OpenApiObject): @@ -63608,7 +83568,7 @@ class PatternFlowIgmpv1Type(OpenApiObject): "minimum": 0, "maximum": 15, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIgmpv1TypeMetricTagIter"}, "increment": {"type": "PatternFlowIgmpv1TypeCounter"}, "decrement": {"type": "PatternFlowIgmpv1TypeCounter"}, } # type: Dict[str, str] @@ -63631,14 +83591,11 @@ class PatternFlowIgmpv1Type(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=1, values=[1], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=1, values=[1]): super(PatternFlowIgmpv1Type, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -63648,7 +83605,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -63743,25 +83700,183 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIgmpv1TypeMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIgmpv1TypeMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIgmpv1TypeMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIgmpv1TypeMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 3, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 4, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 4, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=4): + super(PatternFlowIgmpv1TypeMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIgmpv1TypeMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIgmpv1TypeMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIgmpv1TypeMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIgmpv1TypeMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIgmpv1TypeMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIgmpv1TypeMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIgmpv1TypeMetricTag): + raise Exception("Item is not an instance of PatternFlowIgmpv1TypeMetricTag") + + def metrictag(self, name=None, offset=0, length=4): + # type: (str,int,int) -> PatternFlowIgmpv1TypeMetricTagIter + """Factory method that creates an instance of the PatternFlowIgmpv1TypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIgmpv1TypeMetricTagIter + """ + item = PatternFlowIgmpv1TypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=4): + # type: (str,int,int) -> PatternFlowIgmpv1TypeMetricTag + """Add method that creates and returns an instance of the PatternFlowIgmpv1TypeMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIgmpv1TypeMetricTag + """ + item = PatternFlowIgmpv1TypeMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIgmpv1TypeCounter(OpenApiObject): @@ -63894,7 +84009,7 @@ class PatternFlowIgmpv1Unused(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIgmpv1UnusedMetricTagIter"}, "increment": {"type": "PatternFlowIgmpv1UnusedCounter"}, "decrement": {"type": "PatternFlowIgmpv1UnusedCounter"}, } # type: Dict[str, str] @@ -63914,14 +84029,11 @@ class PatternFlowIgmpv1Unused(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowIgmpv1Unused, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -63931,7 +84043,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -64026,25 +84138,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIgmpv1UnusedMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIgmpv1UnusedMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIgmpv1UnusedMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIgmpv1UnusedMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowIgmpv1UnusedMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIgmpv1UnusedMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIgmpv1UnusedMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIgmpv1UnusedMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIgmpv1UnusedMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIgmpv1UnusedMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIgmpv1UnusedMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIgmpv1UnusedMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIgmpv1UnusedMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowIgmpv1UnusedMetricTagIter + """Factory method that creates an instance of the PatternFlowIgmpv1UnusedMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIgmpv1UnusedMetricTagIter + """ + item = PatternFlowIgmpv1UnusedMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowIgmpv1UnusedMetricTag + """Add method that creates and returns an instance of the PatternFlowIgmpv1UnusedMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIgmpv1UnusedMetricTag + """ + item = PatternFlowIgmpv1UnusedMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIgmpv1UnusedCounter(OpenApiObject): @@ -64295,7 +84567,7 @@ class PatternFlowIgmpv1GroupAddress(OpenApiObject): "format": "ipv4", "itemtype": str, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowIgmpv1GroupAddressMetricTagIter"}, "increment": {"type": "PatternFlowIgmpv1GroupAddressCounter"}, "decrement": {"type": "PatternFlowIgmpv1GroupAddressCounter"}, } # type: Dict[str, str] @@ -64315,19 +84587,11 @@ class PatternFlowIgmpv1GroupAddress(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, - parent=None, - choice=None, - value="0.0.0.0", - values=["0.0.0.0"], - metric_group=None, - ): + def __init__(self, parent=None, choice=None, value="0.0.0.0", values=["0.0.0.0"]): super(PatternFlowIgmpv1GroupAddress, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -64337,7 +84601,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -64432,25 +84696,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowIgmpv1GroupAddressMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIgmpv1GroupAddressMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowIgmpv1GroupAddressMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowIgmpv1GroupAddressMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 31, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 32, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 32, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=32): + super(PatternFlowIgmpv1GroupAddressMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowIgmpv1GroupAddressMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowIgmpv1GroupAddressMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowIgmpv1GroupAddressMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowIgmpv1GroupAddressMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowIgmpv1GroupAddressMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowIgmpv1GroupAddressMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowIgmpv1GroupAddressMetricTag): + raise Exception( + "Item is not an instance of PatternFlowIgmpv1GroupAddressMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=32): + # type: (str,int,int) -> PatternFlowIgmpv1GroupAddressMetricTagIter + """Factory method that creates an instance of the PatternFlowIgmpv1GroupAddressMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIgmpv1GroupAddressMetricTagIter + """ + item = PatternFlowIgmpv1GroupAddressMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=32): + # type: (str,int,int) -> PatternFlowIgmpv1GroupAddressMetricTag + """Add method that creates and returns an instance of the PatternFlowIgmpv1GroupAddressMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowIgmpv1GroupAddressMetricTag + """ + item = PatternFlowIgmpv1GroupAddressMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowIgmpv1GroupAddressCounter(OpenApiObject): @@ -64649,7 +85073,7 @@ class PatternFlowMplsLabel(OpenApiObject): "minimum": 0, "maximum": 1048575, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowMplsLabelMetricTagIter"}, "increment": {"type": "PatternFlowMplsLabelCounter"}, "decrement": {"type": "PatternFlowMplsLabelCounter"}, } # type: Dict[str, str] @@ -64671,21 +85095,12 @@ class PatternFlowMplsLabel(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, - parent=None, - choice=None, - value=16, - values=[16], - auto=16, - metric_group=None, - ): + def __init__(self, parent=None, choice=None, value=16, values=[16], auto=16): super(PatternFlowMplsLabel, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) self._set_property("auto", auto) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -64695,7 +85110,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, auto=None, metric_group=None): + def set(self, value=None, values=None, auto=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -64801,25 +85216,180 @@ def auto(self): return self._get_property("auto") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowMplsLabelMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowMplsLabelMetricTagIter + """ + return self._get_property( + "metric_tags", PatternFlowMplsLabelMetricTagIter, self._parent, self._choice + ) + + +class PatternFlowMplsLabelMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 19, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 20, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 20, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=20): + super(PatternFlowMplsLabelMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowMplsLabelMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowMplsLabelMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowMplsLabelMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowMplsLabelMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowMplsLabelMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowMplsLabelMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowMplsLabelMetricTag): + raise Exception("Item is not an instance of PatternFlowMplsLabelMetricTag") + + def metrictag(self, name=None, offset=0, length=20): + # type: (str,int,int) -> PatternFlowMplsLabelMetricTagIter + """Factory method that creates an instance of the PatternFlowMplsLabelMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowMplsLabelMetricTagIter + """ + item = PatternFlowMplsLabelMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=20): + # type: (str,int,int) -> PatternFlowMplsLabelMetricTag + """Add method that creates and returns an instance of the PatternFlowMplsLabelMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowMplsLabelMetricTag + """ + item = PatternFlowMplsLabelMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowMplsLabelCounter(OpenApiObject): @@ -64949,7 +85519,7 @@ class PatternFlowMplsTrafficClass(OpenApiObject): "minimum": 0, "maximum": 7, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowMplsTrafficClassMetricTagIter"}, "increment": {"type": "PatternFlowMplsTrafficClassCounter"}, "decrement": {"type": "PatternFlowMplsTrafficClassCounter"}, } # type: Dict[str, str] @@ -64969,14 +85539,11 @@ class PatternFlowMplsTrafficClass(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=0, values=[0], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=0, values=[0]): super(PatternFlowMplsTrafficClass, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -64986,7 +85553,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -65081,25 +85648,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowMplsTrafficClassMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowMplsTrafficClassMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowMplsTrafficClassMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowMplsTrafficClassMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 2, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 3, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 3, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=3): + super(PatternFlowMplsTrafficClassMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowMplsTrafficClassMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowMplsTrafficClassMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowMplsTrafficClassMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowMplsTrafficClassMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowMplsTrafficClassMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowMplsTrafficClassMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowMplsTrafficClassMetricTag): + raise Exception( + "Item is not an instance of PatternFlowMplsTrafficClassMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=3): + # type: (str,int,int) -> PatternFlowMplsTrafficClassMetricTagIter + """Factory method that creates an instance of the PatternFlowMplsTrafficClassMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowMplsTrafficClassMetricTagIter + """ + item = PatternFlowMplsTrafficClassMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=3): + # type: (str,int,int) -> PatternFlowMplsTrafficClassMetricTag + """Add method that creates and returns an instance of the PatternFlowMplsTrafficClassMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowMplsTrafficClassMetricTag + """ + item = PatternFlowMplsTrafficClassMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowMplsTrafficClassCounter(OpenApiObject): @@ -65235,7 +85962,7 @@ class PatternFlowMplsBottomOfStack(OpenApiObject): "minimum": 0, "maximum": 1, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowMplsBottomOfStackMetricTagIter"}, "increment": {"type": "PatternFlowMplsBottomOfStackCounter"}, "decrement": {"type": "PatternFlowMplsBottomOfStackCounter"}, } # type: Dict[str, str] @@ -65257,15 +85984,12 @@ class PatternFlowMplsBottomOfStack(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=1, values=[1], auto=1, metric_group=None - ): + def __init__(self, parent=None, choice=None, value=1, values=[1], auto=1): super(PatternFlowMplsBottomOfStack, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) self._set_property("auto", auto) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -65275,7 +85999,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, auto=None, metric_group=None): + def set(self, value=None, values=None, auto=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -65381,25 +86105,185 @@ def auto(self): return self._get_property("auto") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowMplsBottomOfStackMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowMplsBottomOfStackMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowMplsBottomOfStackMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowMplsBottomOfStackMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 0, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 1, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 1, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=1): + super(PatternFlowMplsBottomOfStackMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowMplsBottomOfStackMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowMplsBottomOfStackMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowMplsBottomOfStackMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowMplsBottomOfStackMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowMplsBottomOfStackMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowMplsBottomOfStackMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowMplsBottomOfStackMetricTag): + raise Exception( + "Item is not an instance of PatternFlowMplsBottomOfStackMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowMplsBottomOfStackMetricTagIter + """Factory method that creates an instance of the PatternFlowMplsBottomOfStackMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowMplsBottomOfStackMetricTagIter + """ + item = PatternFlowMplsBottomOfStackMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=1): + # type: (str,int,int) -> PatternFlowMplsBottomOfStackMetricTag + """Add method that creates and returns an instance of the PatternFlowMplsBottomOfStackMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowMplsBottomOfStackMetricTag + """ + item = PatternFlowMplsBottomOfStackMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowMplsBottomOfStackCounter(OpenApiObject): @@ -65529,7 +86413,7 @@ class PatternFlowMplsTimeToLive(OpenApiObject): "minimum": 0, "maximum": 255, }, - "metric_group": {"type": str}, + "metric_tags": {"type": "PatternFlowMplsTimeToLiveMetricTagIter"}, "increment": {"type": "PatternFlowMplsTimeToLiveCounter"}, "decrement": {"type": "PatternFlowMplsTimeToLiveCounter"}, } # type: Dict[str, str] @@ -65549,14 +86433,11 @@ class PatternFlowMplsTimeToLive(OpenApiObject): _STATUS = {} # type: Dict[str, Union(type)] - def __init__( - self, parent=None, choice=None, value=64, values=[64], metric_group=None - ): + def __init__(self, parent=None, choice=None, value=64, values=[64]): super(PatternFlowMplsTimeToLive, self).__init__() self._parent = parent self._set_property("value", value) self._set_property("values", values) - self._set_property("metric_group", metric_group) if ( "choice" in self._DEFAULTS and choice is None @@ -65566,7 +86447,7 @@ def __init__( else: self._set_property("choice", choice) - def set(self, value=None, values=None, metric_group=None): + def set(self, value=None, values=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @@ -65661,25 +86542,185 @@ def values(self, value): self._set_property("values", value, "values") @property - def metric_group(self): + def metric_tags(self): + # type: () -> PatternFlowMplsTimeToLiveMetricTagIter + """metric_tags getter + + One or more metric tags can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowMplsTimeToLiveMetricTagIter + """ + return self._get_property( + "metric_tags", + PatternFlowMplsTimeToLiveMetricTagIter, + self._parent, + self._choice, + ) + + +class PatternFlowMplsTimeToLiveMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "offset": { + "type": int, + "minimum": 0, + "maximum": 7, + }, + "length": { + "type": int, + "minimum": 1, + "maximum": 8, + }, + } # type: Dict[str, str] + + _REQUIRED = ("name",) # type: tuple(str) + + _DEFAULTS = { + "offset": 0, + "length": 8, + } # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, offset=0, length=8): + super(PatternFlowMplsTimeToLiveMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("offset", offset) + self._set_property("length", length) + + def set(self, name=None, offset=None, length=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): # type: () -> str - """metric_group getter + """name getter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field Returns: str """ - return self._get_property("metric_group") + return self._get_property("name") - @metric_group.setter - def metric_group(self, value): - """metric_group setter + @name.setter + def name(self, value): + """name setter - A unique name is used to indicate to the system that the field may extend the metric row key and create an aggregate metric row for every unique value. To have metric group columns appear in the flow metric rows the flow metric request allows for the metric_group value to be specified as part of the request. + Name used to identify the metrics associated with the values applicable for configured offset and length inside corresponding header field value: str """ - self._set_property("metric_group", value) + if value is None: + raise TypeError("Cannot set required property name as None") + self._set_property("name", value) + + @property + def offset(self): + # type: () -> int + """offset getter + + Offset in bits relative to start of corresponding header field + + Returns: int + """ + return self._get_property("offset") + + @offset.setter + def offset(self, value): + """offset setter + + Offset in bits relative to start of corresponding header field + + value: int + """ + self._set_property("offset", value) + + @property + def length(self): + # type: () -> int + """length getter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + Returns: int + """ + return self._get_property("length") + + @length.setter + def length(self, value): + """length setter + + Number of bits to track for metrics starting from configured offset of corresponding header field + + value: int + """ + self._set_property("length", value) + + +class PatternFlowMplsTimeToLiveMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(PatternFlowMplsTimeToLiveMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[PatternFlowMplsTimeToLiveMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> PatternFlowMplsTimeToLiveMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> PatternFlowMplsTimeToLiveMetricTag + return self._next() + + def next(self): + # type: () -> PatternFlowMplsTimeToLiveMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, PatternFlowMplsTimeToLiveMetricTag): + raise Exception( + "Item is not an instance of PatternFlowMplsTimeToLiveMetricTag" + ) + + def metrictag(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowMplsTimeToLiveMetricTagIter + """Factory method that creates an instance of the PatternFlowMplsTimeToLiveMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowMplsTimeToLiveMetricTagIter + """ + item = PatternFlowMplsTimeToLiveMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return self + + def add(self, name=None, offset=0, length=8): + # type: (str,int,int) -> PatternFlowMplsTimeToLiveMetricTag + """Add method that creates and returns an instance of the PatternFlowMplsTimeToLiveMetricTag class + + Metric tag can be used to enable tracking portion of or all bits in corresponding header field for metrics per each applicable value. These would appear as tagged metrics in corresponding flow metrics. + + Returns: PatternFlowMplsTimeToLiveMetricTag + """ + item = PatternFlowMplsTimeToLiveMetricTag( + parent=self._parent, name=name, offset=offset, length=length + ) + self._add(item) + return item class PatternFlowMplsTimeToLiveCounter(OpenApiObject): @@ -73577,11 +94618,11 @@ class FlowMetricsRequest(OpenApiObject): "type": list, "itemtype": str, }, - "metric_groups": {"type": "FlowMetricGroupRequest"}, "metric_names": { "type": list, "itemtype": str, }, + "tagged_metrics": {"type": "FlowTaggedMetricsFilter"}, } # type: Dict[str, str] _REQUIRED = () # type: tuple(str) @@ -73630,17 +94671,6 @@ def flow_names(self, value): """ self._set_property("flow_names", value) - @property - def metric_groups(self): - # type: () -> FlowMetricGroupRequest - """metric_groups getter - - A list of metric groups used to disaggregate flows. metric group that does not exist for flow group MUST return an error. - - Returns: FlowMetricGroupRequest - """ - return self._get_property("metric_groups", FlowMetricGroupRequest) - @property def metric_names(self): # type: () -> List[Union[Literal["bytes_rx"], Literal["bytes_tx"], Literal["frames_rx"], Literal["frames_rx_rate"], Literal["frames_tx"], Literal["frames_tx_rate"], Literal["transmit"]]] @@ -73662,122 +94692,262 @@ def metric_names(self, value): """ self._set_property("metric_names", value) + @property + def tagged_metrics(self): + # type: () -> FlowTaggedMetricsFilter + """tagged_metrics getter -class FlowMetricGroupRequest(OpenApiObject): - __slots__ = ("_parent", "_choice") + Filter for tagged metricsFilter for tagged metricsFilter for tagged metricsFilter for tagged metrics + + Returns: FlowTaggedMetricsFilter + """ + return self._get_property("tagged_metrics", FlowTaggedMetricsFilter) + + +class FlowTaggedMetricsFilter(OpenApiObject): + __slots__ = "_parent" _TYPES = { - "choice": { - "type": str, - "enum": [ - "ingress", - "egress", - ], - }, - "ingress": { - "type": list, - "itemtype": str, - }, - "egress": { + "include": {"type": bool}, + "include_empty_metrics": {"type": bool}, + "metric_names": { "type": list, "itemtype": str, }, + "filters": {"type": "FlowMetricTagFilterIter"}, } # type: Dict[str, str] _REQUIRED = () # type: tuple(str) _DEFAULTS = { - "choice": "ingress", - "ingress": [], - "egress": [], + "include": True, + "include_empty_metrics": False, } # type: Dict[str, Union(type)] - INGRESS = "ingress" # type: str - EGRESS = "egress" # type: str + FRAMES_TX = "frames_tx" # type: str + FRAMES_RX = "frames_rx" # type: str + BYTES_TX = "bytes_tx" # type: str + BYTES_RX = "bytes_rx" # type: str + FRAMES_TX_RATE = "frames_tx_rate" # type: str + FRAMES_RX_RATE = "frames_rx_rate" # type: str _STATUS = {} # type: Dict[str, Union(type)] - def __init__(self, parent=None, choice=None, ingress=[], egress=[]): - super(FlowMetricGroupRequest, self).__init__() + def __init__( + self, parent=None, include=True, include_empty_metrics=False, metric_names=None + ): + super(FlowTaggedMetricsFilter, self).__init__() self._parent = parent - self._set_property("ingress", ingress) - self._set_property("egress", egress) - if ( - "choice" in self._DEFAULTS - and choice is None - and self._DEFAULTS["choice"] in self._TYPES - ): - getattr(self, self._DEFAULTS["choice"]) - else: - self._set_property("choice", choice) + self._set_property("include", include) + self._set_property("include_empty_metrics", include_empty_metrics) + self._set_property("metric_names", metric_names) - def set(self, ingress=None, egress=None): + def set(self, include=None, include_empty_metrics=None, metric_names=None): for property_name, property_value in locals().items(): if property_name != "self" and property_value is not None: self._set_property(property_name, property_value) @property - def choice(self): - # type: () -> Union[Literal["egress"], Literal["ingress"]] - """choice getter + def include(self): + # type: () -> bool + """include getter - The type of disaggregation to be applied to the flow metrics. + Controls inclusion/exclusion of tagged metrics when fetching flow metrics. - Returns: Union[Literal["egress"], Literal["ingress"]] + Returns: bool """ - return self._get_property("choice") + return self._get_property("include") - @choice.setter - def choice(self, value): - """choice setter + @include.setter + def include(self, value): + """include setter - The type of disaggregation to be applied to the flow metrics. + Controls inclusion/exclusion of tagged metrics when fetching flow metrics. - value: Union[Literal["egress"], Literal["ingress"]] + value: bool """ - self._set_property("choice", value) + self._set_property("include", value) @property - def ingress(self): - # type: () -> List[str] - """ingress getter + def include_empty_metrics(self): + # type: () -> bool + """include_empty_metrics getter - Disaggregate the flow metrics by ingress packet header field names.. If the items is empty then no disaggregation will be done. . x-constraint:. /components/schemas/Flow/properties/packet/../metric_group. . x-constraint:. /components/schemas/Flow/properties/packet/../metric_group. + Controls inclusion/exclusion of tagged metrics where each underlying attributes has zero value or absent value. - Returns: List[str] + Returns: bool """ - return self._get_property("ingress") + return self._get_property("include_empty_metrics") - @ingress.setter - def ingress(self, value): - """ingress setter + @include_empty_metrics.setter + def include_empty_metrics(self, value): + """include_empty_metrics setter - Disaggregate the flow metrics by ingress packet header field names.. If the items is empty then no disaggregation will be done. . x-constraint:. /components/schemas/Flow/properties/packet/../metric_group. . x-constraint:. /components/schemas/Flow/properties/packet/../metric_group. + Controls inclusion/exclusion of tagged metrics where each underlying attributes has zero value or absent value. - value: List[str] + value: bool + """ + self._set_property("include_empty_metrics", value) + + @property + def metric_names(self): + # type: () -> List[Union[Literal["bytes_rx"], Literal["bytes_tx"], Literal["frames_rx"], Literal["frames_rx_rate"], Literal["frames_tx"], Literal["frames_tx_rate"]]] + """metric_names getter + + The list of metric names that the returned result set will contain. If the list is empty then all metrics will be returned. + + Returns: List[Union[Literal["bytes_rx"], Literal["bytes_tx"], Literal["frames_rx"], Literal["frames_rx_rate"], Literal["frames_tx"], Literal["frames_tx_rate"]]] + """ + return self._get_property("metric_names") + + @metric_names.setter + def metric_names(self, value): + """metric_names setter + + The list of metric names that the returned result set will contain. If the list is empty then all metrics will be returned. + + value: List[Union[Literal["bytes_rx"], Literal["bytes_tx"], Literal["frames_rx"], Literal["frames_rx_rate"], Literal["frames_tx"], Literal["frames_tx_rate"]]] + """ + self._set_property("metric_names", value) + + @property + def filters(self): + # type: () -> FlowMetricTagFilterIter + """filters getter + + List of filters to selectively fetch tagged metrics with certain tag and corresponding value. + + Returns: FlowMetricTagFilterIter + """ + return self._get_property( + "filters", FlowMetricTagFilterIter, self._parent, self._choice + ) + + +class FlowMetricTagFilter(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "values": { + "type": list, + "itemtype": str, + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = {} # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None, values=None): + super(FlowMetricTagFilter, self).__init__() + self._parent = parent + self._set_property("name", name) + self._set_property("values", values) + + def set(self, name=None, values=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): + # type: () -> str + """name getter + + A metric tag name that MUST exist in flow packet or. flow egress_packet configuration + + Returns: str + """ + return self._get_property("name") + + @name.setter + def name(self, value): + """name setter + + A metric tag name that MUST exist in flow packet or. flow egress_packet configuration + + value: str """ - self._set_property("ingress", value, "ingress") + self._set_property("name", value) @property - def egress(self): + def values(self): # type: () -> List[str] - """egress getter + """values getter - Disaggregate the flow metrics by egress packet header field names If the items is empty then no disaggregation will be done. . x-constraint:. /components/schemas/Flow/properties/egress/../metric_group. . x-constraint:. /components/schemas/Flow/properties/egress/../metric_group. + A list of filters that can be applied to the metric tag name.. By default all values will be included in the flow metric results. Returns: List[str] """ - return self._get_property("egress") + return self._get_property("values") - @egress.setter - def egress(self, value): - """egress setter + @values.setter + def values(self, value): + """values setter - Disaggregate the flow metrics by egress packet header field names If the items is empty then no disaggregation will be done. . x-constraint:. /components/schemas/Flow/properties/egress/../metric_group. . x-constraint:. /components/schemas/Flow/properties/egress/../metric_group. + A list of filters that can be applied to the metric tag name.. By default all values will be included in the flow metric results. value: List[str] """ - self._set_property("egress", value, "egress") + self._set_property("values", value) + + +class FlowMetricTagFilterIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(FlowMetricTagFilterIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[FlowMetricTagFilter] + return self._getitem(key) + + def __iter__(self): + # type: () -> FlowMetricTagFilterIter + return self._iter() + + def __next__(self): + # type: () -> FlowMetricTagFilter + return self._next() + + def next(self): + # type: () -> FlowMetricTagFilter + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, FlowMetricTagFilter): + raise Exception("Item is not an instance of FlowMetricTagFilter") + + def filter(self, name=None, values=None): + # type: (str,List[str]) -> FlowMetricTagFilterIter + """Factory method that creates an instance of the FlowMetricTagFilter class + + A container for filtering ingress and/or egress metric tags.. The Tx stats may not be applicable in both the request and response filter. + + Returns: FlowMetricTagFilterIter + """ + item = FlowMetricTagFilter(parent=self._parent, name=name, values=values) + self._add(item) + return self + + def add(self, name=None, values=None): + # type: (str,List[str]) -> FlowMetricTagFilter + """Add method that creates and returns an instance of the FlowMetricTagFilter class + + A container for filtering ingress and/or egress metric tags.. The Tx stats may not be applicable in both the request and response filter. + + Returns: FlowMetricTagFilter + """ + item = FlowMetricTagFilter(parent=self._parent, name=name, values=values) + self._add(item) + return item class Bgpv4MetricsRequest(OpenApiObject): @@ -75165,7 +96335,6 @@ class FlowMetric(OpenApiObject): "name": {"type": str}, "port_tx": {"type": str}, "port_rx": {"type": str}, - "metric_groups": {"type": "FlowMetricGroupIter"}, "transmit": { "type": str, "enum": [ @@ -75199,6 +96368,7 @@ class FlowMetric(OpenApiObject): "loss": {"type": float}, "timestamps": {"type": "MetricTimestamp"}, "latency": {"type": "MetricLatency"}, + "tagged_metrics": {"type": "FlowTaggedMetricIter"}, } # type: Dict[str, str] _REQUIRED = () # type: tuple(str) @@ -75321,19 +96491,6 @@ def port_rx(self, value): """ self._set_property("port_rx", value) - @property - def metric_groups(self): - # type: () -> FlowMetricGroupIter - """metric_groups getter - - Flow disaggregation groups. - - Returns: FlowMetricGroupIter - """ - return self._get_property( - "metric_groups", FlowMetricGroupIter, self._parent, self._choice - ) - @property def transmit(self): # type: () -> Union[Literal["paused"], Literal["started"], Literal["stopped"]] @@ -75524,128 +96681,18 @@ def latency(self): """ return self._get_property("latency", MetricLatency) - -class FlowMetricGroup(OpenApiObject): - __slots__ = "_parent" - - _TYPES = { - "name": {"type": str}, - "value": {"type": str}, - } # type: Dict[str, str] - - _REQUIRED = () # type: tuple(str) - - _DEFAULTS = {} # type: Dict[str, Union(type)] - - _STATUS = {} # type: Dict[str, Union(type)] - - def __init__(self, parent=None, name=None, value=None): - super(FlowMetricGroup, self).__init__() - self._parent = parent - self._set_property("name", name) - self._set_property("value", value) - - def set(self, name=None, value=None): - for property_name, property_value in locals().items(): - if property_name != "self" and property_value is not None: - self._set_property(property_name, property_value) - - @property - def name(self): - # type: () -> str - """name getter - - Name of packet field metric group - - Returns: str - """ - return self._get_property("name") - - @name.setter - def name(self, value): - """name setter - - Name of packet field metric group - - value: str - """ - self._set_property("name", value) - @property - def value(self): - # type: () -> str - """value getter - - Value of named packet field metric group - - Returns: str - """ - return self._get_property("value") - - @value.setter - def value(self, value): - """value setter - - Value of named packet field metric group - - value: str - """ - self._set_property("value", value) - - -class FlowMetricGroupIter(OpenApiIter): - __slots__ = ("_parent", "_choice") - - _GETITEM_RETURNS_CHOICE_OBJECT = False + def tagged_metrics(self): + # type: () -> FlowTaggedMetricIter + """tagged_metrics getter - def __init__(self, parent=None, choice=None): - super(FlowMetricGroupIter, self).__init__() - self._parent = parent - self._choice = choice - - def __getitem__(self, key): - # type: (str) -> Union[FlowMetricGroup] - return self._getitem(key) - - def __iter__(self): - # type: () -> FlowMetricGroupIter - return self._iter() - - def __next__(self): - # type: () -> FlowMetricGroup - return self._next() - - def next(self): - # type: () -> FlowMetricGroup - return self._next() - - def _instanceOf(self, item): - if not isinstance(item, FlowMetricGroup): - raise Exception("Item is not an instance of FlowMetricGroup") - - def metricgroup(self, name=None, value=None): - # type: (str,str) -> FlowMetricGroupIter - """Factory method that creates an instance of the FlowMetricGroup class + List of metrics corresponding to set of values applicable. for configured metric tags in ingress or egress packet header fields of corresponding flow.. The container is keyed by list of tag-value pairs. - TBD - - Returns: FlowMetricGroupIter - """ - item = FlowMetricGroup(parent=self._parent, name=name, value=value) - self._add(item) - return self - - def add(self, name=None, value=None): - # type: (str,str) -> FlowMetricGroup - """Add method that creates and returns an instance of the FlowMetricGroup class - - TBD - - Returns: FlowMetricGroup + Returns: FlowTaggedMetricIter """ - item = FlowMetricGroup(parent=self._parent, name=name, value=value) - self._add(item) - return item + return self._get_property( + "tagged_metrics", FlowTaggedMetricIter, self._parent, self._choice + ) class MetricTimestamp(OpenApiObject): @@ -75822,6 +96869,546 @@ def average_ns(self, value): self._set_property("average_ns", value) +class FlowTaggedMetric(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "tags": {"type": "FlowMetricTagIter"}, + "frames_tx": { + "type": int, + "format": "uint64", + }, + "frames_rx": { + "type": int, + "format": "uint64", + }, + "bytes_tx": { + "type": int, + "format": "uint64", + }, + "bytes_rx": { + "type": int, + "format": "uint64", + }, + "frames_tx_rate": {"type": float}, + "frames_rx_rate": {"type": float}, + "loss": {"type": float}, + "timestamps": {"type": "MetricTimestamp"}, + "latency": {"type": "MetricLatency"}, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = {} # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__( + self, + parent=None, + frames_tx=None, + frames_rx=None, + bytes_tx=None, + bytes_rx=None, + frames_tx_rate=None, + frames_rx_rate=None, + loss=None, + ): + super(FlowTaggedMetric, self).__init__() + self._parent = parent + self._set_property("frames_tx", frames_tx) + self._set_property("frames_rx", frames_rx) + self._set_property("bytes_tx", bytes_tx) + self._set_property("bytes_rx", bytes_rx) + self._set_property("frames_tx_rate", frames_tx_rate) + self._set_property("frames_rx_rate", frames_rx_rate) + self._set_property("loss", loss) + + def set( + self, + frames_tx=None, + frames_rx=None, + bytes_tx=None, + bytes_rx=None, + frames_tx_rate=None, + frames_rx_rate=None, + loss=None, + ): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def tags(self): + # type: () -> FlowMetricTagIter + """tags getter + + List of tag and value pairs + + Returns: FlowMetricTagIter + """ + return self._get_property("tags", FlowMetricTagIter, self._parent, self._choice) + + @property + def frames_tx(self): + # type: () -> int + """frames_tx getter + + The current total number of frames transmitted + + Returns: int + """ + return self._get_property("frames_tx") + + @frames_tx.setter + def frames_tx(self, value): + """frames_tx setter + + The current total number of frames transmitted + + value: int + """ + self._set_property("frames_tx", value) + + @property + def frames_rx(self): + # type: () -> int + """frames_rx getter + + The current total number of valid frames received + + Returns: int + """ + return self._get_property("frames_rx") + + @frames_rx.setter + def frames_rx(self, value): + """frames_rx setter + + The current total number of valid frames received + + value: int + """ + self._set_property("frames_rx", value) + + @property + def bytes_tx(self): + # type: () -> int + """bytes_tx getter + + The current total number of bytes transmitted + + Returns: int + """ + return self._get_property("bytes_tx") + + @bytes_tx.setter + def bytes_tx(self, value): + """bytes_tx setter + + The current total number of bytes transmitted + + value: int + """ + self._set_property("bytes_tx", value) + + @property + def bytes_rx(self): + # type: () -> int + """bytes_rx getter + + The current total number of bytes received + + Returns: int + """ + return self._get_property("bytes_rx") + + @bytes_rx.setter + def bytes_rx(self, value): + """bytes_rx setter + + The current total number of bytes received + + value: int + """ + self._set_property("bytes_rx", value) + + @property + def frames_tx_rate(self): + # type: () -> float + """frames_tx_rate getter + + The current rate of frames transmitted + + Returns: float + """ + return self._get_property("frames_tx_rate") + + @frames_tx_rate.setter + def frames_tx_rate(self, value): + """frames_tx_rate setter + + The current rate of frames transmitted + + value: float + """ + self._set_property("frames_tx_rate", value) + + @property + def frames_rx_rate(self): + # type: () -> float + """frames_rx_rate getter + + The current rate of valid frames received + + Returns: float + """ + return self._get_property("frames_rx_rate") + + @frames_rx_rate.setter + def frames_rx_rate(self, value): + """frames_rx_rate setter + + The current rate of valid frames received + + value: float + """ + self._set_property("frames_rx_rate", value) + + @property + def loss(self): + # type: () -> float + """loss getter + + The percentage of lost frames + + Returns: float + """ + return self._get_property("loss") + + @loss.setter + def loss(self, value): + """loss setter + + The percentage of lost frames + + value: float + """ + self._set_property("loss", value) + + @property + def timestamps(self): + # type: () -> MetricTimestamp + """timestamps getter + + The container for timestamp metrics.. The container will be empty if the timestamp has not been configured for. the flow.The container for timestamp metrics.. The container will be empty if the timestamp has not been configured for. the flow.The container for timestamp metrics.. The container will be empty if the timestamp has not been configured for. the flow. + + Returns: MetricTimestamp + """ + return self._get_property("timestamps", MetricTimestamp) + + @property + def latency(self): + # type: () -> MetricLatency + """latency getter + + The container for latency metrics. The min/max/avg values are dependent on the type of latency measurement mode that is configured.. The container will be empty if the latency has not been configured for. the flow.The container for latency metrics. The min/max/avg values are dependent on the type of latency measurement mode that is configured.. The container will be empty if the latency has not been configured for. the flow.The container for latency metrics. The min/max/avg values are dependent on the type of latency measurement mode that is configured.. The container will be empty if the latency has not been configured for. the flow. + + Returns: MetricLatency + """ + return self._get_property("latency", MetricLatency) + + +class FlowMetricTag(OpenApiObject): + __slots__ = "_parent" + + _TYPES = { + "name": {"type": str}, + "value": {"type": "FlowMetricTagValue"}, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = {} # type: Dict[str, Union(type)] + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, name=None): + super(FlowMetricTag, self).__init__() + self._parent = parent + self._set_property("name", name) + + def set(self, name=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def name(self): + # type: () -> str + """name getter + + Name of packet field metric tag + + Returns: str + """ + return self._get_property("name") + + @name.setter + def name(self, value): + """name setter + + Name of packet field metric tag + + value: str + """ + self._set_property("name", value) + + @property + def value(self): + # type: () -> FlowMetricTagValue + """value getter + + A container for metric tag valueA container for metric tag valueA container for metric tag value + + Returns: FlowMetricTagValue + """ + return self._get_property("value", FlowMetricTagValue) + + +class FlowMetricTagValue(OpenApiObject): + __slots__ = ("_parent", "_choice") + + _TYPES = { + "choice": { + "type": str, + "enum": [ + "hex", + ], + }, + "hex": { + "type": str, + "format": "hex", + }, + } # type: Dict[str, str] + + _REQUIRED = () # type: tuple(str) + + _DEFAULTS = { + "choice": "hex", + } # type: Dict[str, Union(type)] + + HEX = "hex" # type: str + + _STATUS = {} # type: Dict[str, Union(type)] + + def __init__(self, parent=None, choice=None, hex=None): + super(FlowMetricTagValue, self).__init__() + self._parent = parent + self._set_property("hex", hex) + if ( + "choice" in self._DEFAULTS + and choice is None + and self._DEFAULTS["choice"] in self._TYPES + ): + getattr(self, self._DEFAULTS["choice"]) + else: + self._set_property("choice", choice) + + def set(self, hex=None): + for property_name, property_value in locals().items(): + if property_name != "self" and property_value is not None: + self._set_property(property_name, property_value) + + @property + def choice(self): + # type: () -> Union[Literal["hex"]] + """choice getter + + Available formats for metric tag value + + Returns: Union[Literal["hex"]] + """ + return self._get_property("choice") + + @choice.setter + def choice(self, value): + """choice setter + + Available formats for metric tag value + + value: Union[Literal["hex"]] + """ + self._set_property("choice", value) + + @property + def hex(self): + # type: () -> str + """hex getter + + Value represented in hexadecimal format + + Returns: str + """ + return self._get_property("hex") + + @hex.setter + def hex(self, value): + """hex setter + + Value represented in hexadecimal format + + value: str + """ + self._set_property("hex", value, "hex") + + +class FlowMetricTagIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(FlowMetricTagIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[FlowMetricTag] + return self._getitem(key) + + def __iter__(self): + # type: () -> FlowMetricTagIter + return self._iter() + + def __next__(self): + # type: () -> FlowMetricTag + return self._next() + + def next(self): + # type: () -> FlowMetricTag + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, FlowMetricTag): + raise Exception("Item is not an instance of FlowMetricTag") + + def metrictag(self, name=None): + # type: (str) -> FlowMetricTagIter + """Factory method that creates an instance of the FlowMetricTag class + + TBD + + Returns: FlowMetricTagIter + """ + item = FlowMetricTag(parent=self._parent, name=name) + self._add(item) + return self + + def add(self, name=None): + # type: (str) -> FlowMetricTag + """Add method that creates and returns an instance of the FlowMetricTag class + + TBD + + Returns: FlowMetricTag + """ + item = FlowMetricTag(parent=self._parent, name=name) + self._add(item) + return item + + +class FlowTaggedMetricIter(OpenApiIter): + __slots__ = ("_parent", "_choice") + + _GETITEM_RETURNS_CHOICE_OBJECT = False + + def __init__(self, parent=None, choice=None): + super(FlowTaggedMetricIter, self).__init__() + self._parent = parent + self._choice = choice + + def __getitem__(self, key): + # type: (str) -> Union[FlowTaggedMetric] + return self._getitem(key) + + def __iter__(self): + # type: () -> FlowTaggedMetricIter + return self._iter() + + def __next__(self): + # type: () -> FlowTaggedMetric + return self._next() + + def next(self): + # type: () -> FlowTaggedMetric + return self._next() + + def _instanceOf(self, item): + if not isinstance(item, FlowTaggedMetric): + raise Exception("Item is not an instance of FlowTaggedMetric") + + def taggedmetric( + self, + frames_tx=None, + frames_rx=None, + bytes_tx=None, + bytes_rx=None, + frames_tx_rate=None, + frames_rx_rate=None, + loss=None, + ): + # type: (int,int,int,int,float,float,float) -> FlowTaggedMetricIter + """Factory method that creates an instance of the FlowTaggedMetric class + + Metrics for each set of values applicable for configured. metric tags in ingress or egress packet header fields of corresponding flow.. The container is keyed by list of tag-value pairs. + + Returns: FlowTaggedMetricIter + """ + item = FlowTaggedMetric( + parent=self._parent, + frames_tx=frames_tx, + frames_rx=frames_rx, + bytes_tx=bytes_tx, + bytes_rx=bytes_rx, + frames_tx_rate=frames_tx_rate, + frames_rx_rate=frames_rx_rate, + loss=loss, + ) + self._add(item) + return self + + def add( + self, + frames_tx=None, + frames_rx=None, + bytes_tx=None, + bytes_rx=None, + frames_tx_rate=None, + frames_rx_rate=None, + loss=None, + ): + # type: (int,int,int,int,float,float,float) -> FlowTaggedMetric + """Add method that creates and returns an instance of the FlowTaggedMetric class + + Metrics for each set of values applicable for configured. metric tags in ingress or egress packet header fields of corresponding flow.. The container is keyed by list of tag-value pairs. + + Returns: FlowTaggedMetric + """ + item = FlowTaggedMetric( + parent=self._parent, + frames_tx=frames_tx, + frames_rx=frames_rx, + bytes_tx=bytes_tx, + bytes_rx=bytes_rx, + frames_tx_rate=frames_tx_rate, + frames_rx_rate=frames_rx_rate, + loss=loss, + ) + self._add(item) + return item + + class FlowMetricIter(OpenApiIter): __slots__ = ("_parent", "_choice") @@ -75869,7 +97456,7 @@ def metric( # type: (str,str,str,Union[Literal["paused"], Literal["started"], Literal["stopped"]],int,int,int,int,float,float,float) -> FlowMetricIter """Factory method that creates an instance of the FlowMetric class - A container for flow metrics.. The container is keyed by the name, port_tx, port_rx and metric_groups. values. + A container for flow metrics.. The container is keyed by the name, port_tx and port_rx. Returns: FlowMetricIter """ @@ -75907,7 +97494,7 @@ def add( # type: (str,str,str,Union[Literal["paused"], Literal["started"], Literal["stopped"]],int,int,int,int,float,float,float) -> FlowMetric """Add method that creates and returns an instance of the FlowMetric class - A container for flow metrics.. The container is keyed by the name, port_tx, port_rx and metric_groups. values. + A container for flow metrics.. The container is keyed by the name, port_tx and port_rx. Returns: FlowMetric """ @@ -87029,8 +108616,8 @@ class Api(object): def __init__(self, **kwargs): self._version_meta = self.version() - self._version_meta.api_spec_version = "0.11.6" - self._version_meta.sdk_version = "0.11.12" + self._version_meta.api_spec_version = "0.11.7" + self._version_meta.sdk_version = "0.11.13" self._version_check = kwargs.get("version_check") if self._version_check is None: self._version_check = False