From 61e20eddcf1d98952af9b6c02e30b5c5707b784c Mon Sep 17 00:00:00 2001 From: Patrick Demers Date: Thu, 29 Aug 2024 10:31:40 -0700 Subject: [PATCH] add new types to vehicle_data proto --- .github/workflows/build.yml | 4 +- datastore/simple/transformers/payload.go | 77 +- datastore/simple/transformers/payload_test.go | 9 - protos/python/vehicle_alert_pb2.py | 6 +- protos/python/vehicle_data_pb2.py | 76 +- protos/python/vehicle_error_pb2.py | 8 +- protos/python/vehicle_metric_pb2.py | 8 +- protos/ruby/vehicle_alert_pb.rb | 24 +- protos/ruby/vehicle_data_pb.rb | 48 +- protos/ruby/vehicle_error_pb.rb | 24 +- protos/ruby/vehicle_metric_pb.rb | 24 +- protos/vehicle_alert.pb.go | 2 +- protos/vehicle_data.pb.go | 2977 ++++++++++++++--- protos/vehicle_data.proto | 239 +- protos/vehicle_error.pb.go | 2 +- protos/vehicle_metric.pb.go | 2 +- 16 files changed, 2989 insertions(+), 541 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 76147e02..8580290d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -19,8 +19,8 @@ jobs: - name: Set up protoc run: | - wget https://github.com/protocolbuffers/protobuf/releases/download/v25.1/protoc-25.1-linux-x86_64.zip - unzip protoc-25.1-linux-x86_64.zip + wget https://github.com/protocolbuffers/protobuf/releases/download/v26.1/protoc-26.1-linux-x86_64.zip + unzip protoc-26.1-linux-x86_64.zip sudo mv bin/protoc /usr/local/bin/protoc sudo mv include/* /usr/local/include/ diff --git a/datastore/simple/transformers/payload.go b/datastore/simple/transformers/payload.go index 090053bf..92af189a 100644 --- a/datastore/simple/transformers/payload.go +++ b/datastore/simple/transformers/payload.go @@ -1,6 +1,7 @@ package transformers import ( + "fmt" "time" logrus "github.com/teslamotors/fleet-telemetry/logger" @@ -68,9 +69,79 @@ func transformValue(value interface{}, includeTypes bool) (interface{}, bool) { case *protos.Value_ShiftStateValue: outputType = "shiftStateValue" outputValue = v.ShiftStateValue.String() - case *protos.Value_ChargingValue: - outputType = "chargingValue" - outputValue = v.ChargingValue.String() + case *protos.Value_LaneAssistLevelValue: + outputType = "laneAssistLevel" + outputValue = v.LaneAssistLevelValue.String() + case *protos.Value_ScheduledChargingModeValue: + outputType = "scheduledChargingMode" + outputValue = v.ScheduledChargingModeValue.String() + case *protos.Value_SentryModeStateValue: + outputType = "sentryModeState" + outputValue = v.SentryModeStateValue.String() + case *protos.Value_SpeedAssistLevelValue: + outputType = "speedAssistLevel" + outputValue = v.SpeedAssistLevelValue.String() + case *protos.Value_BmsStateValue: + outputType = "bmsState" + outputValue = v.BmsStateValue.String() + case *protos.Value_BuckleStatusValue: + outputType = "buckleStatus" + outputValue = v.BuckleStatusValue.String() + case *protos.Value_CarTypeValue: + outputType = "carType" + outputValue = v.CarTypeValue.String() + case *protos.Value_ChargePortValue: + outputType = "chargePort" + outputValue = v.ChargePortValue.String() + case *protos.Value_ChargePortLatchValue: + outputType = "chargePortLatch" + outputValue = v.ChargePortLatchValue.String() + case *protos.Value_CruiseStateValue: + outputType = "cruiseState" + outputValue = v.CruiseStateValue.String() + case *protos.Value_DoorValue: + outputType = "doorValue" + outputValue = map[string]bool{ + "DriverFront": v.DoorValue.DriverFront, + "PassengerFront": v.DoorValue.PassengerFront, + "DriverRear": v.DoorValue.DriverRear, + "PassengerRear": v.DoorValue.PassengerRear, + "TrunkFront": v.DoorValue.TrunkFront, + "TrunkRear": v.DoorValue.TrunkRear, + } + case *protos.Value_DriveInverterStateValue: + outputType = "driveInverterState" + outputValue = v.DriveInverterStateValue.String() + case *protos.Value_HvilStatusValue: + outputType = "hvilStatus" + outputValue = v.HvilStatusValue.String() + case *protos.Value_WindowStateValue: + outputType = "windowState" + outputValue = v.WindowStateValue.String() + case *protos.Value_SeatFoldPositionValue: + outputType = "seatFoldPosition" + outputValue = v.SeatFoldPositionValue.String() + case *protos.Value_TractorAirStatusValue: + outputType = "tractorAirStatus" + outputValue = v.TractorAirStatusValue.String() + case *protos.Value_FollowDistanceValue: + outputType = "followDistance" + outputValue = v.FollowDistanceValue.String() + case *protos.Value_ForwardCollisionSensitivityValue: + outputType = "forwardCollisionSensitivity" + outputValue = v.ForwardCollisionSensitivityValue.String() + case *protos.Value_GuestModeMobileAccessValue: + outputType = "guestModeMobileAccess" + outputValue = v.GuestModeMobileAccessValue.String() + case *protos.Value_TrailerAirStatusValue: + outputType = "trailerAirStatus" + outputValue = v.TrailerAirStatusValue.String() + case *protos.Value_TimeValue: + outputType = "time" + outputValue = fmt.Sprintf("%02d:%02d:%02d", v.TimeValue.Hour, v.TimeValue.Minute, v.TimeValue.Second) + case *protos.Value_DetailedChargeStateValue: + outputType = "detailedChargeState" + outputValue = v.DetailedChargeStateValue.String() default: return nil, false } diff --git a/datastore/simple/transformers/payload_test.go b/datastore/simple/transformers/payload_test.go index 1e1695ca..f1476bdb 100644 --- a/datastore/simple/transformers/payload_test.go +++ b/datastore/simple/transformers/payload_test.go @@ -162,15 +162,6 @@ var _ = Describe("Payload", func() { "shiftStateValue": "ShiftStateD", }, ), - Entry("ChargeState with types excluded", - &protos.Datum{ - Key: protos.Field_ChargeState, - Value: &protos.Value{Value: &protos.Value_ChargingValue{ChargingValue: protos.ChargingState_ChargeStateCharging}}, - }, - excludeTypes, - "ChargeState", - "ChargeStateCharging", - ), Entry("Invalid with types excluded", &protos.Datum{ Key: protos.Field_BMSState, diff --git a/protos/python/vehicle_alert_pb2.py b/protos/python/vehicle_alert_pb2.py index 4d876e5c..2a0ace60 100644 --- a/protos/python/vehicle_alert_pb2.py +++ b/protos/python/vehicle_alert_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: vehicle_alert.proto -# Protobuf Python Version: 4.25.1 +# Protobuf Python Version: 5.26.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -20,8 +20,8 @@ _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'vehicle_alert_pb2', _globals) -if _descriptor._USE_C_DESCRIPTORS == False: - _globals['DESCRIPTOR']._options = None +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'Z-github.com/teslamotors/fleet-telemetry/protos' _globals['_AUDIENCE']._serialized_start=397 _globals['_AUDIENCE']._serialized_end=463 diff --git a/protos/python/vehicle_data_pb2.py b/protos/python/vehicle_data_pb2.py index 916f3898..fce30458 100644 --- a/protos/python/vehicle_data_pb2.py +++ b/protos/python/vehicle_data_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: vehicle_data.proto -# Protobuf Python Version: 4.25.1 +# Protobuf Python Version: 5.26.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -15,26 +15,70 @@ from google.protobuf import timestamp_pb2 as google_dot_protobuf_dot_timestamp__pb2 -DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12vehicle_data.proto\x12\x16telemetry.vehicle_data\x1a\x1fgoogle/protobuf/timestamp.proto\"4\n\rLocationValue\x12\x10\n\x08latitude\x18\x01 \x01(\x01\x12\x11\n\tlongitude\x18\x02 \x01(\x01\"\xf1\x02\n\x05Value\x12\x16\n\x0cstring_value\x18\x01 \x01(\tH\x00\x12\x13\n\tint_value\x18\x02 \x01(\x05H\x00\x12\x14\n\nlong_value\x18\x03 \x01(\x03H\x00\x12\x15\n\x0b\x66loat_value\x18\x04 \x01(\x02H\x00\x12\x16\n\x0c\x64ouble_value\x18\x05 \x01(\x01H\x00\x12\x17\n\rboolean_value\x18\x06 \x01(\x08H\x00\x12?\n\x0elocation_value\x18\x07 \x01(\x0b\x32%.telemetry.vehicle_data.LocationValueH\x00\x12?\n\x0e\x63harging_value\x18\x08 \x01(\x0e\x32%.telemetry.vehicle_data.ChargingStateH\x00\x12?\n\x11shift_state_value\x18\t \x01(\x0e\x32\".telemetry.vehicle_data.ShiftStateH\x00\x12\x11\n\x07invalid\x18\n \x01(\x08H\x00\x42\x07\n\x05value\"a\n\x05\x44\x61tum\x12*\n\x03key\x18\x01 \x01(\x0e\x32\x1d.telemetry.vehicle_data.Field\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.telemetry.vehicle_data.Value\"s\n\x07Payload\x12+\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32\x1d.telemetry.vehicle_data.Datum\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0b\n\x03vin\x18\x03 \x01(\t*\xe7\x1e\n\x05\x46ield\x12\x0b\n\x07Unknown\x10\x00\x12\r\n\tDriveRail\x10\x01\x12\x0f\n\x0b\x43hargeState\x10\x02\x12\x19\n\x15\x42msFullchargecomplete\x10\x03\x12\x10\n\x0cVehicleSpeed\x10\x04\x12\x0c\n\x08Odometer\x10\x05\x12\x0f\n\x0bPackVoltage\x10\x06\x12\x0f\n\x0bPackCurrent\x10\x07\x12\x07\n\x03Soc\x10\x08\x12\x0e\n\nDCDCEnable\x10\t\x12\x08\n\x04Gear\x10\n\x12\x17\n\x13IsolationResistance\x10\x0b\x12\x11\n\rPedalPosition\x10\x0c\x12\x0e\n\nBrakePedal\x10\r\x12\x0c\n\x08\x44iStateR\x10\x0e\x12\x10\n\x0c\x44iHeatsinkTR\x10\x0f\x12\x10\n\x0c\x44iAxleSpeedR\x10\x10\x12\x11\n\rDiTorquemotor\x10\x11\x12\x11\n\rDiStatorTempR\x10\x12\x12\x0b\n\x07\x44iVBatR\x10\x13\x12\x13\n\x0f\x44iMotorCurrentR\x10\x14\x12\x0c\n\x08Location\x10\x15\x12\x0c\n\x08GpsState\x10\x16\x12\x0e\n\nGpsHeading\x10\x17\x12\x16\n\x12NumBrickVoltageMax\x10\x18\x12\x13\n\x0f\x42rickVoltageMax\x10\x19\x12\x16\n\x12NumBrickVoltageMin\x10\x1a\x12\x13\n\x0f\x42rickVoltageMin\x10\x1b\x12\x14\n\x10NumModuleTempMax\x10\x1c\x12\x11\n\rModuleTempMax\x10\x1d\x12\x14\n\x10NumModuleTempMin\x10\x1e\x12\x11\n\rModuleTempMin\x10\x1f\x12\x0e\n\nRatedRange\x10 \x12\x08\n\x04Hvil\x10!\x12\x16\n\x12\x44\x43\x43hargingEnergyIn\x10\"\x12\x13\n\x0f\x44\x43\x43hargingPower\x10#\x12\x16\n\x12\x41\x43\x43hargingEnergyIn\x10$\x12\x13\n\x0f\x41\x43\x43hargingPower\x10%\x12\x12\n\x0e\x43hargeLimitSoc\x10&\x12\x16\n\x12\x46\x61stChargerPresent\x10\'\x12\x13\n\x0f\x45stBatteryRange\x10(\x12\x15\n\x11IdealBatteryRange\x10)\x12\x10\n\x0c\x42\x61tteryLevel\x10*\x12\x14\n\x10TimeToFullCharge\x10+\x12\x1e\n\x1aScheduledChargingStartTime\x10,\x12\x1c\n\x18ScheduledChargingPending\x10-\x12\x1a\n\x16ScheduledDepartureTime\x10.\x12\x1a\n\x16PreconditioningEnabled\x10/\x12\x19\n\x15ScheduledChargingMode\x10\x30\x12\x0e\n\nChargeAmps\x10\x31\x12\x17\n\x13\x43hargeEnableRequest\x10\x32\x12\x11\n\rChargerPhases\x10\x33\x12\x1d\n\x19\x43hargePortColdWeatherMode\x10\x34\x12\x18\n\x14\x43hargeCurrentRequest\x10\x35\x12\x1b\n\x17\x43hargeCurrentRequestMax\x10\x36\x12\x13\n\x0f\x42\x61tteryHeaterOn\x10\x37\x12\x18\n\x14NotEnoughPowerToHeat\x10\x38\x12\"\n\x1eSuperchargerSessionTripPlanner\x10\x39\x12\r\n\tDoorState\x10:\x12\n\n\x06Locked\x10;\x12\x0c\n\x08\x46\x64Window\x10<\x12\x0c\n\x08\x46pWindow\x10=\x12\x0c\n\x08RdWindow\x10>\x12\x0c\n\x08RpWindow\x10?\x12\x0f\n\x0bVehicleName\x10@\x12\x0e\n\nSentryMode\x10\x41\x12\x12\n\x0eSpeedLimitMode\x10\x42\x12\x13\n\x0f\x43urrentLimitMph\x10\x43\x12\x0b\n\x07Version\x10\x44\x12\x12\n\x0eTpmsPressureFl\x10\x45\x12\x12\n\x0eTpmsPressureFr\x10\x46\x12\x12\n\x0eTpmsPressureRl\x10G\x12\x12\n\x0eTpmsPressureRr\x10H\x12\x1e\n\x1aSemitruckTpmsPressureRe1L0\x10I\x12\x1e\n\x1aSemitruckTpmsPressureRe1L1\x10J\x12\x1e\n\x1aSemitruckTpmsPressureRe1R0\x10K\x12\x1e\n\x1aSemitruckTpmsPressureRe1R1\x10L\x12\x1e\n\x1aSemitruckTpmsPressureRe2L0\x10M\x12\x1e\n\x1aSemitruckTpmsPressureRe2L1\x10N\x12\x1e\n\x1aSemitruckTpmsPressureRe2R0\x10O\x12\x1e\n\x1aSemitruckTpmsPressureRe2R1\x10P\x12\x1e\n\x1aTpmsLastSeenPressureTimeFl\x10Q\x12\x1e\n\x1aTpmsLastSeenPressureTimeFr\x10R\x12\x1e\n\x1aTpmsLastSeenPressureTimeRl\x10S\x12\x1e\n\x1aTpmsLastSeenPressureTimeRr\x10T\x12\x0e\n\nInsideTemp\x10U\x12\x0f\n\x0bOutsideTemp\x10V\x12\x12\n\x0eSeatHeaterLeft\x10W\x12\x13\n\x0fSeatHeaterRight\x10X\x12\x16\n\x12SeatHeaterRearLeft\x10Y\x12\x17\n\x13SeatHeaterRearRight\x10Z\x12\x18\n\x14SeatHeaterRearCenter\x10[\x12\x17\n\x13\x41utoSeatClimateLeft\x10\\\x12\x18\n\x14\x41utoSeatClimateRight\x10]\x12\x12\n\x0e\x44riverSeatBelt\x10^\x12\x15\n\x11PassengerSeatBelt\x10_\x12\x16\n\x12\x44riverSeatOccupied\x10`\x12&\n\"SemitruckPassengerSeatFoldPosition\x10\x61\x12\x17\n\x13LateralAcceleration\x10\x62\x12\x1c\n\x18LongitudinalAcceleration\x10\x63\x12\x0f\n\x0b\x43ruiseState\x10\x64\x12\x12\n\x0e\x43ruiseSetSpeed\x10\x65\x12\x16\n\x12LifetimeEnergyUsed\x10\x66\x12\x1b\n\x17LifetimeEnergyUsedDrive\x10g\x12#\n\x1fSemitruckTractorParkBrakeStatus\x10h\x12#\n\x1fSemitruckTrailerParkBrakeStatus\x10i\x12\x11\n\rBrakePedalPos\x10j\x12\x14\n\x10RouteLastUpdated\x10k\x12\r\n\tRouteLine\x10l\x12\x12\n\x0eMilesToArrival\x10m\x12\x14\n\x10MinutesToArrival\x10n\x12\x12\n\x0eOriginLocation\x10o\x12\x17\n\x13\x44\x65stinationLocation\x10p\x12\x0b\n\x07\x43\x61rType\x10q\x12\x08\n\x04Trim\x10r\x12\x11\n\rExteriorColor\x10s\x12\r\n\tRoofColor\x10t\x12\x0e\n\nChargePort\x10u\x12\x13\n\x0f\x43hargePortLatch\x10v\x12\x12\n\x0e\x45xperimental_1\x10w\x12\x12\n\x0e\x45xperimental_2\x10x\x12\x12\n\x0e\x45xperimental_3\x10y\x12\x12\n\x0e\x45xperimental_4\x10z\x12\x14\n\x10GuestModeEnabled\x10{\x12\x15\n\x11PinToDriveEnabled\x10|\x12\x1e\n\x1aPairedPhoneKeyAndKeyFobQty\x10}\x12\x18\n\x14\x43ruiseFollowDistance\x10~\x12\x1c\n\x18\x41utomaticBlindSpotCamera\x10\x7f\x12#\n\x1e\x42lindSpotCollisionWarningChime\x10\x80\x01\x12\x16\n\x11SpeedLimitWarning\x10\x81\x01\x12\x1c\n\x17\x46orwardCollisionWarning\x10\x82\x01\x12\x1b\n\x16LaneDepartureAvoidance\x10\x83\x01\x12$\n\x1f\x45mergencyLaneDepartureAvoidance\x10\x84\x01\x12!\n\x1c\x41utomaticEmergencyBrakingOff\x10\x85\x01\x12\x1e\n\x19LifetimeEnergyGainedRegen\x10\x86\x01\x12\r\n\x08\x44iStateF\x10\x87\x01\x12\x0f\n\nDiStateREL\x10\x88\x01\x12\x0f\n\nDiStateRER\x10\x89\x01\x12\x11\n\x0c\x44iHeatsinkTF\x10\x8a\x01\x12\x13\n\x0e\x44iHeatsinkTREL\x10\x8b\x01\x12\x13\n\x0e\x44iHeatsinkTRER\x10\x8c\x01\x12\x11\n\x0c\x44iAxleSpeedF\x10\x8d\x01\x12\x13\n\x0e\x44iAxleSpeedREL\x10\x8e\x01\x12\x13\n\x0e\x44iAxleSpeedRER\x10\x8f\x01\x12\x15\n\x10\x44iSlaveTorqueCmd\x10\x90\x01\x12\x14\n\x0f\x44iTorqueActualR\x10\x91\x01\x12\x14\n\x0f\x44iTorqueActualF\x10\x92\x01\x12\x16\n\x11\x44iTorqueActualREL\x10\x93\x01\x12\x16\n\x11\x44iTorqueActualRER\x10\x94\x01\x12\x12\n\rDiStatorTempF\x10\x95\x01\x12\x14\n\x0f\x44iStatorTempREL\x10\x96\x01\x12\x14\n\x0f\x44iStatorTempRER\x10\x97\x01\x12\x0c\n\x07\x44iVBatF\x10\x98\x01\x12\x0e\n\tDiVBatREL\x10\x99\x01\x12\x0e\n\tDiVBatRER\x10\x9a\x01\x12\x14\n\x0f\x44iMotorCurrentF\x10\x9b\x01\x12\x16\n\x11\x44iMotorCurrentREL\x10\x9c\x01\x12\x16\n\x11\x44iMotorCurrentRER\x10\x9d\x01\x12\x14\n\x0f\x45nergyRemaining\x10\x9e\x01\x12\x10\n\x0bServiceMode\x10\x9f\x01\x12\r\n\x08\x42MSState\x10\xa0\x01\x12\x1f\n\x1aGuestModeMobileAccessState\x10\xa1\x01\x12\x11\n\x0c\x44\x65precated_1\x10\xa2\x01\x12\x14\n\x0f\x44\x65stinationName\x10\xa3\x01\x12\x11\n\x0c\x44iInverterTR\x10\xa4\x01\x12\x11\n\x0c\x44iInverterTF\x10\xa5\x01\x12\x13\n\x0e\x44iInverterTREL\x10\xa6\x01\x12\x13\n\x0e\x44iInverterTRER\x10\xa7\x01\x12\x13\n\x0e\x45xperimental_5\x10\xa8\x01\x12\x13\n\x0e\x45xperimental_6\x10\xa9\x01\x12\x13\n\x0e\x45xperimental_7\x10\xaa\x01\x12\x13\n\x0e\x45xperimental_8\x10\xab\x01\x12\x13\n\x0e\x45xperimental_9\x10\xac\x01\x12\x14\n\x0f\x45xperimental_10\x10\xad\x01\x12\x14\n\x0f\x45xperimental_11\x10\xae\x01\x12\x14\n\x0f\x45xperimental_12\x10\xaf\x01\x12\x14\n\x0f\x45xperimental_13\x10\xb0\x01\x12\x14\n\x0f\x45xperimental_14\x10\xb1\x01\x12\x14\n\x0f\x45xperimental_15\x10\xb2\x01*\xbf\x01\n\rChargingState\x12\x16\n\x12\x43hargeStateUnknown\x10\x00\x12\x1b\n\x17\x43hargeStateDisconnected\x10\x01\x12\x16\n\x12\x43hargeStateNoPower\x10\x02\x12\x17\n\x13\x43hargeStateStarting\x10\x03\x12\x17\n\x13\x43hargeStateCharging\x10\x04\x12\x17\n\x13\x43hargeStateComplete\x10\x05\x12\x16\n\x12\x43hargeStateStopped\x10\x06*\x91\x01\n\nShiftState\x12\x15\n\x11ShiftStateUnknown\x10\x00\x12\x15\n\x11ShiftStateInvalid\x10\x01\x12\x0f\n\x0bShiftStateP\x10\x02\x12\x0f\n\x0bShiftStateR\x10\x03\x12\x0f\n\x0bShiftStateD\x10\x04\x12\x0f\n\x0bShiftStateN\x10\x05\x12\x11\n\rShiftStateSNA\x10\x06\x42/Z-github.com/teslamotors/fleet-telemetry/protosb\x06proto3') +DESCRIPTOR = _descriptor_pool.Default().AddSerializedFile(b'\n\x12vehicle_data.proto\x12\x16telemetry.vehicle_data\x1a\x1fgoogle/protobuf/timestamp.proto\"4\n\rLocationValue\x12\x10\n\x08latitude\x18\x01 \x01(\x01\x12\x11\n\tlongitude\x18\x02 \x01(\x01\"\x86\x01\n\x05\x44oors\x12\x13\n\x0b\x44riverFront\x18\x01 \x01(\x08\x12\x16\n\x0ePassengerFront\x18\x02 \x01(\x08\x12\x12\n\nDriverRear\x18\x03 \x01(\x08\x12\x15\n\rPassengerRear\x18\x04 \x01(\x08\x12\x12\n\nTrunkFront\x18\x05 \x01(\x08\x12\x11\n\tTrunkRear\x18\x06 \x01(\x08\"4\n\x04Time\x12\x0c\n\x04hour\x18\x01 \x01(\x05\x12\x0e\n\x06minute\x18\x02 \x01(\x05\x12\x0e\n\x06second\x18\x03 \x01(\x05\"\xe2\x0f\n\x05Value\x12\x16\n\x0cstring_value\x18\x01 \x01(\tH\x00\x12\x13\n\tint_value\x18\x02 \x01(\x05H\x00\x12\x14\n\nlong_value\x18\x03 \x01(\x03H\x00\x12\x15\n\x0b\x66loat_value\x18\x04 \x01(\x02H\x00\x12\x16\n\x0c\x64ouble_value\x18\x05 \x01(\x01H\x00\x12\x17\n\rboolean_value\x18\x06 \x01(\x08H\x00\x12?\n\x0elocation_value\x18\x07 \x01(\x0b\x32%.telemetry.vehicle_data.LocationValueH\x00\x12?\n\x0e\x63harging_value\x18\x08 \x01(\x0e\x32%.telemetry.vehicle_data.ChargingStateH\x00\x12?\n\x11shift_state_value\x18\t \x01(\x0e\x32\".telemetry.vehicle_data.ShiftStateH\x00\x12\x11\n\x07invalid\x18\n \x01(\x08H\x00\x12J\n\x17lane_assist_level_value\x18\x0b \x01(\x0e\x32\'.telemetry.vehicle_data.LaneAssistLevelH\x00\x12[\n\x1dscheduled_charging_mode_value\x18\x0c \x01(\x0e\x32\x32.telemetry.vehicle_data.ScheduledChargingModeValueH\x00\x12J\n\x17sentry_mode_state_value\x18\r \x01(\x0e\x32\'.telemetry.vehicle_data.SentryModeStateH\x00\x12L\n\x18speed_assist_level_value\x18\x0e \x01(\x0e\x32(.telemetry.vehicle_data.SpeedAssistLevelH\x00\x12@\n\x0f\x62ms_state_value\x18\x0f \x01(\x0e\x32%.telemetry.vehicle_data.BMSStateValueH\x00\x12\x43\n\x13\x62uckle_status_value\x18\x10 \x01(\x0e\x32$.telemetry.vehicle_data.BuckleStatusH\x00\x12>\n\x0e\x63\x61r_type_value\x18\x11 \x01(\x0e\x32$.telemetry.vehicle_data.CarTypeValueH\x00\x12\x44\n\x11\x63harge_port_value\x18\x12 \x01(\x0e\x32\'.telemetry.vehicle_data.ChargePortValueH\x00\x12O\n\x17\x63harge_port_latch_value\x18\x13 \x01(\x0e\x32,.telemetry.vehicle_data.ChargePortLatchValueH\x00\x12\x46\n\x12\x63ruise_state_value\x18\x14 \x01(\x0e\x32(.telemetry.vehicle_data.CruiseStateValueH\x00\x12\x33\n\ndoor_value\x18\x15 \x01(\x0b\x32\x1d.telemetry.vehicle_data.DoorsH\x00\x12P\n\x1a\x64rive_inverter_state_value\x18\x16 \x01(\x0e\x32*.telemetry.vehicle_data.DriveInverterStateH\x00\x12?\n\x11hvil_status_value\x18\x17 \x01(\x0e\x32\".telemetry.vehicle_data.HvilStatusH\x00\x12\x41\n\x12window_state_value\x18\x18 \x01(\x0e\x32#.telemetry.vehicle_data.WindowStateH\x00\x12L\n\x18seat_fold_position_value\x18\x19 \x01(\x0e\x32(.telemetry.vehicle_data.SeatFoldPositionH\x00\x12L\n\x18tractor_air_status_value\x18\x1a \x01(\x0e\x32(.telemetry.vehicle_data.TractorAirStatusH\x00\x12G\n\x15\x66ollow_distance_value\x18\x1b \x01(\x0e\x32&.telemetry.vehicle_data.FollowDistanceH\x00\x12\x62\n#forward_collision_sensitivity_value\x18\x1c \x01(\x0e\x32\x33.telemetry.vehicle_data.ForwardCollisionSensitivityH\x00\x12W\n\x1eguest_mode_mobile_access_value\x18\x1d \x01(\x0e\x32-.telemetry.vehicle_data.GuestModeMobileAccessH\x00\x12L\n\x18trailer_air_status_value\x18\x1e \x01(\x0e\x32(.telemetry.vehicle_data.TrailerAirStatusH\x00\x12\x32\n\ntime_value\x18\x1f \x01(\x0b\x32\x1c.telemetry.vehicle_data.TimeH\x00\x12W\n\x1b\x64\x65tailed_charge_state_value\x18 \x01(\x0e\x32\x30.telemetry.vehicle_data.DetailedChargeStateValueH\x00\x42\x07\n\x05value\"a\n\x05\x44\x61tum\x12*\n\x03key\x18\x01 \x01(\x0e\x32\x1d.telemetry.vehicle_data.Field\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.telemetry.vehicle_data.Value\"s\n\x07Payload\x12+\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32\x1d.telemetry.vehicle_data.Datum\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0b\n\x03vin\x18\x03 \x01(\t*\x81\x1f\n\x05\x46ield\x12\x0b\n\x07Unknown\x10\x00\x12\r\n\tDriveRail\x10\x01\x12\x0f\n\x0b\x43hargeState\x10\x02\x12\x19\n\x15\x42msFullchargecomplete\x10\x03\x12\x10\n\x0cVehicleSpeed\x10\x04\x12\x0c\n\x08Odometer\x10\x05\x12\x0f\n\x0bPackVoltage\x10\x06\x12\x0f\n\x0bPackCurrent\x10\x07\x12\x07\n\x03Soc\x10\x08\x12\x0e\n\nDCDCEnable\x10\t\x12\x08\n\x04Gear\x10\n\x12\x17\n\x13IsolationResistance\x10\x0b\x12\x11\n\rPedalPosition\x10\x0c\x12\x0e\n\nBrakePedal\x10\r\x12\x0c\n\x08\x44iStateR\x10\x0e\x12\x10\n\x0c\x44iHeatsinkTR\x10\x0f\x12\x10\n\x0c\x44iAxleSpeedR\x10\x10\x12\x11\n\rDiTorquemotor\x10\x11\x12\x11\n\rDiStatorTempR\x10\x12\x12\x0b\n\x07\x44iVBatR\x10\x13\x12\x13\n\x0f\x44iMotorCurrentR\x10\x14\x12\x0c\n\x08Location\x10\x15\x12\x0c\n\x08GpsState\x10\x16\x12\x0e\n\nGpsHeading\x10\x17\x12\x16\n\x12NumBrickVoltageMax\x10\x18\x12\x13\n\x0f\x42rickVoltageMax\x10\x19\x12\x16\n\x12NumBrickVoltageMin\x10\x1a\x12\x13\n\x0f\x42rickVoltageMin\x10\x1b\x12\x14\n\x10NumModuleTempMax\x10\x1c\x12\x11\n\rModuleTempMax\x10\x1d\x12\x14\n\x10NumModuleTempMin\x10\x1e\x12\x11\n\rModuleTempMin\x10\x1f\x12\x0e\n\nRatedRange\x10 \x12\x08\n\x04Hvil\x10!\x12\x16\n\x12\x44\x43\x43hargingEnergyIn\x10\"\x12\x13\n\x0f\x44\x43\x43hargingPower\x10#\x12\x16\n\x12\x41\x43\x43hargingEnergyIn\x10$\x12\x13\n\x0f\x41\x43\x43hargingPower\x10%\x12\x12\n\x0e\x43hargeLimitSoc\x10&\x12\x16\n\x12\x46\x61stChargerPresent\x10\'\x12\x13\n\x0f\x45stBatteryRange\x10(\x12\x15\n\x11IdealBatteryRange\x10)\x12\x10\n\x0c\x42\x61tteryLevel\x10*\x12\x14\n\x10TimeToFullCharge\x10+\x12\x1e\n\x1aScheduledChargingStartTime\x10,\x12\x1c\n\x18ScheduledChargingPending\x10-\x12\x1a\n\x16ScheduledDepartureTime\x10.\x12\x1a\n\x16PreconditioningEnabled\x10/\x12\x19\n\x15ScheduledChargingMode\x10\x30\x12\x0e\n\nChargeAmps\x10\x31\x12\x17\n\x13\x43hargeEnableRequest\x10\x32\x12\x11\n\rChargerPhases\x10\x33\x12\x1d\n\x19\x43hargePortColdWeatherMode\x10\x34\x12\x18\n\x14\x43hargeCurrentRequest\x10\x35\x12\x1b\n\x17\x43hargeCurrentRequestMax\x10\x36\x12\x13\n\x0f\x42\x61tteryHeaterOn\x10\x37\x12\x18\n\x14NotEnoughPowerToHeat\x10\x38\x12\"\n\x1eSuperchargerSessionTripPlanner\x10\x39\x12\r\n\tDoorState\x10:\x12\n\n\x06Locked\x10;\x12\x0c\n\x08\x46\x64Window\x10<\x12\x0c\n\x08\x46pWindow\x10=\x12\x0c\n\x08RdWindow\x10>\x12\x0c\n\x08RpWindow\x10?\x12\x0f\n\x0bVehicleName\x10@\x12\x0e\n\nSentryMode\x10\x41\x12\x12\n\x0eSpeedLimitMode\x10\x42\x12\x13\n\x0f\x43urrentLimitMph\x10\x43\x12\x0b\n\x07Version\x10\x44\x12\x12\n\x0eTpmsPressureFl\x10\x45\x12\x12\n\x0eTpmsPressureFr\x10\x46\x12\x12\n\x0eTpmsPressureRl\x10G\x12\x12\n\x0eTpmsPressureRr\x10H\x12\x1e\n\x1aSemitruckTpmsPressureRe1L0\x10I\x12\x1e\n\x1aSemitruckTpmsPressureRe1L1\x10J\x12\x1e\n\x1aSemitruckTpmsPressureRe1R0\x10K\x12\x1e\n\x1aSemitruckTpmsPressureRe1R1\x10L\x12\x1e\n\x1aSemitruckTpmsPressureRe2L0\x10M\x12\x1e\n\x1aSemitruckTpmsPressureRe2L1\x10N\x12\x1e\n\x1aSemitruckTpmsPressureRe2R0\x10O\x12\x1e\n\x1aSemitruckTpmsPressureRe2R1\x10P\x12\x1e\n\x1aTpmsLastSeenPressureTimeFl\x10Q\x12\x1e\n\x1aTpmsLastSeenPressureTimeFr\x10R\x12\x1e\n\x1aTpmsLastSeenPressureTimeRl\x10S\x12\x1e\n\x1aTpmsLastSeenPressureTimeRr\x10T\x12\x0e\n\nInsideTemp\x10U\x12\x0f\n\x0bOutsideTemp\x10V\x12\x12\n\x0eSeatHeaterLeft\x10W\x12\x13\n\x0fSeatHeaterRight\x10X\x12\x16\n\x12SeatHeaterRearLeft\x10Y\x12\x17\n\x13SeatHeaterRearRight\x10Z\x12\x18\n\x14SeatHeaterRearCenter\x10[\x12\x17\n\x13\x41utoSeatClimateLeft\x10\\\x12\x18\n\x14\x41utoSeatClimateRight\x10]\x12\x12\n\x0e\x44riverSeatBelt\x10^\x12\x15\n\x11PassengerSeatBelt\x10_\x12\x16\n\x12\x44riverSeatOccupied\x10`\x12&\n\"SemitruckPassengerSeatFoldPosition\x10\x61\x12\x17\n\x13LateralAcceleration\x10\x62\x12\x1c\n\x18LongitudinalAcceleration\x10\x63\x12\x0f\n\x0b\x43ruiseState\x10\x64\x12\x12\n\x0e\x43ruiseSetSpeed\x10\x65\x12\x16\n\x12LifetimeEnergyUsed\x10\x66\x12\x1b\n\x17LifetimeEnergyUsedDrive\x10g\x12#\n\x1fSemitruckTractorParkBrakeStatus\x10h\x12#\n\x1fSemitruckTrailerParkBrakeStatus\x10i\x12\x11\n\rBrakePedalPos\x10j\x12\x14\n\x10RouteLastUpdated\x10k\x12\r\n\tRouteLine\x10l\x12\x12\n\x0eMilesToArrival\x10m\x12\x14\n\x10MinutesToArrival\x10n\x12\x12\n\x0eOriginLocation\x10o\x12\x17\n\x13\x44\x65stinationLocation\x10p\x12\x0b\n\x07\x43\x61rType\x10q\x12\x08\n\x04Trim\x10r\x12\x11\n\rExteriorColor\x10s\x12\r\n\tRoofColor\x10t\x12\x0e\n\nChargePort\x10u\x12\x13\n\x0f\x43hargePortLatch\x10v\x12\x12\n\x0e\x45xperimental_1\x10w\x12\x12\n\x0e\x45xperimental_2\x10x\x12\x12\n\x0e\x45xperimental_3\x10y\x12\x12\n\x0e\x45xperimental_4\x10z\x12\x14\n\x10GuestModeEnabled\x10{\x12\x15\n\x11PinToDriveEnabled\x10|\x12\x1e\n\x1aPairedPhoneKeyAndKeyFobQty\x10}\x12\x18\n\x14\x43ruiseFollowDistance\x10~\x12\x1c\n\x18\x41utomaticBlindSpotCamera\x10\x7f\x12#\n\x1e\x42lindSpotCollisionWarningChime\x10\x80\x01\x12\x16\n\x11SpeedLimitWarning\x10\x81\x01\x12\x1c\n\x17\x46orwardCollisionWarning\x10\x82\x01\x12\x1b\n\x16LaneDepartureAvoidance\x10\x83\x01\x12$\n\x1f\x45mergencyLaneDepartureAvoidance\x10\x84\x01\x12!\n\x1c\x41utomaticEmergencyBrakingOff\x10\x85\x01\x12\x1e\n\x19LifetimeEnergyGainedRegen\x10\x86\x01\x12\r\n\x08\x44iStateF\x10\x87\x01\x12\x0f\n\nDiStateREL\x10\x88\x01\x12\x0f\n\nDiStateRER\x10\x89\x01\x12\x11\n\x0c\x44iHeatsinkTF\x10\x8a\x01\x12\x13\n\x0e\x44iHeatsinkTREL\x10\x8b\x01\x12\x13\n\x0e\x44iHeatsinkTRER\x10\x8c\x01\x12\x11\n\x0c\x44iAxleSpeedF\x10\x8d\x01\x12\x13\n\x0e\x44iAxleSpeedREL\x10\x8e\x01\x12\x13\n\x0e\x44iAxleSpeedRER\x10\x8f\x01\x12\x15\n\x10\x44iSlaveTorqueCmd\x10\x90\x01\x12\x14\n\x0f\x44iTorqueActualR\x10\x91\x01\x12\x14\n\x0f\x44iTorqueActualF\x10\x92\x01\x12\x16\n\x11\x44iTorqueActualREL\x10\x93\x01\x12\x16\n\x11\x44iTorqueActualRER\x10\x94\x01\x12\x12\n\rDiStatorTempF\x10\x95\x01\x12\x14\n\x0f\x44iStatorTempREL\x10\x96\x01\x12\x14\n\x0f\x44iStatorTempRER\x10\x97\x01\x12\x0c\n\x07\x44iVBatF\x10\x98\x01\x12\x0e\n\tDiVBatREL\x10\x99\x01\x12\x0e\n\tDiVBatRER\x10\x9a\x01\x12\x14\n\x0f\x44iMotorCurrentF\x10\x9b\x01\x12\x16\n\x11\x44iMotorCurrentREL\x10\x9c\x01\x12\x16\n\x11\x44iMotorCurrentRER\x10\x9d\x01\x12\x14\n\x0f\x45nergyRemaining\x10\x9e\x01\x12\x10\n\x0bServiceMode\x10\x9f\x01\x12\r\n\x08\x42MSState\x10\xa0\x01\x12\x1f\n\x1aGuestModeMobileAccessState\x10\xa1\x01\x12\x11\n\x0c\x44\x65precated_1\x10\xa2\x01\x12\x14\n\x0f\x44\x65stinationName\x10\xa3\x01\x12\x11\n\x0c\x44iInverterTR\x10\xa4\x01\x12\x11\n\x0c\x44iInverterTF\x10\xa5\x01\x12\x13\n\x0e\x44iInverterTREL\x10\xa6\x01\x12\x13\n\x0e\x44iInverterTRER\x10\xa7\x01\x12\x13\n\x0e\x45xperimental_5\x10\xa8\x01\x12\x13\n\x0e\x45xperimental_6\x10\xa9\x01\x12\x13\n\x0e\x45xperimental_7\x10\xaa\x01\x12\x13\n\x0e\x45xperimental_8\x10\xab\x01\x12\x13\n\x0e\x45xperimental_9\x10\xac\x01\x12\x14\n\x0f\x45xperimental_10\x10\xad\x01\x12\x14\n\x0f\x45xperimental_11\x10\xae\x01\x12\x14\n\x0f\x45xperimental_12\x10\xaf\x01\x12\x14\n\x0f\x45xperimental_13\x10\xb0\x01\x12\x14\n\x0f\x45xperimental_14\x10\xb1\x01\x12\x14\n\x0f\x45xperimental_15\x10\xb2\x01\x12\x18\n\x13\x44\x65tailedChargeState\x10\xb3\x01*\xbf\x01\n\rChargingState\x12\x16\n\x12\x43hargeStateUnknown\x10\x00\x12\x1b\n\x17\x43hargeStateDisconnected\x10\x01\x12\x16\n\x12\x43hargeStateNoPower\x10\x02\x12\x17\n\x13\x43hargeStateStarting\x10\x03\x12\x17\n\x13\x43hargeStateCharging\x10\x04\x12\x17\n\x13\x43hargeStateComplete\x10\x05\x12\x16\n\x12\x43hargeStateStopped\x10\x06*\x82\x02\n\x18\x44\x65tailedChargeStateValue\x12\x1e\n\x1a\x44\x65tailedChargeStateUnknown\x10\x00\x12#\n\x1f\x44\x65tailedChargeStateDisconnected\x10\x01\x12\x1e\n\x1a\x44\x65tailedChargeStateNoPower\x10\x02\x12\x1f\n\x1b\x44\x65tailedChargeStateStarting\x10\x03\x12\x1f\n\x1b\x44\x65tailedChargeStateCharging\x10\x04\x12\x1f\n\x1b\x44\x65tailedChargeStateComplete\x10\x05\x12\x1e\n\x1a\x44\x65tailedChargeStateStopped\x10\x06*\x91\x01\n\nShiftState\x12\x15\n\x11ShiftStateUnknown\x10\x00\x12\x15\n\x11ShiftStateInvalid\x10\x01\x12\x0f\n\x0bShiftStateP\x10\x02\x12\x0f\n\x0bShiftStateR\x10\x03\x12\x0f\n\x0bShiftStateN\x10\x04\x12\x0f\n\x0bShiftStateD\x10\x05\x12\x11\n\rShiftStateSNA\x10\x06*\xbe\x01\n\x0e\x46ollowDistance\x12\x19\n\x15\x46ollowDistanceUnknown\x10\x00\x12\x13\n\x0f\x46ollowDistance1\x10\x01\x12\x13\n\x0f\x46ollowDistance2\x10\x02\x12\x13\n\x0f\x46ollowDistance3\x10\x03\x12\x13\n\x0f\x46ollowDistance4\x10\x04\x12\x13\n\x0f\x46ollowDistance5\x10\x05\x12\x13\n\x0f\x46ollowDistance6\x10\x06\x12\x13\n\x0f\x46ollowDistance7\x10\x07*\xdc\x01\n\x1b\x46orwardCollisionSensitivity\x12&\n\"ForwardCollisionSensitivityUnknown\x10\x00\x12\"\n\x1e\x46orwardCollisionSensitivityOff\x10\x01\x12#\n\x1f\x46orwardCollisionSensitivityLate\x10\x02\x12&\n\"ForwardCollisionSensitivityAverage\x10\x03\x12$\n ForwardCollisionSensitivityEarly\x10\x04*\xe4\x06\n\x15GuestModeMobileAccess\x12 \n\x1cGuestModeMobileAccessUnknown\x10\x00\x12\x1d\n\x19GuestModeMobileAccessInit\x10\x01\x12)\n%GuestModeMobileAccessNotAuthenticated\x10\x02\x12&\n\"GuestModeMobileAccessAuthenticated\x10\x03\x12\'\n#GuestModeMobileAccessAbortedDriving\x10\x04\x12\x30\n,GuestModeMobileAccessAbortedUsingRemoteStart\x10\x05\x12,\n(GuestModeMobileAccessAbortedUsingBLEKeys\x10\x06\x12)\n%GuestModeMobileAccessAbortedValetMode\x10\x07\x12,\n(GuestModeMobileAccessAbortedGuestModeOff\x10\x08\x12\x35\n1GuestModeMobileAccessAbortedDriveAuthTimeExceeded\x10\t\x12.\n*GuestModeMobileAccessAbortedNoDataReceived\x10\n\x12\x31\n-GuestModeMobileAccessRequestingFromMothership\x10\x0b\x12,\n(GuestModeMobileAccessRequestingFromAuthD\x10\x0c\x12+\n\'GuestModeMobileAccessAbortedFetchFailed\x10\r\x12/\n+GuestModeMobileAccessAbortedBadDataReceived\x10\x0e\x12&\n\"GuestModeMobileAccessShowingQRCode\x10\x0f\x12#\n\x1fGuestModeMobileAccessSwipedAway\x10\x10\x12/\n+GuestModeMobileAccessDismissedQRCodeExpired\x10\x11\x12\x31\n-GuestModeMobileAccessSucceededPairedNewBLEKey\x10\x12*}\n\x0fLaneAssistLevel\x12\x1a\n\x16LaneAssistLevelUnknown\x10\x00\x12\x17\n\x13LaneAssistLevelNone\x10\x01\x12\x1a\n\x16LaneAssistLevelWarning\x10\x02\x12\x19\n\x15LaneAssistLevelAssist\x10\x03*\xa1\x01\n\x1aScheduledChargingModeValue\x12 \n\x1cScheduledChargingModeUnknown\x10\x00\x12\x1c\n\x18ScheduledChargingModeOff\x10\x01\x12 \n\x1cScheduledChargingModeStartAt\x10\x02\x12!\n\x1dScheduledChargingModeDepartBy\x10\x03*\xc6\x01\n\x0fSentryModeState\x12\x1a\n\x16SentryModeStateUnknown\x10\x00\x12\x16\n\x12SentryModeStateOff\x10\x01\x12\x17\n\x13SentryModeStateIdle\x10\x02\x12\x18\n\x14SentryModeStateArmed\x10\x03\x12\x18\n\x14SentryModeStateAware\x10\x04\x12\x18\n\x14SentryModeStatePanic\x10\x05\x12\x18\n\x14SentryModeStateQuiet\x10\x06*\x81\x01\n\x10SpeedAssistLevel\x12\x1b\n\x17SpeedAssistLevelUnknown\x10\x00\x12\x18\n\x14SpeedAssistLevelNone\x10\x01\x12\x1b\n\x17SpeedAssistLevelDisplay\x10\x02\x12\x19\n\x15SpeedAssistLevelChime\x10\x03*\xe7\x01\n\rBMSStateValue\x12\x13\n\x0f\x42MSStateUnknown\x10\x00\x12\x13\n\x0f\x42MSStateStandby\x10\x01\x12\x11\n\rBMSStateDrive\x10\x02\x12\x13\n\x0f\x42MSStateSupport\x10\x03\x12\x12\n\x0e\x42MSStateCharge\x10\x04\x12\x10\n\x0c\x42MSStateFEIM\x10\x05\x12\x16\n\x12\x42MSStateClearFault\x10\x06\x12\x11\n\rBMSStateFault\x10\x07\x12\x10\n\x0c\x42MSStateWeld\x10\x08\x12\x10\n\x0c\x42MSStateTest\x10\t\x12\x0f\n\x0b\x42MSStateSNA\x10\n*t\n\x0c\x42uckleStatus\x12\x17\n\x13\x42uckleStatusUnknown\x10\x00\x12\x19\n\x15\x42uckleStatusUnlatched\x10\x01\x12\x17\n\x13\x42uckleStatusLatched\x10\x02\x12\x17\n\x13\x42uckleStatusFaulted\x10\x03*\x9b\x01\n\x0c\x43\x61rTypeValue\x12\x12\n\x0e\x43\x61rTypeUnknown\x10\x00\x12\x11\n\rCarTypeModelS\x10\x01\x12\x11\n\rCarTypeModelX\x10\x02\x12\x11\n\rCarTypeModel3\x10\x03\x12\x11\n\rCarTypeModelY\x10\x04\x12\x14\n\x10\x43\x61rTypeSemiTruck\x10\x05\x12\x15\n\x11\x43\x61rTypeCybertruck\x10\x06*q\n\x0f\x43hargePortValue\x12\x15\n\x11\x43hargePortUnknown\x10\x00\x12\x10\n\x0c\x43hargePortUS\x10\x01\x12\x10\n\x0c\x43hargePortEU\x10\x02\x12\x10\n\x0c\x43hargePortGB\x10\x03\x12\x11\n\rChargePortCCS\x10\x04*\xa2\x01\n\x14\x43hargePortLatchValue\x12\x1a\n\x16\x43hargePortLatchUnknown\x10\x00\x12\x16\n\x12\x43hargePortLatchSNA\x10\x01\x12\x1d\n\x19\x43hargePortLatchDisengaged\x10\x02\x12\x1a\n\x16\x43hargePortLatchEngaged\x10\x03\x12\x1b\n\x17\x43hargePortLatchBlocking\x10\x04*\xe6\x01\n\x10\x43ruiseStateValue\x12\x16\n\x12\x43ruiseStateUnknown\x10\x00\x12\x12\n\x0e\x43ruiseStateOff\x10\x01\x12\x16\n\x12\x43ruiseStateStandby\x10\x02\x12\x11\n\rCruiseStateOn\x10\x03\x12\x19\n\x15\x43ruiseStateStandstill\x10\x04\x12\x17\n\x13\x43ruiseStateOverride\x10\x05\x12\x14\n\x10\x43ruiseStateFault\x10\x06\x12\x17\n\x13\x43ruiseStatePreFault\x10\x07\x12\x18\n\x14\x43ruiseStatePreCancel\x10\x08*\xcd\x01\n\x12\x44riveInverterState\x12\x1d\n\x19\x44riveInverterStateUnknown\x10\x00\x12!\n\x1d\x44riveInverterStateUnavailable\x10\x01\x12\x1d\n\x19\x44riveInverterStateStandby\x10\x02\x12\x1b\n\x17\x44riveInverterStateFault\x10\x03\x12\x1b\n\x17\x44riveInverterStateAbort\x10\x04\x12\x1c\n\x18\x44riveInverterStateEnable\x10\x05*J\n\nHvilStatus\x12\x15\n\x11HvilStatusUnknown\x10\x00\x12\x13\n\x0fHvilStatusFault\x10\x01\x12\x10\n\x0cHvilStatusOK\x10\x02*q\n\x0bWindowState\x12\x16\n\x12WindowStateUnknown\x10\x00\x12\x15\n\x11WindowStateClosed\x10\x01\x12\x1c\n\x18WindowStatePartiallyOpen\x10\x02\x12\x15\n\x11WindowStateOpened\x10\x03*\xc2\x01\n\x10SeatFoldPosition\x12\x1b\n\x17SeatFoldPositionUnknown\x10\x00\x12\x17\n\x13SeatFoldPositionSNA\x10\x01\x12\x1b\n\x17SeatFoldPositionFaulted\x10\x02\x12!\n\x1dSeatFoldPositionNotConfigured\x10\x03\x12\x1a\n\x16SeatFoldPositionFolded\x10\x04\x12\x1c\n\x18SeatFoldPositionUnfolded\x10\x05*\x8e\x02\n\x10TractorAirStatus\x12\x1b\n\x17TractorAirStatusUnknown\x10\x00\x12 \n\x1cTractorAirStatusNotAvailable\x10\x01\x12\x19\n\x15TractorAirStatusError\x10\x02\x12\x1b\n\x17TractorAirStatusCharged\x10\x03\x12\x30\n,TractorAirStatusBuildingPressureIntermediate\x10\x04\x12\x32\n.TractorAirStatusExhaustingPressureIntermediate\x10\x05\x12\x1d\n\x19TractorAirStatusExhausted\x10\x06*\xa8\x02\n\x10TrailerAirStatus\x12\x1b\n\x17TrailerAirStatusUnknown\x10\x00\x12\x17\n\x13TrailerAirStatusSNA\x10\x01\x12\x1b\n\x17TrailerAirStatusInvalid\x10\x02\x12\x1f\n\x1bTrailerAirStatusBobtailMode\x10\x03\x12\x1b\n\x17TrailerAirStatusCharged\x10\x04\x12\x30\n,TrailerAirStatusBuildingPressureIntermediate\x10\x05\x12\x32\n.TrailerAirStatusExhaustingPressureIntermediate\x10\x06\x12\x1d\n\x19TrailerAirStatusExhausted\x10\x07\x42/Z-github.com/teslamotors/fleet-telemetry/protosb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'vehicle_data_pb2', _globals) -if _descriptor._USE_C_DESCRIPTORS == False: - _globals['DESCRIPTOR']._options = None +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'Z-github.com/teslamotors/fleet-telemetry/protos' - _globals['_FIELD']._serialized_start=722 - _globals['_FIELD']._serialized_end=4665 - _globals['_CHARGINGSTATE']._serialized_start=4668 - _globals['_CHARGINGSTATE']._serialized_end=4859 - _globals['_SHIFTSTATE']._serialized_start=4862 - _globals['_SHIFTSTATE']._serialized_end=5007 + _globals['_FIELD']._serialized_start=2562 + _globals['_FIELD']._serialized_end=6531 + _globals['_CHARGINGSTATE']._serialized_start=6534 + _globals['_CHARGINGSTATE']._serialized_end=6725 + _globals['_DETAILEDCHARGESTATEVALUE']._serialized_start=6728 + _globals['_DETAILEDCHARGESTATEVALUE']._serialized_end=6986 + _globals['_SHIFTSTATE']._serialized_start=6989 + _globals['_SHIFTSTATE']._serialized_end=7134 + _globals['_FOLLOWDISTANCE']._serialized_start=7137 + _globals['_FOLLOWDISTANCE']._serialized_end=7327 + _globals['_FORWARDCOLLISIONSENSITIVITY']._serialized_start=7330 + _globals['_FORWARDCOLLISIONSENSITIVITY']._serialized_end=7550 + _globals['_GUESTMODEMOBILEACCESS']._serialized_start=7553 + _globals['_GUESTMODEMOBILEACCESS']._serialized_end=8421 + _globals['_LANEASSISTLEVEL']._serialized_start=8423 + _globals['_LANEASSISTLEVEL']._serialized_end=8548 + _globals['_SCHEDULEDCHARGINGMODEVALUE']._serialized_start=8551 + _globals['_SCHEDULEDCHARGINGMODEVALUE']._serialized_end=8712 + _globals['_SENTRYMODESTATE']._serialized_start=8715 + _globals['_SENTRYMODESTATE']._serialized_end=8913 + _globals['_SPEEDASSISTLEVEL']._serialized_start=8916 + _globals['_SPEEDASSISTLEVEL']._serialized_end=9045 + _globals['_BMSSTATEVALUE']._serialized_start=9048 + _globals['_BMSSTATEVALUE']._serialized_end=9279 + _globals['_BUCKLESTATUS']._serialized_start=9281 + _globals['_BUCKLESTATUS']._serialized_end=9397 + _globals['_CARTYPEVALUE']._serialized_start=9400 + _globals['_CARTYPEVALUE']._serialized_end=9555 + _globals['_CHARGEPORTVALUE']._serialized_start=9557 + _globals['_CHARGEPORTVALUE']._serialized_end=9670 + _globals['_CHARGEPORTLATCHVALUE']._serialized_start=9673 + _globals['_CHARGEPORTLATCHVALUE']._serialized_end=9835 + _globals['_CRUISESTATEVALUE']._serialized_start=9838 + _globals['_CRUISESTATEVALUE']._serialized_end=10068 + _globals['_DRIVEINVERTERSTATE']._serialized_start=10071 + _globals['_DRIVEINVERTERSTATE']._serialized_end=10276 + _globals['_HVILSTATUS']._serialized_start=10278 + _globals['_HVILSTATUS']._serialized_end=10352 + _globals['_WINDOWSTATE']._serialized_start=10354 + _globals['_WINDOWSTATE']._serialized_end=10467 + _globals['_SEATFOLDPOSITION']._serialized_start=10470 + _globals['_SEATFOLDPOSITION']._serialized_end=10664 + _globals['_TRACTORAIRSTATUS']._serialized_start=10667 + _globals['_TRACTORAIRSTATUS']._serialized_end=10937 + _globals['_TRAILERAIRSTATUS']._serialized_start=10940 + _globals['_TRAILERAIRSTATUS']._serialized_end=11236 _globals['_LOCATIONVALUE']._serialized_start=79 _globals['_LOCATIONVALUE']._serialized_end=131 - _globals['_VALUE']._serialized_start=134 - _globals['_VALUE']._serialized_end=503 - _globals['_DATUM']._serialized_start=505 - _globals['_DATUM']._serialized_end=602 - _globals['_PAYLOAD']._serialized_start=604 - _globals['_PAYLOAD']._serialized_end=719 + _globals['_DOORS']._serialized_start=134 + _globals['_DOORS']._serialized_end=268 + _globals['_TIME']._serialized_start=270 + _globals['_TIME']._serialized_end=322 + _globals['_VALUE']._serialized_start=325 + _globals['_VALUE']._serialized_end=2343 + _globals['_DATUM']._serialized_start=2345 + _globals['_DATUM']._serialized_end=2442 + _globals['_PAYLOAD']._serialized_start=2444 + _globals['_PAYLOAD']._serialized_end=2559 # @@protoc_insertion_point(module_scope) diff --git a/protos/python/vehicle_error_pb2.py b/protos/python/vehicle_error_pb2.py index 5c6836bf..36a29d03 100644 --- a/protos/python/vehicle_error_pb2.py +++ b/protos/python/vehicle_error_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: vehicle_error.proto -# Protobuf Python Version: 4.25.1 +# Protobuf Python Version: 5.26.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -20,10 +20,10 @@ _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'vehicle_error_pb2', _globals) -if _descriptor._USE_C_DESCRIPTORS == False: - _globals['DESCRIPTOR']._options = None +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'Z-github.com/teslamotors/fleet-telemetry/protos' - _globals['_VEHICLEERROR_TAGSENTRY']._options = None + _globals['_VEHICLEERROR_TAGSENTRY']._loaded_options = None _globals['_VEHICLEERROR_TAGSENTRY']._serialized_options = b'8\001' _globals['_VEHICLEERRORS']._serialized_start=82 _globals['_VEHICLEERRORS']._serialized_end=213 diff --git a/protos/python/vehicle_metric_pb2.py b/protos/python/vehicle_metric_pb2.py index 139cad62..d65825a7 100644 --- a/protos/python/vehicle_metric_pb2.py +++ b/protos/python/vehicle_metric_pb2.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # Generated by the protocol buffer compiler. DO NOT EDIT! # source: vehicle_metric.proto -# Protobuf Python Version: 4.25.1 +# Protobuf Python Version: 5.26.1 """Generated protocol buffer code.""" from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor_pool as _descriptor_pool @@ -20,10 +20,10 @@ _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) _builder.BuildTopDescriptorsAndMessages(DESCRIPTOR, 'vehicle_metric_pb2', _globals) -if _descriptor._USE_C_DESCRIPTORS == False: - _globals['DESCRIPTOR']._options = None +if not _descriptor._USE_C_DESCRIPTORS: + _globals['DESCRIPTOR']._loaded_options = None _globals['DESCRIPTOR']._serialized_options = b'Z-github.com/teslamotors/fleet-telemetry/protos' - _globals['_METRIC_TAGSENTRY']._options = None + _globals['_METRIC_TAGSENTRY']._loaded_options = None _globals['_METRIC_TAGSENTRY']._serialized_options = b'8\001' _globals['_VEHICLEMETRICS']._serialized_start=85 _globals['_VEHICLEMETRICS']._serialized_end=214 diff --git a/protos/ruby/vehicle_alert_pb.rb b/protos/ruby/vehicle_alert_pb.rb index 83a09075..816b26a3 100644 --- a/protos/ruby/vehicle_alert_pb.rb +++ b/protos/ruby/vehicle_alert_pb.rb @@ -10,29 +10,7 @@ descriptor_data = "\n\x13vehicle_alert.proto\x12\x18telemetry.vehicle_alerts\x1a\x1fgoogle/protobuf/timestamp.proto\"\x84\x01\n\rVehicleAlerts\x12\x36\n\x06\x61lerts\x18\x01 \x03(\x0b\x32&.telemetry.vehicle_alerts.VehicleAlert\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0b\n\x03vin\x18\x03 \x01(\t\"\xb1\x01\n\x0cVehicleAlert\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x35\n\taudiences\x18\x02 \x03(\x0e\x32\".telemetry.vehicle_alerts.Audience\x12.\n\nstarted_at\x18\x03 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12,\n\x08\x65nded_at\x18\x04 \x01(\x0b\x32\x1a.google.protobuf.Timestamp*B\n\x08\x41udience\x12\x0b\n\x07Unknown\x10\x00\x12\x0c\n\x08\x43ustomer\x10\x01\x12\x0b\n\x07Service\x10\x02\x12\x0e\n\nServiceFix\x10\x03\x42/Z-github.com/teslamotors/fleet-telemetry/protosb\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool - -begin - pool.add_serialized_file(descriptor_data) -rescue TypeError - # Compatibility code: will be removed in the next major version. - require 'google/protobuf/descriptor_pb' - parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data) - parsed.clear_dependency - serialized = parsed.class.encode(parsed) - file = pool.add_serialized_file(serialized) - warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" - imports = [ - ["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"], - ] - imports.each do |type_name, expected_filename| - import_file = pool.lookup(type_name).file_descriptor - if import_file.name != expected_filename - warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}" - end - end - warn "Each proto file must use a consistent fully-qualified name." - warn "This will become an error in the next major version." -end +pool.add_serialized_file(descriptor_data) module Telemetry module VehicleAlerts diff --git a/protos/ruby/vehicle_data_pb.rb b/protos/ruby/vehicle_data_pb.rb index 8f7cf7b2..31299dc0 100644 --- a/protos/ruby/vehicle_data_pb.rb +++ b/protos/ruby/vehicle_data_pb.rb @@ -7,41 +7,41 @@ require 'google/protobuf/timestamp_pb' -descriptor_data = "\n\x12vehicle_data.proto\x12\x16telemetry.vehicle_data\x1a\x1fgoogle/protobuf/timestamp.proto\"4\n\rLocationValue\x12\x10\n\x08latitude\x18\x01 \x01(\x01\x12\x11\n\tlongitude\x18\x02 \x01(\x01\"\xf1\x02\n\x05Value\x12\x16\n\x0cstring_value\x18\x01 \x01(\tH\x00\x12\x13\n\tint_value\x18\x02 \x01(\x05H\x00\x12\x14\n\nlong_value\x18\x03 \x01(\x03H\x00\x12\x15\n\x0b\x66loat_value\x18\x04 \x01(\x02H\x00\x12\x16\n\x0c\x64ouble_value\x18\x05 \x01(\x01H\x00\x12\x17\n\rboolean_value\x18\x06 \x01(\x08H\x00\x12?\n\x0elocation_value\x18\x07 \x01(\x0b\x32%.telemetry.vehicle_data.LocationValueH\x00\x12?\n\x0e\x63harging_value\x18\x08 \x01(\x0e\x32%.telemetry.vehicle_data.ChargingStateH\x00\x12?\n\x11shift_state_value\x18\t \x01(\x0e\x32\".telemetry.vehicle_data.ShiftStateH\x00\x12\x11\n\x07invalid\x18\n \x01(\x08H\x00\x42\x07\n\x05value\"a\n\x05\x44\x61tum\x12*\n\x03key\x18\x01 \x01(\x0e\x32\x1d.telemetry.vehicle_data.Field\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.telemetry.vehicle_data.Value\"s\n\x07Payload\x12+\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32\x1d.telemetry.vehicle_data.Datum\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0b\n\x03vin\x18\x03 \x01(\t*\xe7\x1e\n\x05\x46ield\x12\x0b\n\x07Unknown\x10\x00\x12\r\n\tDriveRail\x10\x01\x12\x0f\n\x0b\x43hargeState\x10\x02\x12\x19\n\x15\x42msFullchargecomplete\x10\x03\x12\x10\n\x0cVehicleSpeed\x10\x04\x12\x0c\n\x08Odometer\x10\x05\x12\x0f\n\x0bPackVoltage\x10\x06\x12\x0f\n\x0bPackCurrent\x10\x07\x12\x07\n\x03Soc\x10\x08\x12\x0e\n\nDCDCEnable\x10\t\x12\x08\n\x04Gear\x10\n\x12\x17\n\x13IsolationResistance\x10\x0b\x12\x11\n\rPedalPosition\x10\x0c\x12\x0e\n\nBrakePedal\x10\r\x12\x0c\n\x08\x44iStateR\x10\x0e\x12\x10\n\x0c\x44iHeatsinkTR\x10\x0f\x12\x10\n\x0c\x44iAxleSpeedR\x10\x10\x12\x11\n\rDiTorquemotor\x10\x11\x12\x11\n\rDiStatorTempR\x10\x12\x12\x0b\n\x07\x44iVBatR\x10\x13\x12\x13\n\x0f\x44iMotorCurrentR\x10\x14\x12\x0c\n\x08Location\x10\x15\x12\x0c\n\x08GpsState\x10\x16\x12\x0e\n\nGpsHeading\x10\x17\x12\x16\n\x12NumBrickVoltageMax\x10\x18\x12\x13\n\x0f\x42rickVoltageMax\x10\x19\x12\x16\n\x12NumBrickVoltageMin\x10\x1a\x12\x13\n\x0f\x42rickVoltageMin\x10\x1b\x12\x14\n\x10NumModuleTempMax\x10\x1c\x12\x11\n\rModuleTempMax\x10\x1d\x12\x14\n\x10NumModuleTempMin\x10\x1e\x12\x11\n\rModuleTempMin\x10\x1f\x12\x0e\n\nRatedRange\x10 \x12\x08\n\x04Hvil\x10!\x12\x16\n\x12\x44\x43\x43hargingEnergyIn\x10\"\x12\x13\n\x0f\x44\x43\x43hargingPower\x10#\x12\x16\n\x12\x41\x43\x43hargingEnergyIn\x10$\x12\x13\n\x0f\x41\x43\x43hargingPower\x10%\x12\x12\n\x0e\x43hargeLimitSoc\x10&\x12\x16\n\x12\x46\x61stChargerPresent\x10\'\x12\x13\n\x0f\x45stBatteryRange\x10(\x12\x15\n\x11IdealBatteryRange\x10)\x12\x10\n\x0c\x42\x61tteryLevel\x10*\x12\x14\n\x10TimeToFullCharge\x10+\x12\x1e\n\x1aScheduledChargingStartTime\x10,\x12\x1c\n\x18ScheduledChargingPending\x10-\x12\x1a\n\x16ScheduledDepartureTime\x10.\x12\x1a\n\x16PreconditioningEnabled\x10/\x12\x19\n\x15ScheduledChargingMode\x10\x30\x12\x0e\n\nChargeAmps\x10\x31\x12\x17\n\x13\x43hargeEnableRequest\x10\x32\x12\x11\n\rChargerPhases\x10\x33\x12\x1d\n\x19\x43hargePortColdWeatherMode\x10\x34\x12\x18\n\x14\x43hargeCurrentRequest\x10\x35\x12\x1b\n\x17\x43hargeCurrentRequestMax\x10\x36\x12\x13\n\x0f\x42\x61tteryHeaterOn\x10\x37\x12\x18\n\x14NotEnoughPowerToHeat\x10\x38\x12\"\n\x1eSuperchargerSessionTripPlanner\x10\x39\x12\r\n\tDoorState\x10:\x12\n\n\x06Locked\x10;\x12\x0c\n\x08\x46\x64Window\x10<\x12\x0c\n\x08\x46pWindow\x10=\x12\x0c\n\x08RdWindow\x10>\x12\x0c\n\x08RpWindow\x10?\x12\x0f\n\x0bVehicleName\x10@\x12\x0e\n\nSentryMode\x10\x41\x12\x12\n\x0eSpeedLimitMode\x10\x42\x12\x13\n\x0f\x43urrentLimitMph\x10\x43\x12\x0b\n\x07Version\x10\x44\x12\x12\n\x0eTpmsPressureFl\x10\x45\x12\x12\n\x0eTpmsPressureFr\x10\x46\x12\x12\n\x0eTpmsPressureRl\x10G\x12\x12\n\x0eTpmsPressureRr\x10H\x12\x1e\n\x1aSemitruckTpmsPressureRe1L0\x10I\x12\x1e\n\x1aSemitruckTpmsPressureRe1L1\x10J\x12\x1e\n\x1aSemitruckTpmsPressureRe1R0\x10K\x12\x1e\n\x1aSemitruckTpmsPressureRe1R1\x10L\x12\x1e\n\x1aSemitruckTpmsPressureRe2L0\x10M\x12\x1e\n\x1aSemitruckTpmsPressureRe2L1\x10N\x12\x1e\n\x1aSemitruckTpmsPressureRe2R0\x10O\x12\x1e\n\x1aSemitruckTpmsPressureRe2R1\x10P\x12\x1e\n\x1aTpmsLastSeenPressureTimeFl\x10Q\x12\x1e\n\x1aTpmsLastSeenPressureTimeFr\x10R\x12\x1e\n\x1aTpmsLastSeenPressureTimeRl\x10S\x12\x1e\n\x1aTpmsLastSeenPressureTimeRr\x10T\x12\x0e\n\nInsideTemp\x10U\x12\x0f\n\x0bOutsideTemp\x10V\x12\x12\n\x0eSeatHeaterLeft\x10W\x12\x13\n\x0fSeatHeaterRight\x10X\x12\x16\n\x12SeatHeaterRearLeft\x10Y\x12\x17\n\x13SeatHeaterRearRight\x10Z\x12\x18\n\x14SeatHeaterRearCenter\x10[\x12\x17\n\x13\x41utoSeatClimateLeft\x10\\\x12\x18\n\x14\x41utoSeatClimateRight\x10]\x12\x12\n\x0e\x44riverSeatBelt\x10^\x12\x15\n\x11PassengerSeatBelt\x10_\x12\x16\n\x12\x44riverSeatOccupied\x10`\x12&\n\"SemitruckPassengerSeatFoldPosition\x10\x61\x12\x17\n\x13LateralAcceleration\x10\x62\x12\x1c\n\x18LongitudinalAcceleration\x10\x63\x12\x0f\n\x0b\x43ruiseState\x10\x64\x12\x12\n\x0e\x43ruiseSetSpeed\x10\x65\x12\x16\n\x12LifetimeEnergyUsed\x10\x66\x12\x1b\n\x17LifetimeEnergyUsedDrive\x10g\x12#\n\x1fSemitruckTractorParkBrakeStatus\x10h\x12#\n\x1fSemitruckTrailerParkBrakeStatus\x10i\x12\x11\n\rBrakePedalPos\x10j\x12\x14\n\x10RouteLastUpdated\x10k\x12\r\n\tRouteLine\x10l\x12\x12\n\x0eMilesToArrival\x10m\x12\x14\n\x10MinutesToArrival\x10n\x12\x12\n\x0eOriginLocation\x10o\x12\x17\n\x13\x44\x65stinationLocation\x10p\x12\x0b\n\x07\x43\x61rType\x10q\x12\x08\n\x04Trim\x10r\x12\x11\n\rExteriorColor\x10s\x12\r\n\tRoofColor\x10t\x12\x0e\n\nChargePort\x10u\x12\x13\n\x0f\x43hargePortLatch\x10v\x12\x12\n\x0e\x45xperimental_1\x10w\x12\x12\n\x0e\x45xperimental_2\x10x\x12\x12\n\x0e\x45xperimental_3\x10y\x12\x12\n\x0e\x45xperimental_4\x10z\x12\x14\n\x10GuestModeEnabled\x10{\x12\x15\n\x11PinToDriveEnabled\x10|\x12\x1e\n\x1aPairedPhoneKeyAndKeyFobQty\x10}\x12\x18\n\x14\x43ruiseFollowDistance\x10~\x12\x1c\n\x18\x41utomaticBlindSpotCamera\x10\x7f\x12#\n\x1e\x42lindSpotCollisionWarningChime\x10\x80\x01\x12\x16\n\x11SpeedLimitWarning\x10\x81\x01\x12\x1c\n\x17\x46orwardCollisionWarning\x10\x82\x01\x12\x1b\n\x16LaneDepartureAvoidance\x10\x83\x01\x12$\n\x1f\x45mergencyLaneDepartureAvoidance\x10\x84\x01\x12!\n\x1c\x41utomaticEmergencyBrakingOff\x10\x85\x01\x12\x1e\n\x19LifetimeEnergyGainedRegen\x10\x86\x01\x12\r\n\x08\x44iStateF\x10\x87\x01\x12\x0f\n\nDiStateREL\x10\x88\x01\x12\x0f\n\nDiStateRER\x10\x89\x01\x12\x11\n\x0c\x44iHeatsinkTF\x10\x8a\x01\x12\x13\n\x0e\x44iHeatsinkTREL\x10\x8b\x01\x12\x13\n\x0e\x44iHeatsinkTRER\x10\x8c\x01\x12\x11\n\x0c\x44iAxleSpeedF\x10\x8d\x01\x12\x13\n\x0e\x44iAxleSpeedREL\x10\x8e\x01\x12\x13\n\x0e\x44iAxleSpeedRER\x10\x8f\x01\x12\x15\n\x10\x44iSlaveTorqueCmd\x10\x90\x01\x12\x14\n\x0f\x44iTorqueActualR\x10\x91\x01\x12\x14\n\x0f\x44iTorqueActualF\x10\x92\x01\x12\x16\n\x11\x44iTorqueActualREL\x10\x93\x01\x12\x16\n\x11\x44iTorqueActualRER\x10\x94\x01\x12\x12\n\rDiStatorTempF\x10\x95\x01\x12\x14\n\x0f\x44iStatorTempREL\x10\x96\x01\x12\x14\n\x0f\x44iStatorTempRER\x10\x97\x01\x12\x0c\n\x07\x44iVBatF\x10\x98\x01\x12\x0e\n\tDiVBatREL\x10\x99\x01\x12\x0e\n\tDiVBatRER\x10\x9a\x01\x12\x14\n\x0f\x44iMotorCurrentF\x10\x9b\x01\x12\x16\n\x11\x44iMotorCurrentREL\x10\x9c\x01\x12\x16\n\x11\x44iMotorCurrentRER\x10\x9d\x01\x12\x14\n\x0f\x45nergyRemaining\x10\x9e\x01\x12\x10\n\x0bServiceMode\x10\x9f\x01\x12\r\n\x08\x42MSState\x10\xa0\x01\x12\x1f\n\x1aGuestModeMobileAccessState\x10\xa1\x01\x12\x11\n\x0c\x44\x65precated_1\x10\xa2\x01\x12\x14\n\x0f\x44\x65stinationName\x10\xa3\x01\x12\x11\n\x0c\x44iInverterTR\x10\xa4\x01\x12\x11\n\x0c\x44iInverterTF\x10\xa5\x01\x12\x13\n\x0e\x44iInverterTREL\x10\xa6\x01\x12\x13\n\x0e\x44iInverterTRER\x10\xa7\x01\x12\x13\n\x0e\x45xperimental_5\x10\xa8\x01\x12\x13\n\x0e\x45xperimental_6\x10\xa9\x01\x12\x13\n\x0e\x45xperimental_7\x10\xaa\x01\x12\x13\n\x0e\x45xperimental_8\x10\xab\x01\x12\x13\n\x0e\x45xperimental_9\x10\xac\x01\x12\x14\n\x0f\x45xperimental_10\x10\xad\x01\x12\x14\n\x0f\x45xperimental_11\x10\xae\x01\x12\x14\n\x0f\x45xperimental_12\x10\xaf\x01\x12\x14\n\x0f\x45xperimental_13\x10\xb0\x01\x12\x14\n\x0f\x45xperimental_14\x10\xb1\x01\x12\x14\n\x0f\x45xperimental_15\x10\xb2\x01*\xbf\x01\n\rChargingState\x12\x16\n\x12\x43hargeStateUnknown\x10\x00\x12\x1b\n\x17\x43hargeStateDisconnected\x10\x01\x12\x16\n\x12\x43hargeStateNoPower\x10\x02\x12\x17\n\x13\x43hargeStateStarting\x10\x03\x12\x17\n\x13\x43hargeStateCharging\x10\x04\x12\x17\n\x13\x43hargeStateComplete\x10\x05\x12\x16\n\x12\x43hargeStateStopped\x10\x06*\x91\x01\n\nShiftState\x12\x15\n\x11ShiftStateUnknown\x10\x00\x12\x15\n\x11ShiftStateInvalid\x10\x01\x12\x0f\n\x0bShiftStateP\x10\x02\x12\x0f\n\x0bShiftStateR\x10\x03\x12\x0f\n\x0bShiftStateD\x10\x04\x12\x0f\n\x0bShiftStateN\x10\x05\x12\x11\n\rShiftStateSNA\x10\x06\x42/Z-github.com/teslamotors/fleet-telemetry/protosb\x06proto3" +descriptor_data = "\n\x12vehicle_data.proto\x12\x16telemetry.vehicle_data\x1a\x1fgoogle/protobuf/timestamp.proto\"4\n\rLocationValue\x12\x10\n\x08latitude\x18\x01 \x01(\x01\x12\x11\n\tlongitude\x18\x02 \x01(\x01\"\x86\x01\n\x05\x44oors\x12\x13\n\x0b\x44riverFront\x18\x01 \x01(\x08\x12\x16\n\x0ePassengerFront\x18\x02 \x01(\x08\x12\x12\n\nDriverRear\x18\x03 \x01(\x08\x12\x15\n\rPassengerRear\x18\x04 \x01(\x08\x12\x12\n\nTrunkFront\x18\x05 \x01(\x08\x12\x11\n\tTrunkRear\x18\x06 \x01(\x08\"4\n\x04Time\x12\x0c\n\x04hour\x18\x01 \x01(\x05\x12\x0e\n\x06minute\x18\x02 \x01(\x05\x12\x0e\n\x06second\x18\x03 \x01(\x05\"\xe2\x0f\n\x05Value\x12\x16\n\x0cstring_value\x18\x01 \x01(\tH\x00\x12\x13\n\tint_value\x18\x02 \x01(\x05H\x00\x12\x14\n\nlong_value\x18\x03 \x01(\x03H\x00\x12\x15\n\x0b\x66loat_value\x18\x04 \x01(\x02H\x00\x12\x16\n\x0c\x64ouble_value\x18\x05 \x01(\x01H\x00\x12\x17\n\rboolean_value\x18\x06 \x01(\x08H\x00\x12?\n\x0elocation_value\x18\x07 \x01(\x0b\x32%.telemetry.vehicle_data.LocationValueH\x00\x12?\n\x0e\x63harging_value\x18\x08 \x01(\x0e\x32%.telemetry.vehicle_data.ChargingStateH\x00\x12?\n\x11shift_state_value\x18\t \x01(\x0e\x32\".telemetry.vehicle_data.ShiftStateH\x00\x12\x11\n\x07invalid\x18\n \x01(\x08H\x00\x12J\n\x17lane_assist_level_value\x18\x0b \x01(\x0e\x32\'.telemetry.vehicle_data.LaneAssistLevelH\x00\x12[\n\x1dscheduled_charging_mode_value\x18\x0c \x01(\x0e\x32\x32.telemetry.vehicle_data.ScheduledChargingModeValueH\x00\x12J\n\x17sentry_mode_state_value\x18\r \x01(\x0e\x32\'.telemetry.vehicle_data.SentryModeStateH\x00\x12L\n\x18speed_assist_level_value\x18\x0e \x01(\x0e\x32(.telemetry.vehicle_data.SpeedAssistLevelH\x00\x12@\n\x0f\x62ms_state_value\x18\x0f \x01(\x0e\x32%.telemetry.vehicle_data.BMSStateValueH\x00\x12\x43\n\x13\x62uckle_status_value\x18\x10 \x01(\x0e\x32$.telemetry.vehicle_data.BuckleStatusH\x00\x12>\n\x0e\x63\x61r_type_value\x18\x11 \x01(\x0e\x32$.telemetry.vehicle_data.CarTypeValueH\x00\x12\x44\n\x11\x63harge_port_value\x18\x12 \x01(\x0e\x32\'.telemetry.vehicle_data.ChargePortValueH\x00\x12O\n\x17\x63harge_port_latch_value\x18\x13 \x01(\x0e\x32,.telemetry.vehicle_data.ChargePortLatchValueH\x00\x12\x46\n\x12\x63ruise_state_value\x18\x14 \x01(\x0e\x32(.telemetry.vehicle_data.CruiseStateValueH\x00\x12\x33\n\ndoor_value\x18\x15 \x01(\x0b\x32\x1d.telemetry.vehicle_data.DoorsH\x00\x12P\n\x1a\x64rive_inverter_state_value\x18\x16 \x01(\x0e\x32*.telemetry.vehicle_data.DriveInverterStateH\x00\x12?\n\x11hvil_status_value\x18\x17 \x01(\x0e\x32\".telemetry.vehicle_data.HvilStatusH\x00\x12\x41\n\x12window_state_value\x18\x18 \x01(\x0e\x32#.telemetry.vehicle_data.WindowStateH\x00\x12L\n\x18seat_fold_position_value\x18\x19 \x01(\x0e\x32(.telemetry.vehicle_data.SeatFoldPositionH\x00\x12L\n\x18tractor_air_status_value\x18\x1a \x01(\x0e\x32(.telemetry.vehicle_data.TractorAirStatusH\x00\x12G\n\x15\x66ollow_distance_value\x18\x1b \x01(\x0e\x32&.telemetry.vehicle_data.FollowDistanceH\x00\x12\x62\n#forward_collision_sensitivity_value\x18\x1c \x01(\x0e\x32\x33.telemetry.vehicle_data.ForwardCollisionSensitivityH\x00\x12W\n\x1eguest_mode_mobile_access_value\x18\x1d \x01(\x0e\x32-.telemetry.vehicle_data.GuestModeMobileAccessH\x00\x12L\n\x18trailer_air_status_value\x18\x1e \x01(\x0e\x32(.telemetry.vehicle_data.TrailerAirStatusH\x00\x12\x32\n\ntime_value\x18\x1f \x01(\x0b\x32\x1c.telemetry.vehicle_data.TimeH\x00\x12W\n\x1b\x64\x65tailed_charge_state_value\x18 \x01(\x0e\x32\x30.telemetry.vehicle_data.DetailedChargeStateValueH\x00\x42\x07\n\x05value\"a\n\x05\x44\x61tum\x12*\n\x03key\x18\x01 \x01(\x0e\x32\x1d.telemetry.vehicle_data.Field\x12,\n\x05value\x18\x02 \x01(\x0b\x32\x1d.telemetry.vehicle_data.Value\"s\n\x07Payload\x12+\n\x04\x64\x61ta\x18\x01 \x03(\x0b\x32\x1d.telemetry.vehicle_data.Datum\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0b\n\x03vin\x18\x03 \x01(\t*\x81\x1f\n\x05\x46ield\x12\x0b\n\x07Unknown\x10\x00\x12\r\n\tDriveRail\x10\x01\x12\x0f\n\x0b\x43hargeState\x10\x02\x12\x19\n\x15\x42msFullchargecomplete\x10\x03\x12\x10\n\x0cVehicleSpeed\x10\x04\x12\x0c\n\x08Odometer\x10\x05\x12\x0f\n\x0bPackVoltage\x10\x06\x12\x0f\n\x0bPackCurrent\x10\x07\x12\x07\n\x03Soc\x10\x08\x12\x0e\n\nDCDCEnable\x10\t\x12\x08\n\x04Gear\x10\n\x12\x17\n\x13IsolationResistance\x10\x0b\x12\x11\n\rPedalPosition\x10\x0c\x12\x0e\n\nBrakePedal\x10\r\x12\x0c\n\x08\x44iStateR\x10\x0e\x12\x10\n\x0c\x44iHeatsinkTR\x10\x0f\x12\x10\n\x0c\x44iAxleSpeedR\x10\x10\x12\x11\n\rDiTorquemotor\x10\x11\x12\x11\n\rDiStatorTempR\x10\x12\x12\x0b\n\x07\x44iVBatR\x10\x13\x12\x13\n\x0f\x44iMotorCurrentR\x10\x14\x12\x0c\n\x08Location\x10\x15\x12\x0c\n\x08GpsState\x10\x16\x12\x0e\n\nGpsHeading\x10\x17\x12\x16\n\x12NumBrickVoltageMax\x10\x18\x12\x13\n\x0f\x42rickVoltageMax\x10\x19\x12\x16\n\x12NumBrickVoltageMin\x10\x1a\x12\x13\n\x0f\x42rickVoltageMin\x10\x1b\x12\x14\n\x10NumModuleTempMax\x10\x1c\x12\x11\n\rModuleTempMax\x10\x1d\x12\x14\n\x10NumModuleTempMin\x10\x1e\x12\x11\n\rModuleTempMin\x10\x1f\x12\x0e\n\nRatedRange\x10 \x12\x08\n\x04Hvil\x10!\x12\x16\n\x12\x44\x43\x43hargingEnergyIn\x10\"\x12\x13\n\x0f\x44\x43\x43hargingPower\x10#\x12\x16\n\x12\x41\x43\x43hargingEnergyIn\x10$\x12\x13\n\x0f\x41\x43\x43hargingPower\x10%\x12\x12\n\x0e\x43hargeLimitSoc\x10&\x12\x16\n\x12\x46\x61stChargerPresent\x10\'\x12\x13\n\x0f\x45stBatteryRange\x10(\x12\x15\n\x11IdealBatteryRange\x10)\x12\x10\n\x0c\x42\x61tteryLevel\x10*\x12\x14\n\x10TimeToFullCharge\x10+\x12\x1e\n\x1aScheduledChargingStartTime\x10,\x12\x1c\n\x18ScheduledChargingPending\x10-\x12\x1a\n\x16ScheduledDepartureTime\x10.\x12\x1a\n\x16PreconditioningEnabled\x10/\x12\x19\n\x15ScheduledChargingMode\x10\x30\x12\x0e\n\nChargeAmps\x10\x31\x12\x17\n\x13\x43hargeEnableRequest\x10\x32\x12\x11\n\rChargerPhases\x10\x33\x12\x1d\n\x19\x43hargePortColdWeatherMode\x10\x34\x12\x18\n\x14\x43hargeCurrentRequest\x10\x35\x12\x1b\n\x17\x43hargeCurrentRequestMax\x10\x36\x12\x13\n\x0f\x42\x61tteryHeaterOn\x10\x37\x12\x18\n\x14NotEnoughPowerToHeat\x10\x38\x12\"\n\x1eSuperchargerSessionTripPlanner\x10\x39\x12\r\n\tDoorState\x10:\x12\n\n\x06Locked\x10;\x12\x0c\n\x08\x46\x64Window\x10<\x12\x0c\n\x08\x46pWindow\x10=\x12\x0c\n\x08RdWindow\x10>\x12\x0c\n\x08RpWindow\x10?\x12\x0f\n\x0bVehicleName\x10@\x12\x0e\n\nSentryMode\x10\x41\x12\x12\n\x0eSpeedLimitMode\x10\x42\x12\x13\n\x0f\x43urrentLimitMph\x10\x43\x12\x0b\n\x07Version\x10\x44\x12\x12\n\x0eTpmsPressureFl\x10\x45\x12\x12\n\x0eTpmsPressureFr\x10\x46\x12\x12\n\x0eTpmsPressureRl\x10G\x12\x12\n\x0eTpmsPressureRr\x10H\x12\x1e\n\x1aSemitruckTpmsPressureRe1L0\x10I\x12\x1e\n\x1aSemitruckTpmsPressureRe1L1\x10J\x12\x1e\n\x1aSemitruckTpmsPressureRe1R0\x10K\x12\x1e\n\x1aSemitruckTpmsPressureRe1R1\x10L\x12\x1e\n\x1aSemitruckTpmsPressureRe2L0\x10M\x12\x1e\n\x1aSemitruckTpmsPressureRe2L1\x10N\x12\x1e\n\x1aSemitruckTpmsPressureRe2R0\x10O\x12\x1e\n\x1aSemitruckTpmsPressureRe2R1\x10P\x12\x1e\n\x1aTpmsLastSeenPressureTimeFl\x10Q\x12\x1e\n\x1aTpmsLastSeenPressureTimeFr\x10R\x12\x1e\n\x1aTpmsLastSeenPressureTimeRl\x10S\x12\x1e\n\x1aTpmsLastSeenPressureTimeRr\x10T\x12\x0e\n\nInsideTemp\x10U\x12\x0f\n\x0bOutsideTemp\x10V\x12\x12\n\x0eSeatHeaterLeft\x10W\x12\x13\n\x0fSeatHeaterRight\x10X\x12\x16\n\x12SeatHeaterRearLeft\x10Y\x12\x17\n\x13SeatHeaterRearRight\x10Z\x12\x18\n\x14SeatHeaterRearCenter\x10[\x12\x17\n\x13\x41utoSeatClimateLeft\x10\\\x12\x18\n\x14\x41utoSeatClimateRight\x10]\x12\x12\n\x0e\x44riverSeatBelt\x10^\x12\x15\n\x11PassengerSeatBelt\x10_\x12\x16\n\x12\x44riverSeatOccupied\x10`\x12&\n\"SemitruckPassengerSeatFoldPosition\x10\x61\x12\x17\n\x13LateralAcceleration\x10\x62\x12\x1c\n\x18LongitudinalAcceleration\x10\x63\x12\x0f\n\x0b\x43ruiseState\x10\x64\x12\x12\n\x0e\x43ruiseSetSpeed\x10\x65\x12\x16\n\x12LifetimeEnergyUsed\x10\x66\x12\x1b\n\x17LifetimeEnergyUsedDrive\x10g\x12#\n\x1fSemitruckTractorParkBrakeStatus\x10h\x12#\n\x1fSemitruckTrailerParkBrakeStatus\x10i\x12\x11\n\rBrakePedalPos\x10j\x12\x14\n\x10RouteLastUpdated\x10k\x12\r\n\tRouteLine\x10l\x12\x12\n\x0eMilesToArrival\x10m\x12\x14\n\x10MinutesToArrival\x10n\x12\x12\n\x0eOriginLocation\x10o\x12\x17\n\x13\x44\x65stinationLocation\x10p\x12\x0b\n\x07\x43\x61rType\x10q\x12\x08\n\x04Trim\x10r\x12\x11\n\rExteriorColor\x10s\x12\r\n\tRoofColor\x10t\x12\x0e\n\nChargePort\x10u\x12\x13\n\x0f\x43hargePortLatch\x10v\x12\x12\n\x0e\x45xperimental_1\x10w\x12\x12\n\x0e\x45xperimental_2\x10x\x12\x12\n\x0e\x45xperimental_3\x10y\x12\x12\n\x0e\x45xperimental_4\x10z\x12\x14\n\x10GuestModeEnabled\x10{\x12\x15\n\x11PinToDriveEnabled\x10|\x12\x1e\n\x1aPairedPhoneKeyAndKeyFobQty\x10}\x12\x18\n\x14\x43ruiseFollowDistance\x10~\x12\x1c\n\x18\x41utomaticBlindSpotCamera\x10\x7f\x12#\n\x1e\x42lindSpotCollisionWarningChime\x10\x80\x01\x12\x16\n\x11SpeedLimitWarning\x10\x81\x01\x12\x1c\n\x17\x46orwardCollisionWarning\x10\x82\x01\x12\x1b\n\x16LaneDepartureAvoidance\x10\x83\x01\x12$\n\x1f\x45mergencyLaneDepartureAvoidance\x10\x84\x01\x12!\n\x1c\x41utomaticEmergencyBrakingOff\x10\x85\x01\x12\x1e\n\x19LifetimeEnergyGainedRegen\x10\x86\x01\x12\r\n\x08\x44iStateF\x10\x87\x01\x12\x0f\n\nDiStateREL\x10\x88\x01\x12\x0f\n\nDiStateRER\x10\x89\x01\x12\x11\n\x0c\x44iHeatsinkTF\x10\x8a\x01\x12\x13\n\x0e\x44iHeatsinkTREL\x10\x8b\x01\x12\x13\n\x0e\x44iHeatsinkTRER\x10\x8c\x01\x12\x11\n\x0c\x44iAxleSpeedF\x10\x8d\x01\x12\x13\n\x0e\x44iAxleSpeedREL\x10\x8e\x01\x12\x13\n\x0e\x44iAxleSpeedRER\x10\x8f\x01\x12\x15\n\x10\x44iSlaveTorqueCmd\x10\x90\x01\x12\x14\n\x0f\x44iTorqueActualR\x10\x91\x01\x12\x14\n\x0f\x44iTorqueActualF\x10\x92\x01\x12\x16\n\x11\x44iTorqueActualREL\x10\x93\x01\x12\x16\n\x11\x44iTorqueActualRER\x10\x94\x01\x12\x12\n\rDiStatorTempF\x10\x95\x01\x12\x14\n\x0f\x44iStatorTempREL\x10\x96\x01\x12\x14\n\x0f\x44iStatorTempRER\x10\x97\x01\x12\x0c\n\x07\x44iVBatF\x10\x98\x01\x12\x0e\n\tDiVBatREL\x10\x99\x01\x12\x0e\n\tDiVBatRER\x10\x9a\x01\x12\x14\n\x0f\x44iMotorCurrentF\x10\x9b\x01\x12\x16\n\x11\x44iMotorCurrentREL\x10\x9c\x01\x12\x16\n\x11\x44iMotorCurrentRER\x10\x9d\x01\x12\x14\n\x0f\x45nergyRemaining\x10\x9e\x01\x12\x10\n\x0bServiceMode\x10\x9f\x01\x12\r\n\x08\x42MSState\x10\xa0\x01\x12\x1f\n\x1aGuestModeMobileAccessState\x10\xa1\x01\x12\x11\n\x0c\x44\x65precated_1\x10\xa2\x01\x12\x14\n\x0f\x44\x65stinationName\x10\xa3\x01\x12\x11\n\x0c\x44iInverterTR\x10\xa4\x01\x12\x11\n\x0c\x44iInverterTF\x10\xa5\x01\x12\x13\n\x0e\x44iInverterTREL\x10\xa6\x01\x12\x13\n\x0e\x44iInverterTRER\x10\xa7\x01\x12\x13\n\x0e\x45xperimental_5\x10\xa8\x01\x12\x13\n\x0e\x45xperimental_6\x10\xa9\x01\x12\x13\n\x0e\x45xperimental_7\x10\xaa\x01\x12\x13\n\x0e\x45xperimental_8\x10\xab\x01\x12\x13\n\x0e\x45xperimental_9\x10\xac\x01\x12\x14\n\x0f\x45xperimental_10\x10\xad\x01\x12\x14\n\x0f\x45xperimental_11\x10\xae\x01\x12\x14\n\x0f\x45xperimental_12\x10\xaf\x01\x12\x14\n\x0f\x45xperimental_13\x10\xb0\x01\x12\x14\n\x0f\x45xperimental_14\x10\xb1\x01\x12\x14\n\x0f\x45xperimental_15\x10\xb2\x01\x12\x18\n\x13\x44\x65tailedChargeState\x10\xb3\x01*\xbf\x01\n\rChargingState\x12\x16\n\x12\x43hargeStateUnknown\x10\x00\x12\x1b\n\x17\x43hargeStateDisconnected\x10\x01\x12\x16\n\x12\x43hargeStateNoPower\x10\x02\x12\x17\n\x13\x43hargeStateStarting\x10\x03\x12\x17\n\x13\x43hargeStateCharging\x10\x04\x12\x17\n\x13\x43hargeStateComplete\x10\x05\x12\x16\n\x12\x43hargeStateStopped\x10\x06*\x82\x02\n\x18\x44\x65tailedChargeStateValue\x12\x1e\n\x1a\x44\x65tailedChargeStateUnknown\x10\x00\x12#\n\x1f\x44\x65tailedChargeStateDisconnected\x10\x01\x12\x1e\n\x1a\x44\x65tailedChargeStateNoPower\x10\x02\x12\x1f\n\x1b\x44\x65tailedChargeStateStarting\x10\x03\x12\x1f\n\x1b\x44\x65tailedChargeStateCharging\x10\x04\x12\x1f\n\x1b\x44\x65tailedChargeStateComplete\x10\x05\x12\x1e\n\x1a\x44\x65tailedChargeStateStopped\x10\x06*\x91\x01\n\nShiftState\x12\x15\n\x11ShiftStateUnknown\x10\x00\x12\x15\n\x11ShiftStateInvalid\x10\x01\x12\x0f\n\x0bShiftStateP\x10\x02\x12\x0f\n\x0bShiftStateR\x10\x03\x12\x0f\n\x0bShiftStateN\x10\x04\x12\x0f\n\x0bShiftStateD\x10\x05\x12\x11\n\rShiftStateSNA\x10\x06*\xbe\x01\n\x0e\x46ollowDistance\x12\x19\n\x15\x46ollowDistanceUnknown\x10\x00\x12\x13\n\x0f\x46ollowDistance1\x10\x01\x12\x13\n\x0f\x46ollowDistance2\x10\x02\x12\x13\n\x0f\x46ollowDistance3\x10\x03\x12\x13\n\x0f\x46ollowDistance4\x10\x04\x12\x13\n\x0f\x46ollowDistance5\x10\x05\x12\x13\n\x0f\x46ollowDistance6\x10\x06\x12\x13\n\x0f\x46ollowDistance7\x10\x07*\xdc\x01\n\x1b\x46orwardCollisionSensitivity\x12&\n\"ForwardCollisionSensitivityUnknown\x10\x00\x12\"\n\x1e\x46orwardCollisionSensitivityOff\x10\x01\x12#\n\x1f\x46orwardCollisionSensitivityLate\x10\x02\x12&\n\"ForwardCollisionSensitivityAverage\x10\x03\x12$\n ForwardCollisionSensitivityEarly\x10\x04*\xe4\x06\n\x15GuestModeMobileAccess\x12 \n\x1cGuestModeMobileAccessUnknown\x10\x00\x12\x1d\n\x19GuestModeMobileAccessInit\x10\x01\x12)\n%GuestModeMobileAccessNotAuthenticated\x10\x02\x12&\n\"GuestModeMobileAccessAuthenticated\x10\x03\x12\'\n#GuestModeMobileAccessAbortedDriving\x10\x04\x12\x30\n,GuestModeMobileAccessAbortedUsingRemoteStart\x10\x05\x12,\n(GuestModeMobileAccessAbortedUsingBLEKeys\x10\x06\x12)\n%GuestModeMobileAccessAbortedValetMode\x10\x07\x12,\n(GuestModeMobileAccessAbortedGuestModeOff\x10\x08\x12\x35\n1GuestModeMobileAccessAbortedDriveAuthTimeExceeded\x10\t\x12.\n*GuestModeMobileAccessAbortedNoDataReceived\x10\n\x12\x31\n-GuestModeMobileAccessRequestingFromMothership\x10\x0b\x12,\n(GuestModeMobileAccessRequestingFromAuthD\x10\x0c\x12+\n\'GuestModeMobileAccessAbortedFetchFailed\x10\r\x12/\n+GuestModeMobileAccessAbortedBadDataReceived\x10\x0e\x12&\n\"GuestModeMobileAccessShowingQRCode\x10\x0f\x12#\n\x1fGuestModeMobileAccessSwipedAway\x10\x10\x12/\n+GuestModeMobileAccessDismissedQRCodeExpired\x10\x11\x12\x31\n-GuestModeMobileAccessSucceededPairedNewBLEKey\x10\x12*}\n\x0fLaneAssistLevel\x12\x1a\n\x16LaneAssistLevelUnknown\x10\x00\x12\x17\n\x13LaneAssistLevelNone\x10\x01\x12\x1a\n\x16LaneAssistLevelWarning\x10\x02\x12\x19\n\x15LaneAssistLevelAssist\x10\x03*\xa1\x01\n\x1aScheduledChargingModeValue\x12 \n\x1cScheduledChargingModeUnknown\x10\x00\x12\x1c\n\x18ScheduledChargingModeOff\x10\x01\x12 \n\x1cScheduledChargingModeStartAt\x10\x02\x12!\n\x1dScheduledChargingModeDepartBy\x10\x03*\xc6\x01\n\x0fSentryModeState\x12\x1a\n\x16SentryModeStateUnknown\x10\x00\x12\x16\n\x12SentryModeStateOff\x10\x01\x12\x17\n\x13SentryModeStateIdle\x10\x02\x12\x18\n\x14SentryModeStateArmed\x10\x03\x12\x18\n\x14SentryModeStateAware\x10\x04\x12\x18\n\x14SentryModeStatePanic\x10\x05\x12\x18\n\x14SentryModeStateQuiet\x10\x06*\x81\x01\n\x10SpeedAssistLevel\x12\x1b\n\x17SpeedAssistLevelUnknown\x10\x00\x12\x18\n\x14SpeedAssistLevelNone\x10\x01\x12\x1b\n\x17SpeedAssistLevelDisplay\x10\x02\x12\x19\n\x15SpeedAssistLevelChime\x10\x03*\xe7\x01\n\rBMSStateValue\x12\x13\n\x0f\x42MSStateUnknown\x10\x00\x12\x13\n\x0f\x42MSStateStandby\x10\x01\x12\x11\n\rBMSStateDrive\x10\x02\x12\x13\n\x0f\x42MSStateSupport\x10\x03\x12\x12\n\x0e\x42MSStateCharge\x10\x04\x12\x10\n\x0c\x42MSStateFEIM\x10\x05\x12\x16\n\x12\x42MSStateClearFault\x10\x06\x12\x11\n\rBMSStateFault\x10\x07\x12\x10\n\x0c\x42MSStateWeld\x10\x08\x12\x10\n\x0c\x42MSStateTest\x10\t\x12\x0f\n\x0b\x42MSStateSNA\x10\n*t\n\x0c\x42uckleStatus\x12\x17\n\x13\x42uckleStatusUnknown\x10\x00\x12\x19\n\x15\x42uckleStatusUnlatched\x10\x01\x12\x17\n\x13\x42uckleStatusLatched\x10\x02\x12\x17\n\x13\x42uckleStatusFaulted\x10\x03*\x9b\x01\n\x0c\x43\x61rTypeValue\x12\x12\n\x0e\x43\x61rTypeUnknown\x10\x00\x12\x11\n\rCarTypeModelS\x10\x01\x12\x11\n\rCarTypeModelX\x10\x02\x12\x11\n\rCarTypeModel3\x10\x03\x12\x11\n\rCarTypeModelY\x10\x04\x12\x14\n\x10\x43\x61rTypeSemiTruck\x10\x05\x12\x15\n\x11\x43\x61rTypeCybertruck\x10\x06*q\n\x0f\x43hargePortValue\x12\x15\n\x11\x43hargePortUnknown\x10\x00\x12\x10\n\x0c\x43hargePortUS\x10\x01\x12\x10\n\x0c\x43hargePortEU\x10\x02\x12\x10\n\x0c\x43hargePortGB\x10\x03\x12\x11\n\rChargePortCCS\x10\x04*\xa2\x01\n\x14\x43hargePortLatchValue\x12\x1a\n\x16\x43hargePortLatchUnknown\x10\x00\x12\x16\n\x12\x43hargePortLatchSNA\x10\x01\x12\x1d\n\x19\x43hargePortLatchDisengaged\x10\x02\x12\x1a\n\x16\x43hargePortLatchEngaged\x10\x03\x12\x1b\n\x17\x43hargePortLatchBlocking\x10\x04*\xe6\x01\n\x10\x43ruiseStateValue\x12\x16\n\x12\x43ruiseStateUnknown\x10\x00\x12\x12\n\x0e\x43ruiseStateOff\x10\x01\x12\x16\n\x12\x43ruiseStateStandby\x10\x02\x12\x11\n\rCruiseStateOn\x10\x03\x12\x19\n\x15\x43ruiseStateStandstill\x10\x04\x12\x17\n\x13\x43ruiseStateOverride\x10\x05\x12\x14\n\x10\x43ruiseStateFault\x10\x06\x12\x17\n\x13\x43ruiseStatePreFault\x10\x07\x12\x18\n\x14\x43ruiseStatePreCancel\x10\x08*\xcd\x01\n\x12\x44riveInverterState\x12\x1d\n\x19\x44riveInverterStateUnknown\x10\x00\x12!\n\x1d\x44riveInverterStateUnavailable\x10\x01\x12\x1d\n\x19\x44riveInverterStateStandby\x10\x02\x12\x1b\n\x17\x44riveInverterStateFault\x10\x03\x12\x1b\n\x17\x44riveInverterStateAbort\x10\x04\x12\x1c\n\x18\x44riveInverterStateEnable\x10\x05*J\n\nHvilStatus\x12\x15\n\x11HvilStatusUnknown\x10\x00\x12\x13\n\x0fHvilStatusFault\x10\x01\x12\x10\n\x0cHvilStatusOK\x10\x02*q\n\x0bWindowState\x12\x16\n\x12WindowStateUnknown\x10\x00\x12\x15\n\x11WindowStateClosed\x10\x01\x12\x1c\n\x18WindowStatePartiallyOpen\x10\x02\x12\x15\n\x11WindowStateOpened\x10\x03*\xc2\x01\n\x10SeatFoldPosition\x12\x1b\n\x17SeatFoldPositionUnknown\x10\x00\x12\x17\n\x13SeatFoldPositionSNA\x10\x01\x12\x1b\n\x17SeatFoldPositionFaulted\x10\x02\x12!\n\x1dSeatFoldPositionNotConfigured\x10\x03\x12\x1a\n\x16SeatFoldPositionFolded\x10\x04\x12\x1c\n\x18SeatFoldPositionUnfolded\x10\x05*\x8e\x02\n\x10TractorAirStatus\x12\x1b\n\x17TractorAirStatusUnknown\x10\x00\x12 \n\x1cTractorAirStatusNotAvailable\x10\x01\x12\x19\n\x15TractorAirStatusError\x10\x02\x12\x1b\n\x17TractorAirStatusCharged\x10\x03\x12\x30\n,TractorAirStatusBuildingPressureIntermediate\x10\x04\x12\x32\n.TractorAirStatusExhaustingPressureIntermediate\x10\x05\x12\x1d\n\x19TractorAirStatusExhausted\x10\x06*\xa8\x02\n\x10TrailerAirStatus\x12\x1b\n\x17TrailerAirStatusUnknown\x10\x00\x12\x17\n\x13TrailerAirStatusSNA\x10\x01\x12\x1b\n\x17TrailerAirStatusInvalid\x10\x02\x12\x1f\n\x1bTrailerAirStatusBobtailMode\x10\x03\x12\x1b\n\x17TrailerAirStatusCharged\x10\x04\x12\x30\n,TrailerAirStatusBuildingPressureIntermediate\x10\x05\x12\x32\n.TrailerAirStatusExhaustingPressureIntermediate\x10\x06\x12\x1d\n\x19TrailerAirStatusExhausted\x10\x07\x42/Z-github.com/teslamotors/fleet-telemetry/protosb\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool - -begin - pool.add_serialized_file(descriptor_data) -rescue TypeError - # Compatibility code: will be removed in the next major version. - require 'google/protobuf/descriptor_pb' - parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data) - parsed.clear_dependency - serialized = parsed.class.encode(parsed) - file = pool.add_serialized_file(serialized) - warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" - imports = [ - ["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"], - ] - imports.each do |type_name, expected_filename| - import_file = pool.lookup(type_name).file_descriptor - if import_file.name != expected_filename - warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}" - end - end - warn "Each proto file must use a consistent fully-qualified name." - warn "This will become an error in the next major version." -end +pool.add_serialized_file(descriptor_data) module Telemetry module VehicleData LocationValue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.LocationValue").msgclass + Doors = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.Doors").msgclass + Time = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.Time").msgclass Value = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.Value").msgclass Datum = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.Datum").msgclass Payload = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.Payload").msgclass Field = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.Field").enummodule ChargingState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.ChargingState").enummodule + DetailedChargeStateValue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.DetailedChargeStateValue").enummodule ShiftState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.ShiftState").enummodule + FollowDistance = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.FollowDistance").enummodule + ForwardCollisionSensitivity = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.ForwardCollisionSensitivity").enummodule + GuestModeMobileAccess = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.GuestModeMobileAccess").enummodule + LaneAssistLevel = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.LaneAssistLevel").enummodule + ScheduledChargingModeValue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.ScheduledChargingModeValue").enummodule + SentryModeState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.SentryModeState").enummodule + SpeedAssistLevel = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.SpeedAssistLevel").enummodule + BMSStateValue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.BMSStateValue").enummodule + BuckleStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.BuckleStatus").enummodule + CarTypeValue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.CarTypeValue").enummodule + ChargePortValue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.ChargePortValue").enummodule + ChargePortLatchValue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.ChargePortLatchValue").enummodule + CruiseStateValue = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.CruiseStateValue").enummodule + DriveInverterState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.DriveInverterState").enummodule + HvilStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.HvilStatus").enummodule + WindowState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.WindowState").enummodule + SeatFoldPosition = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.SeatFoldPosition").enummodule + TractorAirStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.TractorAirStatus").enummodule + TrailerAirStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.TrailerAirStatus").enummodule end end diff --git a/protos/ruby/vehicle_error_pb.rb b/protos/ruby/vehicle_error_pb.rb index d0e218e9..61940ec3 100644 --- a/protos/ruby/vehicle_error_pb.rb +++ b/protos/ruby/vehicle_error_pb.rb @@ -10,29 +10,7 @@ descriptor_data = "\n\x13vehicle_error.proto\x12\x17telemetry.vehicle_error\x1a\x1fgoogle/protobuf/timestamp.proto\"\x83\x01\n\rVehicleErrors\x12\x35\n\x06\x65rrors\x18\x01 \x03(\x0b\x32%.telemetry.vehicle_error.VehicleError\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0b\n\x03vin\x18\x03 \x01(\t\"\xc6\x01\n\x0cVehicleError\x12.\n\ncreated_at\x18\x01 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0c\n\x04name\x18\x02 \x01(\t\x12=\n\x04tags\x18\x03 \x03(\x0b\x32/.telemetry.vehicle_error.VehicleError.TagsEntry\x12\x0c\n\x04\x62ody\x18\x04 \x01(\t\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42/Z-github.com/teslamotors/fleet-telemetry/protosb\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool - -begin - pool.add_serialized_file(descriptor_data) -rescue TypeError - # Compatibility code: will be removed in the next major version. - require 'google/protobuf/descriptor_pb' - parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data) - parsed.clear_dependency - serialized = parsed.class.encode(parsed) - file = pool.add_serialized_file(serialized) - warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" - imports = [ - ["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"], - ] - imports.each do |type_name, expected_filename| - import_file = pool.lookup(type_name).file_descriptor - if import_file.name != expected_filename - warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}" - end - end - warn "Each proto file must use a consistent fully-qualified name." - warn "This will become an error in the next major version." -end +pool.add_serialized_file(descriptor_data) module Telemetry module VehicleError diff --git a/protos/ruby/vehicle_metric_pb.rb b/protos/ruby/vehicle_metric_pb.rb index 37b80e7e..9b6fd2bc 100644 --- a/protos/ruby/vehicle_metric_pb.rb +++ b/protos/ruby/vehicle_metric_pb.rb @@ -10,29 +10,7 @@ descriptor_data = "\n\x14vehicle_metric.proto\x12\x19telemetry.vehicle_metrics\x1a\x1fgoogle/protobuf/timestamp.proto\"\x81\x01\n\x0eVehicleMetrics\x12\x32\n\x07metrics\x18\x01 \x03(\x0b\x32!.telemetry.vehicle_metrics.Metric\x12.\n\ncreated_at\x18\x02 \x01(\x0b\x32\x1a.google.protobuf.Timestamp\x12\x0b\n\x03vin\x18\x03 \x01(\t\"\x8d\x01\n\x06Metric\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x39\n\x04tags\x18\x02 \x03(\x0b\x32+.telemetry.vehicle_metrics.Metric.TagsEntry\x12\r\n\x05value\x18\x03 \x01(\x01\x1a+\n\tTagsEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42/Z-github.com/teslamotors/fleet-telemetry/protosb\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool - -begin - pool.add_serialized_file(descriptor_data) -rescue TypeError - # Compatibility code: will be removed in the next major version. - require 'google/protobuf/descriptor_pb' - parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data) - parsed.clear_dependency - serialized = parsed.class.encode(parsed) - file = pool.add_serialized_file(serialized) - warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}" - imports = [ - ["google.protobuf.Timestamp", "google/protobuf/timestamp.proto"], - ] - imports.each do |type_name, expected_filename| - import_file = pool.lookup(type_name).file_descriptor - if import_file.name != expected_filename - warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}" - end - end - warn "Each proto file must use a consistent fully-qualified name." - warn "This will become an error in the next major version." -end +pool.add_serialized_file(descriptor_data) module Telemetry module VehicleMetrics diff --git a/protos/vehicle_alert.pb.go b/protos/vehicle_alert.pb.go index cb847332..759933e2 100644 --- a/protos/vehicle_alert.pb.go +++ b/protos/vehicle_alert.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v4.25.1 +// protoc v5.26.1 // source: protos/vehicle_alert.proto package protos diff --git a/protos/vehicle_data.pb.go b/protos/vehicle_data.pb.go index f0623060..7006c49c 100644 --- a/protos/vehicle_data.pb.go +++ b/protos/vehicle_data.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v4.25.1 +// protoc v5.26.1 // source: protos/vehicle_data.proto package protos @@ -203,6 +203,8 @@ const ( Field_Experimental_13 Field = 176 Field_Experimental_14 Field = 177 Field_Experimental_15 Field = 178 + // fields below here are always returned typed + Field_DetailedChargeState Field = 179 ) // Enum value maps for Field. @@ -387,6 +389,7 @@ var ( 176: "Experimental_13", 177: "Experimental_14", 178: "Experimental_15", + 179: "DetailedChargeState", } Field_value = map[string]int32{ "Unknown": 0, @@ -568,6 +571,7 @@ var ( "Experimental_13": 176, "Experimental_14": 177, "Experimental_15": 178, + "DetailedChargeState": 179, } ) @@ -598,7 +602,7 @@ func (Field) EnumDescriptor() ([]byte, []int) { return file_protos_vehicle_data_proto_rawDescGZIP(), []int{0} } -// ChargingState are the charging options +// ChargingState is deprecated and not used type ChargingState int32 const ( @@ -660,6 +664,67 @@ func (ChargingState) EnumDescriptor() ([]byte, []int) { return file_protos_vehicle_data_proto_rawDescGZIP(), []int{1} } +type DetailedChargeStateValue int32 + +const ( + DetailedChargeStateValue_DetailedChargeStateUnknown DetailedChargeStateValue = 0 + DetailedChargeStateValue_DetailedChargeStateDisconnected DetailedChargeStateValue = 1 + DetailedChargeStateValue_DetailedChargeStateNoPower DetailedChargeStateValue = 2 + DetailedChargeStateValue_DetailedChargeStateStarting DetailedChargeStateValue = 3 + DetailedChargeStateValue_DetailedChargeStateCharging DetailedChargeStateValue = 4 + DetailedChargeStateValue_DetailedChargeStateComplete DetailedChargeStateValue = 5 + DetailedChargeStateValue_DetailedChargeStateStopped DetailedChargeStateValue = 6 +) + +// Enum value maps for DetailedChargeStateValue. +var ( + DetailedChargeStateValue_name = map[int32]string{ + 0: "DetailedChargeStateUnknown", + 1: "DetailedChargeStateDisconnected", + 2: "DetailedChargeStateNoPower", + 3: "DetailedChargeStateStarting", + 4: "DetailedChargeStateCharging", + 5: "DetailedChargeStateComplete", + 6: "DetailedChargeStateStopped", + } + DetailedChargeStateValue_value = map[string]int32{ + "DetailedChargeStateUnknown": 0, + "DetailedChargeStateDisconnected": 1, + "DetailedChargeStateNoPower": 2, + "DetailedChargeStateStarting": 3, + "DetailedChargeStateCharging": 4, + "DetailedChargeStateComplete": 5, + "DetailedChargeStateStopped": 6, + } +) + +func (x DetailedChargeStateValue) Enum() *DetailedChargeStateValue { + p := new(DetailedChargeStateValue) + *p = x + return p +} + +func (x DetailedChargeStateValue) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DetailedChargeStateValue) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[2].Descriptor() +} + +func (DetailedChargeStateValue) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[2] +} + +func (x DetailedChargeStateValue) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DetailedChargeStateValue.Descriptor instead. +func (DetailedChargeStateValue) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{2} +} + // ShiftState are the gear options type ShiftState int32 @@ -668,8 +733,8 @@ const ( ShiftState_ShiftStateInvalid ShiftState = 1 ShiftState_ShiftStateP ShiftState = 2 ShiftState_ShiftStateR ShiftState = 3 - ShiftState_ShiftStateD ShiftState = 4 - ShiftState_ShiftStateN ShiftState = 5 + ShiftState_ShiftStateN ShiftState = 4 + ShiftState_ShiftStateD ShiftState = 5 ShiftState_ShiftStateSNA ShiftState = 6 ) @@ -680,75 +745,1356 @@ var ( 1: "ShiftStateInvalid", 2: "ShiftStateP", 3: "ShiftStateR", - 4: "ShiftStateD", - 5: "ShiftStateN", + 4: "ShiftStateN", + 5: "ShiftStateD", 6: "ShiftStateSNA", } - ShiftState_value = map[string]int32{ - "ShiftStateUnknown": 0, - "ShiftStateInvalid": 1, - "ShiftStateP": 2, - "ShiftStateR": 3, - "ShiftStateD": 4, - "ShiftStateN": 5, - "ShiftStateSNA": 6, + ShiftState_value = map[string]int32{ + "ShiftStateUnknown": 0, + "ShiftStateInvalid": 1, + "ShiftStateP": 2, + "ShiftStateR": 3, + "ShiftStateN": 4, + "ShiftStateD": 5, + "ShiftStateSNA": 6, + } +) + +func (x ShiftState) Enum() *ShiftState { + p := new(ShiftState) + *p = x + return p +} + +func (x ShiftState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ShiftState) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[3].Descriptor() +} + +func (ShiftState) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[3] +} + +func (x ShiftState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ShiftState.Descriptor instead. +func (ShiftState) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{3} +} + +type FollowDistance int32 + +const ( + FollowDistance_FollowDistanceUnknown FollowDistance = 0 + FollowDistance_FollowDistance1 FollowDistance = 1 + FollowDistance_FollowDistance2 FollowDistance = 2 + FollowDistance_FollowDistance3 FollowDistance = 3 + FollowDistance_FollowDistance4 FollowDistance = 4 + FollowDistance_FollowDistance5 FollowDistance = 5 + FollowDistance_FollowDistance6 FollowDistance = 6 + FollowDistance_FollowDistance7 FollowDistance = 7 +) + +// Enum value maps for FollowDistance. +var ( + FollowDistance_name = map[int32]string{ + 0: "FollowDistanceUnknown", + 1: "FollowDistance1", + 2: "FollowDistance2", + 3: "FollowDistance3", + 4: "FollowDistance4", + 5: "FollowDistance5", + 6: "FollowDistance6", + 7: "FollowDistance7", + } + FollowDistance_value = map[string]int32{ + "FollowDistanceUnknown": 0, + "FollowDistance1": 1, + "FollowDistance2": 2, + "FollowDistance3": 3, + "FollowDistance4": 4, + "FollowDistance5": 5, + "FollowDistance6": 6, + "FollowDistance7": 7, + } +) + +func (x FollowDistance) Enum() *FollowDistance { + p := new(FollowDistance) + *p = x + return p +} + +func (x FollowDistance) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FollowDistance) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[4].Descriptor() +} + +func (FollowDistance) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[4] +} + +func (x FollowDistance) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use FollowDistance.Descriptor instead. +func (FollowDistance) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{4} +} + +type ForwardCollisionSensitivity int32 + +const ( + ForwardCollisionSensitivity_ForwardCollisionSensitivityUnknown ForwardCollisionSensitivity = 0 + ForwardCollisionSensitivity_ForwardCollisionSensitivityOff ForwardCollisionSensitivity = 1 + ForwardCollisionSensitivity_ForwardCollisionSensitivityLate ForwardCollisionSensitivity = 2 + ForwardCollisionSensitivity_ForwardCollisionSensitivityAverage ForwardCollisionSensitivity = 3 + ForwardCollisionSensitivity_ForwardCollisionSensitivityEarly ForwardCollisionSensitivity = 4 +) + +// Enum value maps for ForwardCollisionSensitivity. +var ( + ForwardCollisionSensitivity_name = map[int32]string{ + 0: "ForwardCollisionSensitivityUnknown", + 1: "ForwardCollisionSensitivityOff", + 2: "ForwardCollisionSensitivityLate", + 3: "ForwardCollisionSensitivityAverage", + 4: "ForwardCollisionSensitivityEarly", + } + ForwardCollisionSensitivity_value = map[string]int32{ + "ForwardCollisionSensitivityUnknown": 0, + "ForwardCollisionSensitivityOff": 1, + "ForwardCollisionSensitivityLate": 2, + "ForwardCollisionSensitivityAverage": 3, + "ForwardCollisionSensitivityEarly": 4, + } +) + +func (x ForwardCollisionSensitivity) Enum() *ForwardCollisionSensitivity { + p := new(ForwardCollisionSensitivity) + *p = x + return p +} + +func (x ForwardCollisionSensitivity) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ForwardCollisionSensitivity) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[5].Descriptor() +} + +func (ForwardCollisionSensitivity) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[5] +} + +func (x ForwardCollisionSensitivity) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ForwardCollisionSensitivity.Descriptor instead. +func (ForwardCollisionSensitivity) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{5} +} + +type GuestModeMobileAccess int32 + +const ( + GuestModeMobileAccess_GuestModeMobileAccessUnknown GuestModeMobileAccess = 0 + GuestModeMobileAccess_GuestModeMobileAccessInit GuestModeMobileAccess = 1 + GuestModeMobileAccess_GuestModeMobileAccessNotAuthenticated GuestModeMobileAccess = 2 + GuestModeMobileAccess_GuestModeMobileAccessAuthenticated GuestModeMobileAccess = 3 + GuestModeMobileAccess_GuestModeMobileAccessAbortedDriving GuestModeMobileAccess = 4 + GuestModeMobileAccess_GuestModeMobileAccessAbortedUsingRemoteStart GuestModeMobileAccess = 5 + GuestModeMobileAccess_GuestModeMobileAccessAbortedUsingBLEKeys GuestModeMobileAccess = 6 + GuestModeMobileAccess_GuestModeMobileAccessAbortedValetMode GuestModeMobileAccess = 7 + GuestModeMobileAccess_GuestModeMobileAccessAbortedGuestModeOff GuestModeMobileAccess = 8 + GuestModeMobileAccess_GuestModeMobileAccessAbortedDriveAuthTimeExceeded GuestModeMobileAccess = 9 + GuestModeMobileAccess_GuestModeMobileAccessAbortedNoDataReceived GuestModeMobileAccess = 10 + GuestModeMobileAccess_GuestModeMobileAccessRequestingFromMothership GuestModeMobileAccess = 11 + GuestModeMobileAccess_GuestModeMobileAccessRequestingFromAuthD GuestModeMobileAccess = 12 + GuestModeMobileAccess_GuestModeMobileAccessAbortedFetchFailed GuestModeMobileAccess = 13 + GuestModeMobileAccess_GuestModeMobileAccessAbortedBadDataReceived GuestModeMobileAccess = 14 + GuestModeMobileAccess_GuestModeMobileAccessShowingQRCode GuestModeMobileAccess = 15 + GuestModeMobileAccess_GuestModeMobileAccessSwipedAway GuestModeMobileAccess = 16 + GuestModeMobileAccess_GuestModeMobileAccessDismissedQRCodeExpired GuestModeMobileAccess = 17 + GuestModeMobileAccess_GuestModeMobileAccessSucceededPairedNewBLEKey GuestModeMobileAccess = 18 +) + +// Enum value maps for GuestModeMobileAccess. +var ( + GuestModeMobileAccess_name = map[int32]string{ + 0: "GuestModeMobileAccessUnknown", + 1: "GuestModeMobileAccessInit", + 2: "GuestModeMobileAccessNotAuthenticated", + 3: "GuestModeMobileAccessAuthenticated", + 4: "GuestModeMobileAccessAbortedDriving", + 5: "GuestModeMobileAccessAbortedUsingRemoteStart", + 6: "GuestModeMobileAccessAbortedUsingBLEKeys", + 7: "GuestModeMobileAccessAbortedValetMode", + 8: "GuestModeMobileAccessAbortedGuestModeOff", + 9: "GuestModeMobileAccessAbortedDriveAuthTimeExceeded", + 10: "GuestModeMobileAccessAbortedNoDataReceived", + 11: "GuestModeMobileAccessRequestingFromMothership", + 12: "GuestModeMobileAccessRequestingFromAuthD", + 13: "GuestModeMobileAccessAbortedFetchFailed", + 14: "GuestModeMobileAccessAbortedBadDataReceived", + 15: "GuestModeMobileAccessShowingQRCode", + 16: "GuestModeMobileAccessSwipedAway", + 17: "GuestModeMobileAccessDismissedQRCodeExpired", + 18: "GuestModeMobileAccessSucceededPairedNewBLEKey", + } + GuestModeMobileAccess_value = map[string]int32{ + "GuestModeMobileAccessUnknown": 0, + "GuestModeMobileAccessInit": 1, + "GuestModeMobileAccessNotAuthenticated": 2, + "GuestModeMobileAccessAuthenticated": 3, + "GuestModeMobileAccessAbortedDriving": 4, + "GuestModeMobileAccessAbortedUsingRemoteStart": 5, + "GuestModeMobileAccessAbortedUsingBLEKeys": 6, + "GuestModeMobileAccessAbortedValetMode": 7, + "GuestModeMobileAccessAbortedGuestModeOff": 8, + "GuestModeMobileAccessAbortedDriveAuthTimeExceeded": 9, + "GuestModeMobileAccessAbortedNoDataReceived": 10, + "GuestModeMobileAccessRequestingFromMothership": 11, + "GuestModeMobileAccessRequestingFromAuthD": 12, + "GuestModeMobileAccessAbortedFetchFailed": 13, + "GuestModeMobileAccessAbortedBadDataReceived": 14, + "GuestModeMobileAccessShowingQRCode": 15, + "GuestModeMobileAccessSwipedAway": 16, + "GuestModeMobileAccessDismissedQRCodeExpired": 17, + "GuestModeMobileAccessSucceededPairedNewBLEKey": 18, + } +) + +func (x GuestModeMobileAccess) Enum() *GuestModeMobileAccess { + p := new(GuestModeMobileAccess) + *p = x + return p +} + +func (x GuestModeMobileAccess) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (GuestModeMobileAccess) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[6].Descriptor() +} + +func (GuestModeMobileAccess) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[6] +} + +func (x GuestModeMobileAccess) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use GuestModeMobileAccess.Descriptor instead. +func (GuestModeMobileAccess) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{6} +} + +type LaneAssistLevel int32 + +const ( + LaneAssistLevel_LaneAssistLevelUnknown LaneAssistLevel = 0 + LaneAssistLevel_LaneAssistLevelNone LaneAssistLevel = 1 + LaneAssistLevel_LaneAssistLevelWarning LaneAssistLevel = 2 + LaneAssistLevel_LaneAssistLevelAssist LaneAssistLevel = 3 +) + +// Enum value maps for LaneAssistLevel. +var ( + LaneAssistLevel_name = map[int32]string{ + 0: "LaneAssistLevelUnknown", + 1: "LaneAssistLevelNone", + 2: "LaneAssistLevelWarning", + 3: "LaneAssistLevelAssist", + } + LaneAssistLevel_value = map[string]int32{ + "LaneAssistLevelUnknown": 0, + "LaneAssistLevelNone": 1, + "LaneAssistLevelWarning": 2, + "LaneAssistLevelAssist": 3, + } +) + +func (x LaneAssistLevel) Enum() *LaneAssistLevel { + p := new(LaneAssistLevel) + *p = x + return p +} + +func (x LaneAssistLevel) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (LaneAssistLevel) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[7].Descriptor() +} + +func (LaneAssistLevel) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[7] +} + +func (x LaneAssistLevel) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use LaneAssistLevel.Descriptor instead. +func (LaneAssistLevel) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{7} +} + +type ScheduledChargingModeValue int32 + +const ( + ScheduledChargingModeValue_ScheduledChargingModeUnknown ScheduledChargingModeValue = 0 + ScheduledChargingModeValue_ScheduledChargingModeOff ScheduledChargingModeValue = 1 + ScheduledChargingModeValue_ScheduledChargingModeStartAt ScheduledChargingModeValue = 2 + ScheduledChargingModeValue_ScheduledChargingModeDepartBy ScheduledChargingModeValue = 3 +) + +// Enum value maps for ScheduledChargingModeValue. +var ( + ScheduledChargingModeValue_name = map[int32]string{ + 0: "ScheduledChargingModeUnknown", + 1: "ScheduledChargingModeOff", + 2: "ScheduledChargingModeStartAt", + 3: "ScheduledChargingModeDepartBy", + } + ScheduledChargingModeValue_value = map[string]int32{ + "ScheduledChargingModeUnknown": 0, + "ScheduledChargingModeOff": 1, + "ScheduledChargingModeStartAt": 2, + "ScheduledChargingModeDepartBy": 3, + } +) + +func (x ScheduledChargingModeValue) Enum() *ScheduledChargingModeValue { + p := new(ScheduledChargingModeValue) + *p = x + return p +} + +func (x ScheduledChargingModeValue) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ScheduledChargingModeValue) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[8].Descriptor() +} + +func (ScheduledChargingModeValue) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[8] +} + +func (x ScheduledChargingModeValue) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ScheduledChargingModeValue.Descriptor instead. +func (ScheduledChargingModeValue) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{8} +} + +type SentryModeState int32 + +const ( + SentryModeState_SentryModeStateUnknown SentryModeState = 0 + SentryModeState_SentryModeStateOff SentryModeState = 1 + SentryModeState_SentryModeStateIdle SentryModeState = 2 + SentryModeState_SentryModeStateArmed SentryModeState = 3 + SentryModeState_SentryModeStateAware SentryModeState = 4 + SentryModeState_SentryModeStatePanic SentryModeState = 5 + SentryModeState_SentryModeStateQuiet SentryModeState = 6 +) + +// Enum value maps for SentryModeState. +var ( + SentryModeState_name = map[int32]string{ + 0: "SentryModeStateUnknown", + 1: "SentryModeStateOff", + 2: "SentryModeStateIdle", + 3: "SentryModeStateArmed", + 4: "SentryModeStateAware", + 5: "SentryModeStatePanic", + 6: "SentryModeStateQuiet", + } + SentryModeState_value = map[string]int32{ + "SentryModeStateUnknown": 0, + "SentryModeStateOff": 1, + "SentryModeStateIdle": 2, + "SentryModeStateArmed": 3, + "SentryModeStateAware": 4, + "SentryModeStatePanic": 5, + "SentryModeStateQuiet": 6, + } +) + +func (x SentryModeState) Enum() *SentryModeState { + p := new(SentryModeState) + *p = x + return p +} + +func (x SentryModeState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SentryModeState) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[9].Descriptor() +} + +func (SentryModeState) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[9] +} + +func (x SentryModeState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SentryModeState.Descriptor instead. +func (SentryModeState) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{9} +} + +type SpeedAssistLevel int32 + +const ( + SpeedAssistLevel_SpeedAssistLevelUnknown SpeedAssistLevel = 0 + SpeedAssistLevel_SpeedAssistLevelNone SpeedAssistLevel = 1 + SpeedAssistLevel_SpeedAssistLevelDisplay SpeedAssistLevel = 2 + SpeedAssistLevel_SpeedAssistLevelChime SpeedAssistLevel = 3 +) + +// Enum value maps for SpeedAssistLevel. +var ( + SpeedAssistLevel_name = map[int32]string{ + 0: "SpeedAssistLevelUnknown", + 1: "SpeedAssistLevelNone", + 2: "SpeedAssistLevelDisplay", + 3: "SpeedAssistLevelChime", + } + SpeedAssistLevel_value = map[string]int32{ + "SpeedAssistLevelUnknown": 0, + "SpeedAssistLevelNone": 1, + "SpeedAssistLevelDisplay": 2, + "SpeedAssistLevelChime": 3, + } +) + +func (x SpeedAssistLevel) Enum() *SpeedAssistLevel { + p := new(SpeedAssistLevel) + *p = x + return p +} + +func (x SpeedAssistLevel) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SpeedAssistLevel) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[10].Descriptor() +} + +func (SpeedAssistLevel) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[10] +} + +func (x SpeedAssistLevel) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SpeedAssistLevel.Descriptor instead. +func (SpeedAssistLevel) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{10} +} + +type BMSStateValue int32 + +const ( + BMSStateValue_BMSStateUnknown BMSStateValue = 0 + BMSStateValue_BMSStateStandby BMSStateValue = 1 + BMSStateValue_BMSStateDrive BMSStateValue = 2 + BMSStateValue_BMSStateSupport BMSStateValue = 3 + BMSStateValue_BMSStateCharge BMSStateValue = 4 + BMSStateValue_BMSStateFEIM BMSStateValue = 5 + BMSStateValue_BMSStateClearFault BMSStateValue = 6 + BMSStateValue_BMSStateFault BMSStateValue = 7 + BMSStateValue_BMSStateWeld BMSStateValue = 8 + BMSStateValue_BMSStateTest BMSStateValue = 9 + BMSStateValue_BMSStateSNA BMSStateValue = 10 +) + +// Enum value maps for BMSStateValue. +var ( + BMSStateValue_name = map[int32]string{ + 0: "BMSStateUnknown", + 1: "BMSStateStandby", + 2: "BMSStateDrive", + 3: "BMSStateSupport", + 4: "BMSStateCharge", + 5: "BMSStateFEIM", + 6: "BMSStateClearFault", + 7: "BMSStateFault", + 8: "BMSStateWeld", + 9: "BMSStateTest", + 10: "BMSStateSNA", + } + BMSStateValue_value = map[string]int32{ + "BMSStateUnknown": 0, + "BMSStateStandby": 1, + "BMSStateDrive": 2, + "BMSStateSupport": 3, + "BMSStateCharge": 4, + "BMSStateFEIM": 5, + "BMSStateClearFault": 6, + "BMSStateFault": 7, + "BMSStateWeld": 8, + "BMSStateTest": 9, + "BMSStateSNA": 10, + } +) + +func (x BMSStateValue) Enum() *BMSStateValue { + p := new(BMSStateValue) + *p = x + return p +} + +func (x BMSStateValue) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BMSStateValue) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[11].Descriptor() +} + +func (BMSStateValue) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[11] +} + +func (x BMSStateValue) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BMSStateValue.Descriptor instead. +func (BMSStateValue) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{11} +} + +type BuckleStatus int32 + +const ( + BuckleStatus_BuckleStatusUnknown BuckleStatus = 0 + BuckleStatus_BuckleStatusUnlatched BuckleStatus = 1 + BuckleStatus_BuckleStatusLatched BuckleStatus = 2 + BuckleStatus_BuckleStatusFaulted BuckleStatus = 3 +) + +// Enum value maps for BuckleStatus. +var ( + BuckleStatus_name = map[int32]string{ + 0: "BuckleStatusUnknown", + 1: "BuckleStatusUnlatched", + 2: "BuckleStatusLatched", + 3: "BuckleStatusFaulted", + } + BuckleStatus_value = map[string]int32{ + "BuckleStatusUnknown": 0, + "BuckleStatusUnlatched": 1, + "BuckleStatusLatched": 2, + "BuckleStatusFaulted": 3, + } +) + +func (x BuckleStatus) Enum() *BuckleStatus { + p := new(BuckleStatus) + *p = x + return p +} + +func (x BuckleStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (BuckleStatus) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[12].Descriptor() +} + +func (BuckleStatus) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[12] +} + +func (x BuckleStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use BuckleStatus.Descriptor instead. +func (BuckleStatus) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{12} +} + +type CarTypeValue int32 + +const ( + CarTypeValue_CarTypeUnknown CarTypeValue = 0 + CarTypeValue_CarTypeModelS CarTypeValue = 1 + CarTypeValue_CarTypeModelX CarTypeValue = 2 + CarTypeValue_CarTypeModel3 CarTypeValue = 3 + CarTypeValue_CarTypeModelY CarTypeValue = 4 + CarTypeValue_CarTypeSemiTruck CarTypeValue = 5 + CarTypeValue_CarTypeCybertruck CarTypeValue = 6 +) + +// Enum value maps for CarTypeValue. +var ( + CarTypeValue_name = map[int32]string{ + 0: "CarTypeUnknown", + 1: "CarTypeModelS", + 2: "CarTypeModelX", + 3: "CarTypeModel3", + 4: "CarTypeModelY", + 5: "CarTypeSemiTruck", + 6: "CarTypeCybertruck", + } + CarTypeValue_value = map[string]int32{ + "CarTypeUnknown": 0, + "CarTypeModelS": 1, + "CarTypeModelX": 2, + "CarTypeModel3": 3, + "CarTypeModelY": 4, + "CarTypeSemiTruck": 5, + "CarTypeCybertruck": 6, + } +) + +func (x CarTypeValue) Enum() *CarTypeValue { + p := new(CarTypeValue) + *p = x + return p +} + +func (x CarTypeValue) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CarTypeValue) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[13].Descriptor() +} + +func (CarTypeValue) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[13] +} + +func (x CarTypeValue) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CarTypeValue.Descriptor instead. +func (CarTypeValue) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{13} +} + +type ChargePortValue int32 + +const ( + ChargePortValue_ChargePortUnknown ChargePortValue = 0 + ChargePortValue_ChargePortUS ChargePortValue = 1 + ChargePortValue_ChargePortEU ChargePortValue = 2 + ChargePortValue_ChargePortGB ChargePortValue = 3 + ChargePortValue_ChargePortCCS ChargePortValue = 4 +) + +// Enum value maps for ChargePortValue. +var ( + ChargePortValue_name = map[int32]string{ + 0: "ChargePortUnknown", + 1: "ChargePortUS", + 2: "ChargePortEU", + 3: "ChargePortGB", + 4: "ChargePortCCS", + } + ChargePortValue_value = map[string]int32{ + "ChargePortUnknown": 0, + "ChargePortUS": 1, + "ChargePortEU": 2, + "ChargePortGB": 3, + "ChargePortCCS": 4, + } +) + +func (x ChargePortValue) Enum() *ChargePortValue { + p := new(ChargePortValue) + *p = x + return p +} + +func (x ChargePortValue) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ChargePortValue) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[14].Descriptor() +} + +func (ChargePortValue) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[14] +} + +func (x ChargePortValue) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ChargePortValue.Descriptor instead. +func (ChargePortValue) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{14} +} + +type ChargePortLatchValue int32 + +const ( + ChargePortLatchValue_ChargePortLatchUnknown ChargePortLatchValue = 0 + ChargePortLatchValue_ChargePortLatchSNA ChargePortLatchValue = 1 + ChargePortLatchValue_ChargePortLatchDisengaged ChargePortLatchValue = 2 + ChargePortLatchValue_ChargePortLatchEngaged ChargePortLatchValue = 3 + ChargePortLatchValue_ChargePortLatchBlocking ChargePortLatchValue = 4 +) + +// Enum value maps for ChargePortLatchValue. +var ( + ChargePortLatchValue_name = map[int32]string{ + 0: "ChargePortLatchUnknown", + 1: "ChargePortLatchSNA", + 2: "ChargePortLatchDisengaged", + 3: "ChargePortLatchEngaged", + 4: "ChargePortLatchBlocking", + } + ChargePortLatchValue_value = map[string]int32{ + "ChargePortLatchUnknown": 0, + "ChargePortLatchSNA": 1, + "ChargePortLatchDisengaged": 2, + "ChargePortLatchEngaged": 3, + "ChargePortLatchBlocking": 4, + } +) + +func (x ChargePortLatchValue) Enum() *ChargePortLatchValue { + p := new(ChargePortLatchValue) + *p = x + return p +} + +func (x ChargePortLatchValue) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ChargePortLatchValue) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[15].Descriptor() +} + +func (ChargePortLatchValue) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[15] +} + +func (x ChargePortLatchValue) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ChargePortLatchValue.Descriptor instead. +func (ChargePortLatchValue) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{15} +} + +type CruiseStateValue int32 + +const ( + CruiseStateValue_CruiseStateUnknown CruiseStateValue = 0 + CruiseStateValue_CruiseStateOff CruiseStateValue = 1 + CruiseStateValue_CruiseStateStandby CruiseStateValue = 2 + CruiseStateValue_CruiseStateOn CruiseStateValue = 3 + CruiseStateValue_CruiseStateStandstill CruiseStateValue = 4 + CruiseStateValue_CruiseStateOverride CruiseStateValue = 5 + CruiseStateValue_CruiseStateFault CruiseStateValue = 6 + CruiseStateValue_CruiseStatePreFault CruiseStateValue = 7 + CruiseStateValue_CruiseStatePreCancel CruiseStateValue = 8 +) + +// Enum value maps for CruiseStateValue. +var ( + CruiseStateValue_name = map[int32]string{ + 0: "CruiseStateUnknown", + 1: "CruiseStateOff", + 2: "CruiseStateStandby", + 3: "CruiseStateOn", + 4: "CruiseStateStandstill", + 5: "CruiseStateOverride", + 6: "CruiseStateFault", + 7: "CruiseStatePreFault", + 8: "CruiseStatePreCancel", + } + CruiseStateValue_value = map[string]int32{ + "CruiseStateUnknown": 0, + "CruiseStateOff": 1, + "CruiseStateStandby": 2, + "CruiseStateOn": 3, + "CruiseStateStandstill": 4, + "CruiseStateOverride": 5, + "CruiseStateFault": 6, + "CruiseStatePreFault": 7, + "CruiseStatePreCancel": 8, + } +) + +func (x CruiseStateValue) Enum() *CruiseStateValue { + p := new(CruiseStateValue) + *p = x + return p +} + +func (x CruiseStateValue) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CruiseStateValue) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[16].Descriptor() +} + +func (CruiseStateValue) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[16] +} + +func (x CruiseStateValue) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CruiseStateValue.Descriptor instead. +func (CruiseStateValue) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{16} +} + +type DriveInverterState int32 + +const ( + DriveInverterState_DriveInverterStateUnknown DriveInverterState = 0 + DriveInverterState_DriveInverterStateUnavailable DriveInverterState = 1 + DriveInverterState_DriveInverterStateStandby DriveInverterState = 2 + DriveInverterState_DriveInverterStateFault DriveInverterState = 3 + DriveInverterState_DriveInverterStateAbort DriveInverterState = 4 + DriveInverterState_DriveInverterStateEnable DriveInverterState = 5 +) + +// Enum value maps for DriveInverterState. +var ( + DriveInverterState_name = map[int32]string{ + 0: "DriveInverterStateUnknown", + 1: "DriveInverterStateUnavailable", + 2: "DriveInverterStateStandby", + 3: "DriveInverterStateFault", + 4: "DriveInverterStateAbort", + 5: "DriveInverterStateEnable", + } + DriveInverterState_value = map[string]int32{ + "DriveInverterStateUnknown": 0, + "DriveInverterStateUnavailable": 1, + "DriveInverterStateStandby": 2, + "DriveInverterStateFault": 3, + "DriveInverterStateAbort": 4, + "DriveInverterStateEnable": 5, + } +) + +func (x DriveInverterState) Enum() *DriveInverterState { + p := new(DriveInverterState) + *p = x + return p +} + +func (x DriveInverterState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DriveInverterState) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[17].Descriptor() +} + +func (DriveInverterState) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[17] +} + +func (x DriveInverterState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DriveInverterState.Descriptor instead. +func (DriveInverterState) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{17} +} + +type HvilStatus int32 + +const ( + HvilStatus_HvilStatusUnknown HvilStatus = 0 + HvilStatus_HvilStatusFault HvilStatus = 1 + HvilStatus_HvilStatusOK HvilStatus = 2 +) + +// Enum value maps for HvilStatus. +var ( + HvilStatus_name = map[int32]string{ + 0: "HvilStatusUnknown", + 1: "HvilStatusFault", + 2: "HvilStatusOK", + } + HvilStatus_value = map[string]int32{ + "HvilStatusUnknown": 0, + "HvilStatusFault": 1, + "HvilStatusOK": 2, + } +) + +func (x HvilStatus) Enum() *HvilStatus { + p := new(HvilStatus) + *p = x + return p +} + +func (x HvilStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (HvilStatus) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[18].Descriptor() +} + +func (HvilStatus) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[18] +} + +func (x HvilStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use HvilStatus.Descriptor instead. +func (HvilStatus) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{18} +} + +type WindowState int32 + +const ( + WindowState_WindowStateUnknown WindowState = 0 + WindowState_WindowStateClosed WindowState = 1 + WindowState_WindowStatePartiallyOpen WindowState = 2 + WindowState_WindowStateOpened WindowState = 3 +) + +// Enum value maps for WindowState. +var ( + WindowState_name = map[int32]string{ + 0: "WindowStateUnknown", + 1: "WindowStateClosed", + 2: "WindowStatePartiallyOpen", + 3: "WindowStateOpened", + } + WindowState_value = map[string]int32{ + "WindowStateUnknown": 0, + "WindowStateClosed": 1, + "WindowStatePartiallyOpen": 2, + "WindowStateOpened": 3, + } +) + +func (x WindowState) Enum() *WindowState { + p := new(WindowState) + *p = x + return p +} + +func (x WindowState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (WindowState) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[19].Descriptor() +} + +func (WindowState) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[19] +} + +func (x WindowState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use WindowState.Descriptor instead. +func (WindowState) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{19} +} + +type SeatFoldPosition int32 + +const ( + SeatFoldPosition_SeatFoldPositionUnknown SeatFoldPosition = 0 + SeatFoldPosition_SeatFoldPositionSNA SeatFoldPosition = 1 + SeatFoldPosition_SeatFoldPositionFaulted SeatFoldPosition = 2 + SeatFoldPosition_SeatFoldPositionNotConfigured SeatFoldPosition = 3 + SeatFoldPosition_SeatFoldPositionFolded SeatFoldPosition = 4 + SeatFoldPosition_SeatFoldPositionUnfolded SeatFoldPosition = 5 +) + +// Enum value maps for SeatFoldPosition. +var ( + SeatFoldPosition_name = map[int32]string{ + 0: "SeatFoldPositionUnknown", + 1: "SeatFoldPositionSNA", + 2: "SeatFoldPositionFaulted", + 3: "SeatFoldPositionNotConfigured", + 4: "SeatFoldPositionFolded", + 5: "SeatFoldPositionUnfolded", + } + SeatFoldPosition_value = map[string]int32{ + "SeatFoldPositionUnknown": 0, + "SeatFoldPositionSNA": 1, + "SeatFoldPositionFaulted": 2, + "SeatFoldPositionNotConfigured": 3, + "SeatFoldPositionFolded": 4, + "SeatFoldPositionUnfolded": 5, + } +) + +func (x SeatFoldPosition) Enum() *SeatFoldPosition { + p := new(SeatFoldPosition) + *p = x + return p +} + +func (x SeatFoldPosition) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (SeatFoldPosition) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[20].Descriptor() +} + +func (SeatFoldPosition) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[20] +} + +func (x SeatFoldPosition) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use SeatFoldPosition.Descriptor instead. +func (SeatFoldPosition) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{20} +} + +type TractorAirStatus int32 + +const ( + TractorAirStatus_TractorAirStatusUnknown TractorAirStatus = 0 + TractorAirStatus_TractorAirStatusNotAvailable TractorAirStatus = 1 + TractorAirStatus_TractorAirStatusError TractorAirStatus = 2 + TractorAirStatus_TractorAirStatusCharged TractorAirStatus = 3 + TractorAirStatus_TractorAirStatusBuildingPressureIntermediate TractorAirStatus = 4 + TractorAirStatus_TractorAirStatusExhaustingPressureIntermediate TractorAirStatus = 5 + TractorAirStatus_TractorAirStatusExhausted TractorAirStatus = 6 +) + +// Enum value maps for TractorAirStatus. +var ( + TractorAirStatus_name = map[int32]string{ + 0: "TractorAirStatusUnknown", + 1: "TractorAirStatusNotAvailable", + 2: "TractorAirStatusError", + 3: "TractorAirStatusCharged", + 4: "TractorAirStatusBuildingPressureIntermediate", + 5: "TractorAirStatusExhaustingPressureIntermediate", + 6: "TractorAirStatusExhausted", + } + TractorAirStatus_value = map[string]int32{ + "TractorAirStatusUnknown": 0, + "TractorAirStatusNotAvailable": 1, + "TractorAirStatusError": 2, + "TractorAirStatusCharged": 3, + "TractorAirStatusBuildingPressureIntermediate": 4, + "TractorAirStatusExhaustingPressureIntermediate": 5, + "TractorAirStatusExhausted": 6, + } +) + +func (x TractorAirStatus) Enum() *TractorAirStatus { + p := new(TractorAirStatus) + *p = x + return p +} + +func (x TractorAirStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TractorAirStatus) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[21].Descriptor() +} + +func (TractorAirStatus) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[21] +} + +func (x TractorAirStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TractorAirStatus.Descriptor instead. +func (TractorAirStatus) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{21} +} + +type TrailerAirStatus int32 + +const ( + TrailerAirStatus_TrailerAirStatusUnknown TrailerAirStatus = 0 + TrailerAirStatus_TrailerAirStatusSNA TrailerAirStatus = 1 + TrailerAirStatus_TrailerAirStatusInvalid TrailerAirStatus = 2 + TrailerAirStatus_TrailerAirStatusBobtailMode TrailerAirStatus = 3 + TrailerAirStatus_TrailerAirStatusCharged TrailerAirStatus = 4 + TrailerAirStatus_TrailerAirStatusBuildingPressureIntermediate TrailerAirStatus = 5 + TrailerAirStatus_TrailerAirStatusExhaustingPressureIntermediate TrailerAirStatus = 6 + TrailerAirStatus_TrailerAirStatusExhausted TrailerAirStatus = 7 +) + +// Enum value maps for TrailerAirStatus. +var ( + TrailerAirStatus_name = map[int32]string{ + 0: "TrailerAirStatusUnknown", + 1: "TrailerAirStatusSNA", + 2: "TrailerAirStatusInvalid", + 3: "TrailerAirStatusBobtailMode", + 4: "TrailerAirStatusCharged", + 5: "TrailerAirStatusBuildingPressureIntermediate", + 6: "TrailerAirStatusExhaustingPressureIntermediate", + 7: "TrailerAirStatusExhausted", + } + TrailerAirStatus_value = map[string]int32{ + "TrailerAirStatusUnknown": 0, + "TrailerAirStatusSNA": 1, + "TrailerAirStatusInvalid": 2, + "TrailerAirStatusBobtailMode": 3, + "TrailerAirStatusCharged": 4, + "TrailerAirStatusBuildingPressureIntermediate": 5, + "TrailerAirStatusExhaustingPressureIntermediate": 6, + "TrailerAirStatusExhausted": 7, + } +) + +func (x TrailerAirStatus) Enum() *TrailerAirStatus { + p := new(TrailerAirStatus) + *p = x + return p +} + +func (x TrailerAirStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TrailerAirStatus) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[22].Descriptor() +} + +func (TrailerAirStatus) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[22] +} + +func (x TrailerAirStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TrailerAirStatus.Descriptor instead. +func (TrailerAirStatus) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{22} +} + +// LocationValue is a Datum value type +type LocationValue struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Latitude float64 `protobuf:"fixed64,1,opt,name=latitude,proto3" json:"latitude,omitempty"` + Longitude float64 `protobuf:"fixed64,2,opt,name=longitude,proto3" json:"longitude,omitempty"` +} + +func (x *LocationValue) Reset() { + *x = LocationValue{} + if protoimpl.UnsafeEnabled { + mi := &file_protos_vehicle_data_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LocationValue) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LocationValue) ProtoMessage() {} + +func (x *LocationValue) ProtoReflect() protoreflect.Message { + mi := &file_protos_vehicle_data_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LocationValue.ProtoReflect.Descriptor instead. +func (*LocationValue) Descriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{0} +} + +func (x *LocationValue) GetLatitude() float64 { + if x != nil { + return x.Latitude + } + return 0 +} + +func (x *LocationValue) GetLongitude() float64 { + if x != nil { + return x.Longitude + } + return 0 +} + +type Doors struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DriverFront bool `protobuf:"varint,1,opt,name=DriverFront,proto3" json:"DriverFront,omitempty"` + PassengerFront bool `protobuf:"varint,2,opt,name=PassengerFront,proto3" json:"PassengerFront,omitempty"` + DriverRear bool `protobuf:"varint,3,opt,name=DriverRear,proto3" json:"DriverRear,omitempty"` + PassengerRear bool `protobuf:"varint,4,opt,name=PassengerRear,proto3" json:"PassengerRear,omitempty"` + TrunkFront bool `protobuf:"varint,5,opt,name=TrunkFront,proto3" json:"TrunkFront,omitempty"` + TrunkRear bool `protobuf:"varint,6,opt,name=TrunkRear,proto3" json:"TrunkRear,omitempty"` +} + +func (x *Doors) Reset() { + *x = Doors{} + if protoimpl.UnsafeEnabled { + mi := &file_protos_vehicle_data_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Doors) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Doors) ProtoMessage() {} + +func (x *Doors) ProtoReflect() protoreflect.Message { + mi := &file_protos_vehicle_data_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } -) + return mi.MessageOf(x) +} -func (x ShiftState) Enum() *ShiftState { - p := new(ShiftState) - *p = x - return p +// Deprecated: Use Doors.ProtoReflect.Descriptor instead. +func (*Doors) Descriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{1} } -func (x ShiftState) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +func (x *Doors) GetDriverFront() bool { + if x != nil { + return x.DriverFront + } + return false } -func (ShiftState) Descriptor() protoreflect.EnumDescriptor { - return file_protos_vehicle_data_proto_enumTypes[2].Descriptor() +func (x *Doors) GetPassengerFront() bool { + if x != nil { + return x.PassengerFront + } + return false } -func (ShiftState) Type() protoreflect.EnumType { - return &file_protos_vehicle_data_proto_enumTypes[2] +func (x *Doors) GetDriverRear() bool { + if x != nil { + return x.DriverRear + } + return false } -func (x ShiftState) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) +func (x *Doors) GetPassengerRear() bool { + if x != nil { + return x.PassengerRear + } + return false } -// Deprecated: Use ShiftState.Descriptor instead. -func (ShiftState) EnumDescriptor() ([]byte, []int) { - return file_protos_vehicle_data_proto_rawDescGZIP(), []int{2} +func (x *Doors) GetTrunkFront() bool { + if x != nil { + return x.TrunkFront + } + return false } -// LocationValue is a Datum value type -type LocationValue struct { +func (x *Doors) GetTrunkRear() bool { + if x != nil { + return x.TrunkRear + } + return false +} + +type Time struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Latitude float64 `protobuf:"fixed64,1,opt,name=latitude,proto3" json:"latitude,omitempty"` - Longitude float64 `protobuf:"fixed64,2,opt,name=longitude,proto3" json:"longitude,omitempty"` + Hour int32 `protobuf:"varint,1,opt,name=hour,proto3" json:"hour,omitempty"` + Minute int32 `protobuf:"varint,2,opt,name=minute,proto3" json:"minute,omitempty"` + Second int32 `protobuf:"varint,3,opt,name=second,proto3" json:"second,omitempty"` } -func (x *LocationValue) Reset() { - *x = LocationValue{} +func (x *Time) Reset() { + *x = Time{} if protoimpl.UnsafeEnabled { - mi := &file_protos_vehicle_data_proto_msgTypes[0] + mi := &file_protos_vehicle_data_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *LocationValue) String() string { +func (x *Time) String() string { return protoimpl.X.MessageStringOf(x) } -func (*LocationValue) ProtoMessage() {} +func (*Time) ProtoMessage() {} -func (x *LocationValue) ProtoReflect() protoreflect.Message { - mi := &file_protos_vehicle_data_proto_msgTypes[0] +func (x *Time) ProtoReflect() protoreflect.Message { + mi := &file_protos_vehicle_data_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -759,21 +2105,28 @@ func (x *LocationValue) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use LocationValue.ProtoReflect.Descriptor instead. -func (*LocationValue) Descriptor() ([]byte, []int) { - return file_protos_vehicle_data_proto_rawDescGZIP(), []int{0} +// Deprecated: Use Time.ProtoReflect.Descriptor instead. +func (*Time) Descriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{2} } -func (x *LocationValue) GetLatitude() float64 { +func (x *Time) GetHour() int32 { if x != nil { - return x.Latitude + return x.Hour } return 0 } -func (x *LocationValue) GetLongitude() float64 { +func (x *Time) GetMinute() int32 { if x != nil { - return x.Longitude + return x.Minute + } + return 0 +} + +func (x *Time) GetSecond() int32 { + if x != nil { + return x.Second } return 0 } @@ -798,13 +2151,35 @@ type Value struct { // *Value_ChargingValue // *Value_ShiftStateValue // *Value_Invalid + // *Value_LaneAssistLevelValue + // *Value_ScheduledChargingModeValue + // *Value_SentryModeStateValue + // *Value_SpeedAssistLevelValue + // *Value_BmsStateValue + // *Value_BuckleStatusValue + // *Value_CarTypeValue + // *Value_ChargePortValue + // *Value_ChargePortLatchValue + // *Value_CruiseStateValue + // *Value_DoorValue + // *Value_DriveInverterStateValue + // *Value_HvilStatusValue + // *Value_WindowStateValue + // *Value_SeatFoldPositionValue + // *Value_TractorAirStatusValue + // *Value_FollowDistanceValue + // *Value_ForwardCollisionSensitivityValue + // *Value_GuestModeMobileAccessValue + // *Value_TrailerAirStatusValue + // *Value_TimeValue + // *Value_DetailedChargeStateValue Value isValue_Value `protobuf_oneof:"value"` } func (x *Value) Reset() { *x = Value{} if protoimpl.UnsafeEnabled { - mi := &file_protos_vehicle_data_proto_msgTypes[1] + mi := &file_protos_vehicle_data_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -817,7 +2192,7 @@ func (x *Value) String() string { func (*Value) ProtoMessage() {} func (x *Value) ProtoReflect() protoreflect.Message { - mi := &file_protos_vehicle_data_proto_msgTypes[1] + mi := &file_protos_vehicle_data_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -830,7 +2205,7 @@ func (x *Value) ProtoReflect() protoreflect.Message { // Deprecated: Use Value.ProtoReflect.Descriptor instead. func (*Value) Descriptor() ([]byte, []int) { - return file_protos_vehicle_data_proto_rawDescGZIP(), []int{1} + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{3} } func (m *Value) GetValue() isValue_Value { @@ -910,6 +2285,160 @@ func (x *Value) GetInvalid() bool { return false } +func (x *Value) GetLaneAssistLevelValue() LaneAssistLevel { + if x, ok := x.GetValue().(*Value_LaneAssistLevelValue); ok { + return x.LaneAssistLevelValue + } + return LaneAssistLevel_LaneAssistLevelUnknown +} + +func (x *Value) GetScheduledChargingModeValue() ScheduledChargingModeValue { + if x, ok := x.GetValue().(*Value_ScheduledChargingModeValue); ok { + return x.ScheduledChargingModeValue + } + return ScheduledChargingModeValue_ScheduledChargingModeUnknown +} + +func (x *Value) GetSentryModeStateValue() SentryModeState { + if x, ok := x.GetValue().(*Value_SentryModeStateValue); ok { + return x.SentryModeStateValue + } + return SentryModeState_SentryModeStateUnknown +} + +func (x *Value) GetSpeedAssistLevelValue() SpeedAssistLevel { + if x, ok := x.GetValue().(*Value_SpeedAssistLevelValue); ok { + return x.SpeedAssistLevelValue + } + return SpeedAssistLevel_SpeedAssistLevelUnknown +} + +func (x *Value) GetBmsStateValue() BMSStateValue { + if x, ok := x.GetValue().(*Value_BmsStateValue); ok { + return x.BmsStateValue + } + return BMSStateValue_BMSStateUnknown +} + +func (x *Value) GetBuckleStatusValue() BuckleStatus { + if x, ok := x.GetValue().(*Value_BuckleStatusValue); ok { + return x.BuckleStatusValue + } + return BuckleStatus_BuckleStatusUnknown +} + +func (x *Value) GetCarTypeValue() CarTypeValue { + if x, ok := x.GetValue().(*Value_CarTypeValue); ok { + return x.CarTypeValue + } + return CarTypeValue_CarTypeUnknown +} + +func (x *Value) GetChargePortValue() ChargePortValue { + if x, ok := x.GetValue().(*Value_ChargePortValue); ok { + return x.ChargePortValue + } + return ChargePortValue_ChargePortUnknown +} + +func (x *Value) GetChargePortLatchValue() ChargePortLatchValue { + if x, ok := x.GetValue().(*Value_ChargePortLatchValue); ok { + return x.ChargePortLatchValue + } + return ChargePortLatchValue_ChargePortLatchUnknown +} + +func (x *Value) GetCruiseStateValue() CruiseStateValue { + if x, ok := x.GetValue().(*Value_CruiseStateValue); ok { + return x.CruiseStateValue + } + return CruiseStateValue_CruiseStateUnknown +} + +func (x *Value) GetDoorValue() *Doors { + if x, ok := x.GetValue().(*Value_DoorValue); ok { + return x.DoorValue + } + return nil +} + +func (x *Value) GetDriveInverterStateValue() DriveInverterState { + if x, ok := x.GetValue().(*Value_DriveInverterStateValue); ok { + return x.DriveInverterStateValue + } + return DriveInverterState_DriveInverterStateUnknown +} + +func (x *Value) GetHvilStatusValue() HvilStatus { + if x, ok := x.GetValue().(*Value_HvilStatusValue); ok { + return x.HvilStatusValue + } + return HvilStatus_HvilStatusUnknown +} + +func (x *Value) GetWindowStateValue() WindowState { + if x, ok := x.GetValue().(*Value_WindowStateValue); ok { + return x.WindowStateValue + } + return WindowState_WindowStateUnknown +} + +func (x *Value) GetSeatFoldPositionValue() SeatFoldPosition { + if x, ok := x.GetValue().(*Value_SeatFoldPositionValue); ok { + return x.SeatFoldPositionValue + } + return SeatFoldPosition_SeatFoldPositionUnknown +} + +func (x *Value) GetTractorAirStatusValue() TractorAirStatus { + if x, ok := x.GetValue().(*Value_TractorAirStatusValue); ok { + return x.TractorAirStatusValue + } + return TractorAirStatus_TractorAirStatusUnknown +} + +func (x *Value) GetFollowDistanceValue() FollowDistance { + if x, ok := x.GetValue().(*Value_FollowDistanceValue); ok { + return x.FollowDistanceValue + } + return FollowDistance_FollowDistanceUnknown +} + +func (x *Value) GetForwardCollisionSensitivityValue() ForwardCollisionSensitivity { + if x, ok := x.GetValue().(*Value_ForwardCollisionSensitivityValue); ok { + return x.ForwardCollisionSensitivityValue + } + return ForwardCollisionSensitivity_ForwardCollisionSensitivityUnknown +} + +func (x *Value) GetGuestModeMobileAccessValue() GuestModeMobileAccess { + if x, ok := x.GetValue().(*Value_GuestModeMobileAccessValue); ok { + return x.GuestModeMobileAccessValue + } + return GuestModeMobileAccess_GuestModeMobileAccessUnknown +} + +func (x *Value) GetTrailerAirStatusValue() TrailerAirStatus { + if x, ok := x.GetValue().(*Value_TrailerAirStatusValue); ok { + return x.TrailerAirStatusValue + } + return TrailerAirStatus_TrailerAirStatusUnknown +} + +func (x *Value) GetTimeValue() *Time { + if x, ok := x.GetValue().(*Value_TimeValue); ok { + return x.TimeValue + } + return nil +} + +func (x *Value) GetDetailedChargeStateValue() DetailedChargeStateValue { + if x, ok := x.GetValue().(*Value_DetailedChargeStateValue); ok { + return x.DetailedChargeStateValue + } + return DetailedChargeStateValue_DetailedChargeStateUnknown +} + type isValue_Value interface { isValue_Value() } @@ -954,6 +2483,94 @@ type Value_Invalid struct { Invalid bool `protobuf:"varint,10,opt,name=invalid,proto3,oneof"` } +type Value_LaneAssistLevelValue struct { + LaneAssistLevelValue LaneAssistLevel `protobuf:"varint,11,opt,name=lane_assist_level_value,json=laneAssistLevelValue,proto3,enum=telemetry.vehicle_data.LaneAssistLevel,oneof"` +} + +type Value_ScheduledChargingModeValue struct { + ScheduledChargingModeValue ScheduledChargingModeValue `protobuf:"varint,12,opt,name=scheduled_charging_mode_value,json=scheduledChargingModeValue,proto3,enum=telemetry.vehicle_data.ScheduledChargingModeValue,oneof"` +} + +type Value_SentryModeStateValue struct { + SentryModeStateValue SentryModeState `protobuf:"varint,13,opt,name=sentry_mode_state_value,json=sentryModeStateValue,proto3,enum=telemetry.vehicle_data.SentryModeState,oneof"` +} + +type Value_SpeedAssistLevelValue struct { + SpeedAssistLevelValue SpeedAssistLevel `protobuf:"varint,14,opt,name=speed_assist_level_value,json=speedAssistLevelValue,proto3,enum=telemetry.vehicle_data.SpeedAssistLevel,oneof"` +} + +type Value_BmsStateValue struct { + BmsStateValue BMSStateValue `protobuf:"varint,15,opt,name=bms_state_value,json=bmsStateValue,proto3,enum=telemetry.vehicle_data.BMSStateValue,oneof"` +} + +type Value_BuckleStatusValue struct { + BuckleStatusValue BuckleStatus `protobuf:"varint,16,opt,name=buckle_status_value,json=buckleStatusValue,proto3,enum=telemetry.vehicle_data.BuckleStatus,oneof"` +} + +type Value_CarTypeValue struct { + CarTypeValue CarTypeValue `protobuf:"varint,17,opt,name=car_type_value,json=carTypeValue,proto3,enum=telemetry.vehicle_data.CarTypeValue,oneof"` +} + +type Value_ChargePortValue struct { + ChargePortValue ChargePortValue `protobuf:"varint,18,opt,name=charge_port_value,json=chargePortValue,proto3,enum=telemetry.vehicle_data.ChargePortValue,oneof"` +} + +type Value_ChargePortLatchValue struct { + ChargePortLatchValue ChargePortLatchValue `protobuf:"varint,19,opt,name=charge_port_latch_value,json=chargePortLatchValue,proto3,enum=telemetry.vehicle_data.ChargePortLatchValue,oneof"` +} + +type Value_CruiseStateValue struct { + CruiseStateValue CruiseStateValue `protobuf:"varint,20,opt,name=cruise_state_value,json=cruiseStateValue,proto3,enum=telemetry.vehicle_data.CruiseStateValue,oneof"` +} + +type Value_DoorValue struct { + DoorValue *Doors `protobuf:"bytes,21,opt,name=door_value,json=doorValue,proto3,oneof"` +} + +type Value_DriveInverterStateValue struct { + DriveInverterStateValue DriveInverterState `protobuf:"varint,22,opt,name=drive_inverter_state_value,json=driveInverterStateValue,proto3,enum=telemetry.vehicle_data.DriveInverterState,oneof"` +} + +type Value_HvilStatusValue struct { + HvilStatusValue HvilStatus `protobuf:"varint,23,opt,name=hvil_status_value,json=hvilStatusValue,proto3,enum=telemetry.vehicle_data.HvilStatus,oneof"` +} + +type Value_WindowStateValue struct { + WindowStateValue WindowState `protobuf:"varint,24,opt,name=window_state_value,json=windowStateValue,proto3,enum=telemetry.vehicle_data.WindowState,oneof"` +} + +type Value_SeatFoldPositionValue struct { + SeatFoldPositionValue SeatFoldPosition `protobuf:"varint,25,opt,name=seat_fold_position_value,json=seatFoldPositionValue,proto3,enum=telemetry.vehicle_data.SeatFoldPosition,oneof"` +} + +type Value_TractorAirStatusValue struct { + TractorAirStatusValue TractorAirStatus `protobuf:"varint,26,opt,name=tractor_air_status_value,json=tractorAirStatusValue,proto3,enum=telemetry.vehicle_data.TractorAirStatus,oneof"` +} + +type Value_FollowDistanceValue struct { + FollowDistanceValue FollowDistance `protobuf:"varint,27,opt,name=follow_distance_value,json=followDistanceValue,proto3,enum=telemetry.vehicle_data.FollowDistance,oneof"` +} + +type Value_ForwardCollisionSensitivityValue struct { + ForwardCollisionSensitivityValue ForwardCollisionSensitivity `protobuf:"varint,28,opt,name=forward_collision_sensitivity_value,json=forwardCollisionSensitivityValue,proto3,enum=telemetry.vehicle_data.ForwardCollisionSensitivity,oneof"` +} + +type Value_GuestModeMobileAccessValue struct { + GuestModeMobileAccessValue GuestModeMobileAccess `protobuf:"varint,29,opt,name=guest_mode_mobile_access_value,json=guestModeMobileAccessValue,proto3,enum=telemetry.vehicle_data.GuestModeMobileAccess,oneof"` +} + +type Value_TrailerAirStatusValue struct { + TrailerAirStatusValue TrailerAirStatus `protobuf:"varint,30,opt,name=trailer_air_status_value,json=trailerAirStatusValue,proto3,enum=telemetry.vehicle_data.TrailerAirStatus,oneof"` +} + +type Value_TimeValue struct { + TimeValue *Time `protobuf:"bytes,31,opt,name=time_value,json=timeValue,proto3,oneof"` +} + +type Value_DetailedChargeStateValue struct { + DetailedChargeStateValue DetailedChargeStateValue `protobuf:"varint,32,opt,name=detailed_charge_state_value,json=detailedChargeStateValue,proto3,enum=telemetry.vehicle_data.DetailedChargeStateValue,oneof"` +} + func (*Value_StringValue) isValue_Value() {} func (*Value_IntValue) isValue_Value() {} @@ -974,6 +2591,50 @@ func (*Value_ShiftStateValue) isValue_Value() {} func (*Value_Invalid) isValue_Value() {} +func (*Value_LaneAssistLevelValue) isValue_Value() {} + +func (*Value_ScheduledChargingModeValue) isValue_Value() {} + +func (*Value_SentryModeStateValue) isValue_Value() {} + +func (*Value_SpeedAssistLevelValue) isValue_Value() {} + +func (*Value_BmsStateValue) isValue_Value() {} + +func (*Value_BuckleStatusValue) isValue_Value() {} + +func (*Value_CarTypeValue) isValue_Value() {} + +func (*Value_ChargePortValue) isValue_Value() {} + +func (*Value_ChargePortLatchValue) isValue_Value() {} + +func (*Value_CruiseStateValue) isValue_Value() {} + +func (*Value_DoorValue) isValue_Value() {} + +func (*Value_DriveInverterStateValue) isValue_Value() {} + +func (*Value_HvilStatusValue) isValue_Value() {} + +func (*Value_WindowStateValue) isValue_Value() {} + +func (*Value_SeatFoldPositionValue) isValue_Value() {} + +func (*Value_TractorAirStatusValue) isValue_Value() {} + +func (*Value_FollowDistanceValue) isValue_Value() {} + +func (*Value_ForwardCollisionSensitivityValue) isValue_Value() {} + +func (*Value_GuestModeMobileAccessValue) isValue_Value() {} + +func (*Value_TrailerAirStatusValue) isValue_Value() {} + +func (*Value_TimeValue) isValue_Value() {} + +func (*Value_DetailedChargeStateValue) isValue_Value() {} + // Datum represents a single field and its value type Datum struct { state protoimpl.MessageState @@ -987,7 +2648,7 @@ type Datum struct { func (x *Datum) Reset() { *x = Datum{} if protoimpl.UnsafeEnabled { - mi := &file_protos_vehicle_data_proto_msgTypes[2] + mi := &file_protos_vehicle_data_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1000,7 +2661,7 @@ func (x *Datum) String() string { func (*Datum) ProtoMessage() {} func (x *Datum) ProtoReflect() protoreflect.Message { - mi := &file_protos_vehicle_data_proto_msgTypes[2] + mi := &file_protos_vehicle_data_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1013,7 +2674,7 @@ func (x *Datum) ProtoReflect() protoreflect.Message { // Deprecated: Use Datum.ProtoReflect.Descriptor instead. func (*Datum) Descriptor() ([]byte, []int) { - return file_protos_vehicle_data_proto_rawDescGZIP(), []int{2} + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{4} } func (x *Datum) GetKey() Field { @@ -1044,7 +2705,7 @@ type Payload struct { func (x *Payload) Reset() { *x = Payload{} if protoimpl.UnsafeEnabled { - mi := &file_protos_vehicle_data_proto_msgTypes[3] + mi := &file_protos_vehicle_data_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1057,7 +2718,7 @@ func (x *Payload) String() string { func (*Payload) ProtoMessage() {} func (x *Payload) ProtoReflect() protoreflect.Message { - mi := &file_protos_vehicle_data_proto_msgTypes[3] + mi := &file_protos_vehicle_data_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1070,7 +2731,7 @@ func (x *Payload) ProtoReflect() protoreflect.Message { // Deprecated: Use Payload.ProtoReflect.Descriptor instead. func (*Payload) Descriptor() ([]byte, []int) { - return file_protos_vehicle_data_proto_rawDescGZIP(), []int{3} + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{5} } func (x *Payload) GetData() []*Datum { @@ -1107,325 +2768,749 @@ var file_protos_vehicle_data_proto_rawDesc = []byte{ 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x6c, 0x61, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, 0x65, 0x22, - 0xf2, 0x03, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x73, 0x74, 0x72, - 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1d, - 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1f, 0x0a, - 0x0a, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x03, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x21, - 0x0a, 0x0b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x56, 0x61, 0x6c, 0x75, - 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, 0x6f, 0x75, 0x62, 0x6c, - 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, - 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, - 0x0c, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4e, 0x0a, - 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, - 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0d, - 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4e, 0x0a, - 0x0e, 0x63, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, - 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, - 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0d, - 0x63, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x50, 0x0a, - 0x11, 0x73, 0x68, 0x69, 0x66, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, + 0xd5, 0x01, 0x0a, 0x05, 0x44, 0x6f, 0x6f, 0x72, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x44, 0x72, 0x69, + 0x76, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x50, + 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0e, 0x50, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x46, 0x72, + 0x6f, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, 0x65, 0x61, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x52, + 0x65, 0x61, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x50, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, + 0x52, 0x65, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x50, 0x61, 0x73, 0x73, + 0x65, 0x6e, 0x67, 0x65, 0x72, 0x52, 0x65, 0x61, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x54, 0x72, 0x75, + 0x6e, 0x6b, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x54, + 0x72, 0x75, 0x6e, 0x6b, 0x46, 0x72, 0x6f, 0x6e, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x54, 0x72, 0x75, + 0x6e, 0x6b, 0x52, 0x65, 0x61, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x54, 0x72, + 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x61, 0x72, 0x22, 0x4a, 0x0a, 0x04, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x68, 0x6f, 0x75, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x68, + 0x6f, 0x75, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, + 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x65, 0x63, + 0x6f, 0x6e, 0x64, 0x22, 0xb0, 0x14, 0x0a, 0x05, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, + 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x1d, 0x0a, 0x09, 0x69, 0x6e, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x08, 0x69, 0x6e, 0x74, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x1f, 0x0a, 0x0a, 0x6c, 0x6f, 0x6e, 0x67, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x09, 0x6c, 0x6f, 0x6e, 0x67, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x21, 0x0a, 0x0b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x48, 0x00, 0x52, 0x0a, 0x66, 0x6c, 0x6f, 0x61, 0x74, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x23, 0x0a, 0x0c, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x0b, 0x64, + 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x25, 0x0a, 0x0d, 0x62, 0x6f, + 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x08, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x4e, 0x0a, 0x0e, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x74, 0x65, 0x6c, 0x65, + 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x48, 0x00, 0x52, 0x0d, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x4e, 0x0a, 0x0e, 0x63, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x74, 0x65, 0x6c, 0x65, + 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x48, 0x00, 0x52, 0x0d, 0x63, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x50, 0x0a, 0x11, 0x73, 0x68, 0x69, 0x66, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, + 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x74, + 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x68, 0x69, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x48, 0x00, 0x52, 0x0f, 0x73, 0x68, 0x69, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x61, + 0x6c, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x07, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x12, + 0x60, 0x0a, 0x17, 0x6c, 0x61, 0x6e, 0x65, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x5f, 0x6c, + 0x65, 0x76, 0x65, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x27, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, + 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x4c, 0x61, 0x6e, 0x65, 0x41, 0x73, + 0x73, 0x69, 0x73, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x14, 0x6c, 0x61, 0x6e, + 0x65, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x77, 0x0a, 0x1d, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x63, + 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, - 0x61, 0x2e, 0x53, 0x68, 0x69, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x0f, - 0x73, 0x68, 0x69, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, - 0x1a, 0x0a, 0x07, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, - 0x48, 0x00, 0x52, 0x07, 0x69, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x42, 0x07, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x22, 0x6d, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x75, 0x6d, 0x12, 0x2f, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x74, 0x65, 0x6c, + 0x61, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x67, + 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x1a, + 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x60, 0x0a, 0x17, 0x73, 0x65, + 0x6e, 0x74, 0x72, 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x74, 0x65, + 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x14, 0x73, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x4d, 0x6f, + 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x63, 0x0a, 0x18, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x5f, 0x6c, 0x65, 0x76, + 0x65, 0x6c, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, + 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, 0x63, + 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x41, 0x73, 0x73, + 0x69, 0x73, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x48, 0x00, 0x52, 0x15, 0x73, 0x70, 0x65, 0x65, + 0x64, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x4f, 0x0a, 0x0f, 0x62, 0x6d, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x64, - 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x33, - 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, - 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x07, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, - 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, - 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, - 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x75, 0x6d, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x76, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x69, 0x6e, 0x2a, - 0xe7, 0x1e, 0x0a, 0x05, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x6e, 0x6b, - 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x72, 0x69, 0x76, 0x65, 0x52, - 0x61, 0x69, 0x6c, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x6d, 0x73, 0x46, 0x75, 0x6c, - 0x6c, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, - 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x65, - 0x64, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x4f, 0x64, 0x6f, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x10, - 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x56, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, - 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x10, 0x07, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x6f, 0x63, 0x10, 0x08, 0x12, 0x0e, 0x0a, 0x0a, - 0x44, 0x43, 0x44, 0x43, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x09, 0x12, 0x08, 0x0a, 0x04, - 0x47, 0x65, 0x61, 0x72, 0x10, 0x0a, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x73, 0x6f, 0x6c, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x10, 0x0b, 0x12, - 0x11, 0x0a, 0x0d, 0x50, 0x65, 0x64, 0x61, 0x6c, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x10, 0x0c, 0x12, 0x0e, 0x0a, 0x0a, 0x42, 0x72, 0x61, 0x6b, 0x65, 0x50, 0x65, 0x64, 0x61, 0x6c, - 0x10, 0x0d, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x69, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x10, 0x0e, - 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x69, 0x48, 0x65, 0x61, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x54, 0x52, - 0x10, 0x0f, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x69, 0x41, 0x78, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x65, - 0x64, 0x52, 0x10, 0x10, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x69, 0x54, 0x6f, 0x72, 0x71, 0x75, 0x65, - 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x10, 0x11, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x69, 0x53, 0x74, 0x61, - 0x74, 0x6f, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x52, 0x10, 0x12, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x69, - 0x56, 0x42, 0x61, 0x74, 0x52, 0x10, 0x13, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x69, 0x4d, 0x6f, 0x74, - 0x6f, 0x72, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x10, 0x14, 0x12, 0x0c, 0x0a, 0x08, - 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x15, 0x12, 0x0c, 0x0a, 0x08, 0x47, 0x70, - 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0x16, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x70, 0x73, 0x48, - 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x17, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x75, 0x6d, 0x42, - 0x72, 0x69, 0x63, 0x6b, 0x56, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x78, 0x10, 0x18, - 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x72, 0x69, 0x63, 0x6b, 0x56, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, - 0x4d, 0x61, 0x78, 0x10, 0x19, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x75, 0x6d, 0x42, 0x72, 0x69, 0x63, - 0x6b, 0x56, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x4d, 0x69, 0x6e, 0x10, 0x1a, 0x12, 0x13, 0x0a, - 0x0f, 0x42, 0x72, 0x69, 0x63, 0x6b, 0x56, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x4d, 0x69, 0x6e, - 0x10, 0x1b, 0x12, 0x14, 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x54, - 0x65, 0x6d, 0x70, 0x4d, 0x61, 0x78, 0x10, 0x1c, 0x12, 0x11, 0x0a, 0x0d, 0x4d, 0x6f, 0x64, 0x75, - 0x6c, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x4d, 0x61, 0x78, 0x10, 0x1d, 0x12, 0x14, 0x0a, 0x10, 0x4e, - 0x75, 0x6d, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x4d, 0x69, 0x6e, 0x10, - 0x1e, 0x12, 0x11, 0x0a, 0x0d, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x4d, - 0x69, 0x6e, 0x10, 0x1f, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x61, 0x74, 0x65, 0x64, 0x52, 0x61, 0x6e, - 0x67, 0x65, 0x10, 0x20, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x76, 0x69, 0x6c, 0x10, 0x21, 0x12, 0x16, - 0x0a, 0x12, 0x44, 0x43, 0x43, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x65, 0x72, - 0x67, 0x79, 0x49, 0x6e, 0x10, 0x22, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x43, 0x43, 0x68, 0x61, 0x72, - 0x67, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x10, 0x23, 0x12, 0x16, 0x0a, 0x12, 0x41, - 0x43, 0x43, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x49, - 0x6e, 0x10, 0x24, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x43, 0x43, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, - 0x67, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x10, 0x25, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x68, 0x61, 0x72, - 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6f, 0x63, 0x10, 0x26, 0x12, 0x16, 0x0a, 0x12, - 0x46, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x72, 0x50, 0x72, 0x65, 0x73, 0x65, - 0x6e, 0x74, 0x10, 0x27, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x73, 0x74, 0x42, 0x61, 0x74, 0x74, 0x65, - 0x72, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x10, 0x28, 0x12, 0x15, 0x0a, 0x11, 0x49, 0x64, 0x65, - 0x61, 0x6c, 0x42, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x10, 0x29, - 0x12, 0x10, 0x0a, 0x0c, 0x42, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x10, 0x2a, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x46, 0x75, 0x6c, 0x6c, - 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x10, 0x2b, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x10, 0x2c, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x50, 0x65, 0x6e, - 0x64, 0x69, 0x6e, 0x67, 0x10, 0x2d, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x10, 0x2e, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x10, 0x2f, 0x12, 0x19, - 0x0a, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x67, - 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x10, 0x30, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x68, 0x61, - 0x72, 0x67, 0x65, 0x41, 0x6d, 0x70, 0x73, 0x10, 0x31, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x68, 0x61, - 0x72, 0x67, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x10, 0x32, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x72, 0x50, 0x68, 0x61, - 0x73, 0x65, 0x73, 0x10, 0x33, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, - 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6c, 0x64, 0x57, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x4d, 0x6f, - 0x64, 0x65, 0x10, 0x34, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x43, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0x35, 0x12, 0x1b, - 0x0a, 0x17, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x78, 0x10, 0x36, 0x12, 0x13, 0x0a, 0x0f, 0x42, - 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x48, 0x65, 0x61, 0x74, 0x65, 0x72, 0x4f, 0x6e, 0x10, 0x37, - 0x12, 0x18, 0x0a, 0x14, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x50, 0x6f, 0x77, - 0x65, 0x72, 0x54, 0x6f, 0x48, 0x65, 0x61, 0x74, 0x10, 0x38, 0x12, 0x22, 0x0a, 0x1e, 0x53, 0x75, - 0x70, 0x65, 0x72, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, - 0x6e, 0x54, 0x72, 0x69, 0x70, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x10, 0x39, 0x12, 0x0d, - 0x0a, 0x09, 0x44, 0x6f, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0x3a, 0x12, 0x0a, 0x0a, - 0x06, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0x3b, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x64, 0x57, - 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x10, 0x3c, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x70, 0x57, 0x69, 0x6e, - 0x64, 0x6f, 0x77, 0x10, 0x3d, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x64, 0x57, 0x69, 0x6e, 0x64, 0x6f, - 0x77, 0x10, 0x3e, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x10, - 0x3f, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x4e, 0x61, 0x6d, 0x65, - 0x10, 0x40, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, - 0x10, 0x41, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, - 0x4d, 0x6f, 0x64, 0x65, 0x10, 0x42, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, - 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4d, 0x70, 0x68, 0x10, 0x43, 0x12, 0x0b, 0x0a, 0x07, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x10, 0x44, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x70, 0x6d, 0x73, - 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x46, 0x6c, 0x10, 0x45, 0x12, 0x12, 0x0a, 0x0e, - 0x54, 0x70, 0x6d, 0x73, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x46, 0x72, 0x10, 0x46, - 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x70, 0x6d, 0x73, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, - 0x52, 0x6c, 0x10, 0x47, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x70, 0x6d, 0x73, 0x50, 0x72, 0x65, 0x73, - 0x73, 0x75, 0x72, 0x65, 0x52, 0x72, 0x10, 0x48, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x65, 0x6d, 0x69, - 0x74, 0x72, 0x75, 0x63, 0x6b, 0x54, 0x70, 0x6d, 0x73, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, - 0x65, 0x52, 0x65, 0x31, 0x4c, 0x30, 0x10, 0x49, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x65, 0x6d, 0x69, - 0x74, 0x72, 0x75, 0x63, 0x6b, 0x54, 0x70, 0x6d, 0x73, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, - 0x65, 0x52, 0x65, 0x31, 0x4c, 0x31, 0x10, 0x4a, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x65, 0x6d, 0x69, - 0x74, 0x72, 0x75, 0x63, 0x6b, 0x54, 0x70, 0x6d, 0x73, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, - 0x65, 0x52, 0x65, 0x31, 0x52, 0x30, 0x10, 0x4b, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x65, 0x6d, 0x69, - 0x74, 0x72, 0x75, 0x63, 0x6b, 0x54, 0x70, 0x6d, 0x73, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, - 0x65, 0x52, 0x65, 0x31, 0x52, 0x31, 0x10, 0x4c, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x65, 0x6d, 0x69, - 0x74, 0x72, 0x75, 0x63, 0x6b, 0x54, 0x70, 0x6d, 0x73, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, - 0x65, 0x52, 0x65, 0x32, 0x4c, 0x30, 0x10, 0x4d, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x65, 0x6d, 0x69, - 0x74, 0x72, 0x75, 0x63, 0x6b, 0x54, 0x70, 0x6d, 0x73, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, - 0x65, 0x52, 0x65, 0x32, 0x4c, 0x31, 0x10, 0x4e, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x65, 0x6d, 0x69, - 0x74, 0x72, 0x75, 0x63, 0x6b, 0x54, 0x70, 0x6d, 0x73, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, - 0x65, 0x52, 0x65, 0x32, 0x52, 0x30, 0x10, 0x4f, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x65, 0x6d, 0x69, - 0x74, 0x72, 0x75, 0x63, 0x6b, 0x54, 0x70, 0x6d, 0x73, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, - 0x65, 0x52, 0x65, 0x32, 0x52, 0x31, 0x10, 0x50, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x70, 0x6d, 0x73, - 0x4c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6c, 0x10, 0x51, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x70, 0x6d, 0x73, - 0x4c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x46, 0x72, 0x10, 0x52, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x70, 0x6d, 0x73, - 0x4c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x52, 0x6c, 0x10, 0x53, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x70, 0x6d, 0x73, - 0x4c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x52, 0x72, 0x10, 0x54, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x6e, 0x73, 0x69, - 0x64, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x10, 0x55, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x75, 0x74, 0x73, - 0x69, 0x64, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x10, 0x56, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x65, 0x61, - 0x74, 0x48, 0x65, 0x61, 0x74, 0x65, 0x72, 0x4c, 0x65, 0x66, 0x74, 0x10, 0x57, 0x12, 0x13, 0x0a, - 0x0f, 0x53, 0x65, 0x61, 0x74, 0x48, 0x65, 0x61, 0x74, 0x65, 0x72, 0x52, 0x69, 0x67, 0x68, 0x74, - 0x10, 0x58, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x74, 0x48, 0x65, 0x61, 0x74, 0x65, 0x72, - 0x52, 0x65, 0x61, 0x72, 0x4c, 0x65, 0x66, 0x74, 0x10, 0x59, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x65, - 0x61, 0x74, 0x48, 0x65, 0x61, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x72, 0x52, 0x69, 0x67, 0x68, - 0x74, 0x10, 0x5a, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x65, 0x61, 0x74, 0x48, 0x65, 0x61, 0x74, 0x65, - 0x72, 0x52, 0x65, 0x61, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x10, 0x5b, 0x12, 0x17, 0x0a, - 0x13, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x65, 0x61, 0x74, 0x43, 0x6c, 0x69, 0x6d, 0x61, 0x74, 0x65, - 0x4c, 0x65, 0x66, 0x74, 0x10, 0x5c, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x65, - 0x61, 0x74, 0x43, 0x6c, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x52, 0x69, 0x67, 0x68, 0x74, 0x10, 0x5d, - 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x53, 0x65, 0x61, 0x74, 0x42, 0x65, - 0x6c, 0x74, 0x10, 0x5e, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, - 0x72, 0x53, 0x65, 0x61, 0x74, 0x42, 0x65, 0x6c, 0x74, 0x10, 0x5f, 0x12, 0x16, 0x0a, 0x12, 0x44, - 0x72, 0x69, 0x76, 0x65, 0x72, 0x53, 0x65, 0x61, 0x74, 0x4f, 0x63, 0x63, 0x75, 0x70, 0x69, 0x65, - 0x64, 0x10, 0x60, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x65, 0x6d, 0x69, 0x74, 0x72, 0x75, 0x63, 0x6b, - 0x50, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x53, 0x65, 0x61, 0x74, 0x46, 0x6f, 0x6c, - 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x61, 0x12, 0x17, 0x0a, 0x13, 0x4c, - 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x10, 0x62, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74, 0x75, 0x64, - 0x69, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x10, 0x63, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x72, 0x75, 0x69, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x10, 0x64, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x72, 0x75, 0x69, 0x73, 0x65, 0x53, 0x65, 0x74, - 0x53, 0x70, 0x65, 0x65, 0x64, 0x10, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x69, 0x66, 0x65, 0x74, - 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x55, 0x73, 0x65, 0x64, 0x10, 0x66, 0x12, - 0x1b, 0x0a, 0x17, 0x4c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, - 0x79, 0x55, 0x73, 0x65, 0x64, 0x44, 0x72, 0x69, 0x76, 0x65, 0x10, 0x67, 0x12, 0x23, 0x0a, 0x1f, - 0x53, 0x65, 0x6d, 0x69, 0x74, 0x72, 0x75, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x74, 0x6f, 0x72, - 0x50, 0x61, 0x72, 0x6b, 0x42, 0x72, 0x61, 0x6b, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, - 0x68, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x65, 0x6d, 0x69, 0x74, 0x72, 0x75, 0x63, 0x6b, 0x54, 0x72, - 0x61, 0x69, 0x6c, 0x65, 0x72, 0x50, 0x61, 0x72, 0x6b, 0x42, 0x72, 0x61, 0x6b, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x10, 0x69, 0x12, 0x11, 0x0a, 0x0d, 0x42, 0x72, 0x61, 0x6b, 0x65, 0x50, - 0x65, 0x64, 0x61, 0x6c, 0x50, 0x6f, 0x73, 0x10, 0x6a, 0x12, 0x14, 0x0a, 0x10, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x10, 0x6b, 0x12, - 0x0d, 0x0a, 0x09, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x10, 0x6c, 0x12, 0x12, - 0x0a, 0x0e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x54, 0x6f, 0x41, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, - 0x10, 0x6d, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x54, 0x6f, 0x41, - 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x10, 0x6e, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x6f, 0x12, 0x17, 0x0a, 0x13, - 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x10, 0x70, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, - 0x10, 0x71, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x72, 0x69, 0x6d, 0x10, 0x72, 0x12, 0x11, 0x0a, 0x0d, - 0x45, 0x78, 0x74, 0x65, 0x72, 0x69, 0x6f, 0x72, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x10, 0x73, 0x12, - 0x0d, 0x0a, 0x09, 0x52, 0x6f, 0x6f, 0x66, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x10, 0x74, 0x12, 0x0e, - 0x0a, 0x0a, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x10, 0x75, 0x12, 0x13, - 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x74, 0x63, - 0x68, 0x10, 0x76, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, - 0x74, 0x61, 0x6c, 0x5f, 0x31, 0x10, 0x77, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x65, 0x72, - 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x32, 0x10, 0x78, 0x12, 0x12, 0x0a, 0x0e, 0x45, - 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x33, 0x10, 0x79, 0x12, - 0x12, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, - 0x34, 0x10, 0x7a, 0x12, 0x14, 0x0a, 0x10, 0x47, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, - 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x10, 0x7b, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x69, 0x6e, - 0x54, 0x6f, 0x44, 0x72, 0x69, 0x76, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x10, 0x7c, - 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4b, - 0x65, 0x79, 0x41, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x46, 0x6f, 0x62, 0x51, 0x74, 0x79, 0x10, 0x7d, - 0x12, 0x18, 0x0a, 0x14, 0x43, 0x72, 0x75, 0x69, 0x73, 0x65, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, - 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x10, 0x7e, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x75, - 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x53, 0x70, 0x6f, 0x74, - 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x10, 0x7f, 0x12, 0x23, 0x0a, 0x1e, 0x42, 0x6c, 0x69, 0x6e, - 0x64, 0x53, 0x70, 0x6f, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x61, - 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x10, 0x80, 0x01, 0x12, 0x16, 0x0a, - 0x11, 0x53, 0x70, 0x65, 0x65, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x57, 0x61, 0x72, 0x6e, 0x69, - 0x6e, 0x67, 0x10, 0x81, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, - 0x43, 0x6f, 0x6c, 0x6c, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, - 0x10, 0x82, 0x01, 0x12, 0x1b, 0x0a, 0x16, 0x4c, 0x61, 0x6e, 0x65, 0x44, 0x65, 0x70, 0x61, 0x72, - 0x74, 0x75, 0x72, 0x65, 0x41, 0x76, 0x6f, 0x69, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x10, 0x83, 0x01, - 0x12, 0x24, 0x0a, 0x1f, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x4c, 0x61, 0x6e, - 0x65, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x41, 0x76, 0x6f, 0x69, 0x64, 0x61, - 0x6e, 0x63, 0x65, 0x10, 0x84, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, - 0x74, 0x69, 0x63, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x72, 0x61, 0x6b, - 0x69, 0x6e, 0x67, 0x4f, 0x66, 0x66, 0x10, 0x85, 0x01, 0x12, 0x1e, 0x0a, 0x19, 0x4c, 0x69, 0x66, - 0x65, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x47, 0x61, 0x69, 0x6e, 0x65, - 0x64, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x10, 0x86, 0x01, 0x12, 0x0d, 0x0a, 0x08, 0x44, 0x69, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x46, 0x10, 0x87, 0x01, 0x12, 0x0f, 0x0a, 0x0a, 0x44, 0x69, 0x53, 0x74, - 0x61, 0x74, 0x65, 0x52, 0x45, 0x4c, 0x10, 0x88, 0x01, 0x12, 0x0f, 0x0a, 0x0a, 0x44, 0x69, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x52, 0x45, 0x52, 0x10, 0x89, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x44, 0x69, - 0x48, 0x65, 0x61, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x54, 0x46, 0x10, 0x8a, 0x01, 0x12, 0x13, 0x0a, - 0x0e, 0x44, 0x69, 0x48, 0x65, 0x61, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x54, 0x52, 0x45, 0x4c, 0x10, - 0x8b, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x44, 0x69, 0x48, 0x65, 0x61, 0x74, 0x73, 0x69, 0x6e, 0x6b, - 0x54, 0x52, 0x45, 0x52, 0x10, 0x8c, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x44, 0x69, 0x41, 0x78, 0x6c, - 0x65, 0x53, 0x70, 0x65, 0x65, 0x64, 0x46, 0x10, 0x8d, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x44, 0x69, - 0x41, 0x78, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x65, 0x64, 0x52, 0x45, 0x4c, 0x10, 0x8e, 0x01, 0x12, - 0x13, 0x0a, 0x0e, 0x44, 0x69, 0x41, 0x78, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x65, 0x64, 0x52, 0x45, - 0x52, 0x10, 0x8f, 0x01, 0x12, 0x15, 0x0a, 0x10, 0x44, 0x69, 0x53, 0x6c, 0x61, 0x76, 0x65, 0x54, - 0x6f, 0x72, 0x71, 0x75, 0x65, 0x43, 0x6d, 0x64, 0x10, 0x90, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x44, - 0x69, 0x54, 0x6f, 0x72, 0x71, 0x75, 0x65, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x10, 0x91, - 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x44, 0x69, 0x54, 0x6f, 0x72, 0x71, 0x75, 0x65, 0x41, 0x63, 0x74, - 0x75, 0x61, 0x6c, 0x46, 0x10, 0x92, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x69, 0x54, 0x6f, 0x72, - 0x71, 0x75, 0x65, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x45, 0x4c, 0x10, 0x93, 0x01, 0x12, - 0x16, 0x0a, 0x11, 0x44, 0x69, 0x54, 0x6f, 0x72, 0x71, 0x75, 0x65, 0x41, 0x63, 0x74, 0x75, 0x61, - 0x6c, 0x52, 0x45, 0x52, 0x10, 0x94, 0x01, 0x12, 0x12, 0x0a, 0x0d, 0x44, 0x69, 0x53, 0x74, 0x61, - 0x74, 0x6f, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x46, 0x10, 0x95, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x44, - 0x69, 0x53, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x52, 0x45, 0x4c, 0x10, 0x96, - 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x44, 0x69, 0x53, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x65, 0x6d, - 0x70, 0x52, 0x45, 0x52, 0x10, 0x97, 0x01, 0x12, 0x0c, 0x0a, 0x07, 0x44, 0x69, 0x56, 0x42, 0x61, - 0x74, 0x46, 0x10, 0x98, 0x01, 0x12, 0x0e, 0x0a, 0x09, 0x44, 0x69, 0x56, 0x42, 0x61, 0x74, 0x52, - 0x45, 0x4c, 0x10, 0x99, 0x01, 0x12, 0x0e, 0x0a, 0x09, 0x44, 0x69, 0x56, 0x42, 0x61, 0x74, 0x52, - 0x45, 0x52, 0x10, 0x9a, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x44, 0x69, 0x4d, 0x6f, 0x74, 0x6f, 0x72, - 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x46, 0x10, 0x9b, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x44, - 0x69, 0x4d, 0x6f, 0x74, 0x6f, 0x72, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x45, 0x4c, - 0x10, 0x9c, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x69, 0x4d, 0x6f, 0x74, 0x6f, 0x72, 0x43, 0x75, - 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x45, 0x52, 0x10, 0x9d, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, - 0x6e, 0x65, 0x72, 0x67, 0x79, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x10, 0x9e, - 0x01, 0x12, 0x10, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, 0x64, 0x65, - 0x10, 0x9f, 0x01, 0x12, 0x0d, 0x0a, 0x08, 0x42, 0x4d, 0x53, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, - 0xa0, 0x01, 0x12, 0x1f, 0x0a, 0x1a, 0x47, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x4d, - 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x10, 0xa1, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, - 0x64, 0x5f, 0x31, 0x10, 0xa2, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x10, 0xa3, 0x01, 0x12, 0x11, 0x0a, 0x0c, - 0x44, 0x69, 0x49, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x54, 0x52, 0x10, 0xa4, 0x01, 0x12, - 0x11, 0x0a, 0x0c, 0x44, 0x69, 0x49, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x54, 0x46, 0x10, - 0xa5, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x44, 0x69, 0x49, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, - 0x54, 0x52, 0x45, 0x4c, 0x10, 0xa6, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x44, 0x69, 0x49, 0x6e, 0x76, - 0x65, 0x72, 0x74, 0x65, 0x72, 0x54, 0x52, 0x45, 0x52, 0x10, 0xa7, 0x01, 0x12, 0x13, 0x0a, 0x0e, - 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x35, 0x10, 0xa8, - 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, - 0x6c, 0x5f, 0x36, 0x10, 0xa9, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, - 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x37, 0x10, 0xaa, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, - 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x38, 0x10, 0xab, 0x01, - 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, - 0x5f, 0x39, 0x10, 0xac, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, - 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x31, 0x30, 0x10, 0xad, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, - 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x31, 0x31, 0x10, 0xae, - 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, - 0x6c, 0x5f, 0x31, 0x32, 0x10, 0xaf, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x72, - 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x31, 0x33, 0x10, 0xb0, 0x01, 0x12, 0x14, 0x0a, - 0x0f, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x31, 0x34, - 0x10, 0xb1, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, - 0x74, 0x61, 0x6c, 0x5f, 0x31, 0x35, 0x10, 0xb2, 0x01, 0x2a, 0xbf, 0x01, 0x0a, 0x0d, 0x43, 0x68, - 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x43, - 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, - 0x6e, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x10, 0x01, - 0x12, 0x16, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4e, - 0x6f, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x72, - 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x10, - 0x03, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x43, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x68, - 0x61, 0x72, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, - 0x65, 0x10, 0x05, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, 0x06, 0x2a, 0x91, 0x01, 0x0a, 0x0a, - 0x53, 0x68, 0x69, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x68, - 0x69, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, - 0x00, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x68, 0x69, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x49, - 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x68, 0x69, 0x66, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x68, 0x69, - 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x68, - 0x69, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x44, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x53, - 0x68, 0x69, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4e, 0x10, 0x05, 0x12, 0x11, 0x0a, 0x0d, - 0x53, 0x68, 0x69, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x4e, 0x41, 0x10, 0x06, 0x42, - 0x2f, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x65, - 0x73, 0x6c, 0x61, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x73, 0x2f, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x2d, - 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x74, 0x61, 0x2e, 0x42, 0x4d, 0x53, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x48, 0x00, 0x52, 0x0d, 0x62, 0x6d, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x62, 0x75, 0x63, 0x6b, 0x6c, 0x65, 0x5f, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x24, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, + 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x42, 0x75, 0x63, 0x6b, 0x6c, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x11, 0x62, 0x75, 0x63, 0x6b, 0x6c, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x4c, 0x0a, 0x0e, 0x63, 0x61, + 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, + 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x61, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0c, 0x63, 0x61, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x55, 0x0a, 0x11, 0x63, 0x68, 0x61, 0x72, + 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x27, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, + 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, + 0x72, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0f, + 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x65, 0x0a, 0x17, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, + 0x61, 0x74, 0x63, 0x68, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x2c, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, + 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, + 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x74, 0x63, 0x68, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, + 0x52, 0x14, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x74, 0x63, + 0x68, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x58, 0x0a, 0x12, 0x63, 0x72, 0x75, 0x69, 0x73, 0x65, + 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x14, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, + 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x43, 0x72, 0x75, 0x69, + 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x10, + 0x63, 0x72, 0x75, 0x69, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x3e, 0x0a, 0x0a, 0x64, 0x6f, 0x6f, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x15, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, + 0x2e, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x6f, + 0x6f, 0x72, 0x73, 0x48, 0x00, 0x52, 0x09, 0x64, 0x6f, 0x6f, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x69, 0x0a, 0x1a, 0x64, 0x72, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x76, 0x65, 0x72, 0x74, + 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x16, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, + 0x2e, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x72, + 0x69, 0x76, 0x65, 0x49, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x48, 0x00, 0x52, 0x17, 0x64, 0x72, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, + 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x50, 0x0a, 0x11, 0x68, + 0x76, 0x69, 0x6c, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x22, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, + 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, + 0x48, 0x76, 0x69, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x0f, 0x68, 0x76, + 0x69, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x53, 0x0a, + 0x12, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x74, 0x65, 0x6c, 0x65, + 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, + 0x52, 0x10, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x63, 0x0a, 0x18, 0x73, 0x65, 0x61, 0x74, 0x5f, 0x66, 0x6f, 0x6c, 0x64, 0x5f, + 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x19, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, + 0x2e, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x53, 0x65, + 0x61, 0x74, 0x46, 0x6f, 0x6c, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, + 0x52, 0x15, 0x73, 0x65, 0x61, 0x74, 0x46, 0x6f, 0x6c, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x63, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x63, 0x74, + 0x6f, 0x72, 0x5f, 0x61, 0x69, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x74, 0x65, 0x6c, 0x65, + 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x54, 0x72, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x69, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x15, 0x74, 0x72, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x69, + 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x5c, 0x0a, 0x15, + 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x74, 0x65, + 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, + 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x44, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x48, 0x00, 0x52, 0x13, 0x66, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x44, 0x69, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x23, 0x66, + 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x6c, 0x6c, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x5f, 0x73, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, + 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x69, 0x73, 0x69, + 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x48, 0x00, 0x52, + 0x20, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x73, 0x0a, 0x1e, 0x67, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, + 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x5f, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x74, 0x65, 0x6c, 0x65, + 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, + 0x74, 0x61, 0x2e, 0x47, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x6f, 0x62, 0x69, + 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x48, 0x00, 0x52, 0x1a, 0x67, 0x75, 0x65, 0x73, + 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x63, 0x0a, 0x18, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x65, + 0x72, 0x5f, 0x61, 0x69, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, + 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, + 0x61, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x69, 0x72, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x48, 0x00, 0x52, 0x15, 0x74, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x69, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x3d, 0x0a, 0x0a, 0x74, + 0x69, 0x6d, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, + 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x48, 0x00, 0x52, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x71, 0x0a, 0x1b, 0x64, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0e, 0x32, + 0x30, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, + 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, + 0x64, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x48, 0x00, 0x52, 0x18, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, + 0x72, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x07, 0x0a, + 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x6d, 0x0a, 0x05, 0x44, 0x61, 0x74, 0x75, 0x6d, 0x12, + 0x2f, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x74, + 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, + 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, + 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x89, 0x01, 0x0a, 0x07, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x2e, 0x76, 0x65, 0x68, 0x69, + 0x63, 0x6c, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x44, 0x61, 0x74, 0x75, 0x6d, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, + 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x76, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x76, 0x69, + 0x6e, 0x2a, 0x81, 0x1f, 0x0a, 0x05, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x0b, 0x0a, 0x07, 0x55, + 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x72, 0x69, 0x76, + 0x65, 0x52, 0x61, 0x69, 0x6c, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x68, 0x61, 0x72, 0x67, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x6d, 0x73, 0x46, + 0x75, 0x6c, 0x6c, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, + 0x65, 0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x53, 0x70, + 0x65, 0x65, 0x64, 0x10, 0x04, 0x12, 0x0c, 0x0a, 0x08, 0x4f, 0x64, 0x6f, 0x6d, 0x65, 0x74, 0x65, + 0x72, 0x10, 0x05, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x56, 0x6f, 0x6c, 0x74, 0x61, + 0x67, 0x65, 0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x50, 0x61, 0x63, 0x6b, 0x43, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x10, 0x07, 0x12, 0x07, 0x0a, 0x03, 0x53, 0x6f, 0x63, 0x10, 0x08, 0x12, 0x0e, + 0x0a, 0x0a, 0x44, 0x43, 0x44, 0x43, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x09, 0x12, 0x08, + 0x0a, 0x04, 0x47, 0x65, 0x61, 0x72, 0x10, 0x0a, 0x12, 0x17, 0x0a, 0x13, 0x49, 0x73, 0x6f, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x10, + 0x0b, 0x12, 0x11, 0x0a, 0x0d, 0x50, 0x65, 0x64, 0x61, 0x6c, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x10, 0x0c, 0x12, 0x0e, 0x0a, 0x0a, 0x42, 0x72, 0x61, 0x6b, 0x65, 0x50, 0x65, 0x64, + 0x61, 0x6c, 0x10, 0x0d, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x69, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, + 0x10, 0x0e, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x69, 0x48, 0x65, 0x61, 0x74, 0x73, 0x69, 0x6e, 0x6b, + 0x54, 0x52, 0x10, 0x0f, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x69, 0x41, 0x78, 0x6c, 0x65, 0x53, 0x70, + 0x65, 0x65, 0x64, 0x52, 0x10, 0x10, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x69, 0x54, 0x6f, 0x72, 0x71, + 0x75, 0x65, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x10, 0x11, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x69, 0x53, + 0x74, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x52, 0x10, 0x12, 0x12, 0x0b, 0x0a, 0x07, + 0x44, 0x69, 0x56, 0x42, 0x61, 0x74, 0x52, 0x10, 0x13, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x69, 0x4d, + 0x6f, 0x74, 0x6f, 0x72, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x10, 0x14, 0x12, 0x0c, + 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x15, 0x12, 0x0c, 0x0a, 0x08, + 0x47, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0x16, 0x12, 0x0e, 0x0a, 0x0a, 0x47, 0x70, + 0x73, 0x48, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x17, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x75, + 0x6d, 0x42, 0x72, 0x69, 0x63, 0x6b, 0x56, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x4d, 0x61, 0x78, + 0x10, 0x18, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x72, 0x69, 0x63, 0x6b, 0x56, 0x6f, 0x6c, 0x74, 0x61, + 0x67, 0x65, 0x4d, 0x61, 0x78, 0x10, 0x19, 0x12, 0x16, 0x0a, 0x12, 0x4e, 0x75, 0x6d, 0x42, 0x72, + 0x69, 0x63, 0x6b, 0x56, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x4d, 0x69, 0x6e, 0x10, 0x1a, 0x12, + 0x13, 0x0a, 0x0f, 0x42, 0x72, 0x69, 0x63, 0x6b, 0x56, 0x6f, 0x6c, 0x74, 0x61, 0x67, 0x65, 0x4d, + 0x69, 0x6e, 0x10, 0x1b, 0x12, 0x14, 0x0a, 0x10, 0x4e, 0x75, 0x6d, 0x4d, 0x6f, 0x64, 0x75, 0x6c, + 0x65, 0x54, 0x65, 0x6d, 0x70, 0x4d, 0x61, 0x78, 0x10, 0x1c, 0x12, 0x11, 0x0a, 0x0d, 0x4d, 0x6f, + 0x64, 0x75, 0x6c, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x4d, 0x61, 0x78, 0x10, 0x1d, 0x12, 0x14, 0x0a, + 0x10, 0x4e, 0x75, 0x6d, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x4d, 0x69, + 0x6e, 0x10, 0x1e, 0x12, 0x11, 0x0a, 0x0d, 0x4d, 0x6f, 0x64, 0x75, 0x6c, 0x65, 0x54, 0x65, 0x6d, + 0x70, 0x4d, 0x69, 0x6e, 0x10, 0x1f, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x61, 0x74, 0x65, 0x64, 0x52, + 0x61, 0x6e, 0x67, 0x65, 0x10, 0x20, 0x12, 0x08, 0x0a, 0x04, 0x48, 0x76, 0x69, 0x6c, 0x10, 0x21, + 0x12, 0x16, 0x0a, 0x12, 0x44, 0x43, 0x43, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x45, 0x6e, + 0x65, 0x72, 0x67, 0x79, 0x49, 0x6e, 0x10, 0x22, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x43, 0x43, 0x68, + 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x10, 0x23, 0x12, 0x16, 0x0a, + 0x12, 0x41, 0x43, 0x43, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x65, 0x72, 0x67, + 0x79, 0x49, 0x6e, 0x10, 0x24, 0x12, 0x13, 0x0a, 0x0f, 0x41, 0x43, 0x43, 0x68, 0x61, 0x72, 0x67, + 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x10, 0x25, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x68, + 0x61, 0x72, 0x67, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x53, 0x6f, 0x63, 0x10, 0x26, 0x12, 0x16, + 0x0a, 0x12, 0x46, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x72, 0x50, 0x72, 0x65, + 0x73, 0x65, 0x6e, 0x74, 0x10, 0x27, 0x12, 0x13, 0x0a, 0x0f, 0x45, 0x73, 0x74, 0x42, 0x61, 0x74, + 0x74, 0x65, 0x72, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, 0x10, 0x28, 0x12, 0x15, 0x0a, 0x11, 0x49, + 0x64, 0x65, 0x61, 0x6c, 0x42, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x52, 0x61, 0x6e, 0x67, 0x65, + 0x10, 0x29, 0x12, 0x10, 0x0a, 0x0c, 0x42, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x10, 0x2a, 0x12, 0x14, 0x0a, 0x10, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x46, 0x75, + 0x6c, 0x6c, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x10, 0x2b, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x10, 0x2c, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x50, + 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x10, 0x2d, 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x64, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x10, 0x2e, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x10, 0x2f, + 0x12, 0x19, 0x0a, 0x15, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, + 0x72, 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x10, 0x30, 0x12, 0x0e, 0x0a, 0x0a, 0x43, + 0x68, 0x61, 0x72, 0x67, 0x65, 0x41, 0x6d, 0x70, 0x73, 0x10, 0x31, 0x12, 0x17, 0x0a, 0x13, 0x43, + 0x68, 0x61, 0x72, 0x67, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x10, 0x32, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x72, 0x50, + 0x68, 0x61, 0x73, 0x65, 0x73, 0x10, 0x33, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x68, 0x61, 0x72, 0x67, + 0x65, 0x50, 0x6f, 0x72, 0x74, 0x43, 0x6f, 0x6c, 0x64, 0x57, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, + 0x4d, 0x6f, 0x64, 0x65, 0x10, 0x34, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, + 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0x35, + 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x61, 0x78, 0x10, 0x36, 0x12, 0x13, 0x0a, + 0x0f, 0x42, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x48, 0x65, 0x61, 0x74, 0x65, 0x72, 0x4f, 0x6e, + 0x10, 0x37, 0x12, 0x18, 0x0a, 0x14, 0x4e, 0x6f, 0x74, 0x45, 0x6e, 0x6f, 0x75, 0x67, 0x68, 0x50, + 0x6f, 0x77, 0x65, 0x72, 0x54, 0x6f, 0x48, 0x65, 0x61, 0x74, 0x10, 0x38, 0x12, 0x22, 0x0a, 0x1e, + 0x53, 0x75, 0x70, 0x65, 0x72, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x72, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x54, 0x72, 0x69, 0x70, 0x50, 0x6c, 0x61, 0x6e, 0x6e, 0x65, 0x72, 0x10, 0x39, + 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x6f, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x10, 0x3a, 0x12, + 0x0a, 0x0a, 0x06, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x10, 0x3b, 0x12, 0x0c, 0x0a, 0x08, 0x46, + 0x64, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x10, 0x3c, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x70, 0x57, + 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x10, 0x3d, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x64, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x10, 0x3e, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x70, 0x57, 0x69, 0x6e, 0x64, 0x6f, + 0x77, 0x10, 0x3f, 0x12, 0x0f, 0x0a, 0x0b, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x10, 0x40, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x4d, 0x6f, + 0x64, 0x65, 0x10, 0x41, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x70, 0x65, 0x65, 0x64, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x10, 0x42, 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x75, 0x72, 0x72, + 0x65, 0x6e, 0x74, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4d, 0x70, 0x68, 0x10, 0x43, 0x12, 0x0b, 0x0a, + 0x07, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x10, 0x44, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x70, + 0x6d, 0x73, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x46, 0x6c, 0x10, 0x45, 0x12, 0x12, + 0x0a, 0x0e, 0x54, 0x70, 0x6d, 0x73, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x46, 0x72, + 0x10, 0x46, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x70, 0x6d, 0x73, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, + 0x72, 0x65, 0x52, 0x6c, 0x10, 0x47, 0x12, 0x12, 0x0a, 0x0e, 0x54, 0x70, 0x6d, 0x73, 0x50, 0x72, + 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x52, 0x72, 0x10, 0x48, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x65, + 0x6d, 0x69, 0x74, 0x72, 0x75, 0x63, 0x6b, 0x54, 0x70, 0x6d, 0x73, 0x50, 0x72, 0x65, 0x73, 0x73, + 0x75, 0x72, 0x65, 0x52, 0x65, 0x31, 0x4c, 0x30, 0x10, 0x49, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x65, + 0x6d, 0x69, 0x74, 0x72, 0x75, 0x63, 0x6b, 0x54, 0x70, 0x6d, 0x73, 0x50, 0x72, 0x65, 0x73, 0x73, + 0x75, 0x72, 0x65, 0x52, 0x65, 0x31, 0x4c, 0x31, 0x10, 0x4a, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x65, + 0x6d, 0x69, 0x74, 0x72, 0x75, 0x63, 0x6b, 0x54, 0x70, 0x6d, 0x73, 0x50, 0x72, 0x65, 0x73, 0x73, + 0x75, 0x72, 0x65, 0x52, 0x65, 0x31, 0x52, 0x30, 0x10, 0x4b, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x65, + 0x6d, 0x69, 0x74, 0x72, 0x75, 0x63, 0x6b, 0x54, 0x70, 0x6d, 0x73, 0x50, 0x72, 0x65, 0x73, 0x73, + 0x75, 0x72, 0x65, 0x52, 0x65, 0x31, 0x52, 0x31, 0x10, 0x4c, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x65, + 0x6d, 0x69, 0x74, 0x72, 0x75, 0x63, 0x6b, 0x54, 0x70, 0x6d, 0x73, 0x50, 0x72, 0x65, 0x73, 0x73, + 0x75, 0x72, 0x65, 0x52, 0x65, 0x32, 0x4c, 0x30, 0x10, 0x4d, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x65, + 0x6d, 0x69, 0x74, 0x72, 0x75, 0x63, 0x6b, 0x54, 0x70, 0x6d, 0x73, 0x50, 0x72, 0x65, 0x73, 0x73, + 0x75, 0x72, 0x65, 0x52, 0x65, 0x32, 0x4c, 0x31, 0x10, 0x4e, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x65, + 0x6d, 0x69, 0x74, 0x72, 0x75, 0x63, 0x6b, 0x54, 0x70, 0x6d, 0x73, 0x50, 0x72, 0x65, 0x73, 0x73, + 0x75, 0x72, 0x65, 0x52, 0x65, 0x32, 0x52, 0x30, 0x10, 0x4f, 0x12, 0x1e, 0x0a, 0x1a, 0x53, 0x65, + 0x6d, 0x69, 0x74, 0x72, 0x75, 0x63, 0x6b, 0x54, 0x70, 0x6d, 0x73, 0x50, 0x72, 0x65, 0x73, 0x73, + 0x75, 0x72, 0x65, 0x52, 0x65, 0x32, 0x52, 0x31, 0x10, 0x50, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x70, + 0x6d, 0x73, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, + 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x6c, 0x10, 0x51, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x70, + 0x6d, 0x73, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, + 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x46, 0x72, 0x10, 0x52, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x70, + 0x6d, 0x73, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, + 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x6c, 0x10, 0x53, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x70, + 0x6d, 0x73, 0x4c, 0x61, 0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, + 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x72, 0x10, 0x54, 0x12, 0x0e, 0x0a, 0x0a, 0x49, 0x6e, + 0x73, 0x69, 0x64, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x10, 0x55, 0x12, 0x0f, 0x0a, 0x0b, 0x4f, 0x75, + 0x74, 0x73, 0x69, 0x64, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x10, 0x56, 0x12, 0x12, 0x0a, 0x0e, 0x53, + 0x65, 0x61, 0x74, 0x48, 0x65, 0x61, 0x74, 0x65, 0x72, 0x4c, 0x65, 0x66, 0x74, 0x10, 0x57, 0x12, + 0x13, 0x0a, 0x0f, 0x53, 0x65, 0x61, 0x74, 0x48, 0x65, 0x61, 0x74, 0x65, 0x72, 0x52, 0x69, 0x67, + 0x68, 0x74, 0x10, 0x58, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x65, 0x61, 0x74, 0x48, 0x65, 0x61, 0x74, + 0x65, 0x72, 0x52, 0x65, 0x61, 0x72, 0x4c, 0x65, 0x66, 0x74, 0x10, 0x59, 0x12, 0x17, 0x0a, 0x13, + 0x53, 0x65, 0x61, 0x74, 0x48, 0x65, 0x61, 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x72, 0x52, 0x69, + 0x67, 0x68, 0x74, 0x10, 0x5a, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x65, 0x61, 0x74, 0x48, 0x65, 0x61, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x61, 0x72, 0x43, 0x65, 0x6e, 0x74, 0x65, 0x72, 0x10, 0x5b, 0x12, + 0x17, 0x0a, 0x13, 0x41, 0x75, 0x74, 0x6f, 0x53, 0x65, 0x61, 0x74, 0x43, 0x6c, 0x69, 0x6d, 0x61, + 0x74, 0x65, 0x4c, 0x65, 0x66, 0x74, 0x10, 0x5c, 0x12, 0x18, 0x0a, 0x14, 0x41, 0x75, 0x74, 0x6f, + 0x53, 0x65, 0x61, 0x74, 0x43, 0x6c, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x52, 0x69, 0x67, 0x68, 0x74, + 0x10, 0x5d, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x53, 0x65, 0x61, 0x74, + 0x42, 0x65, 0x6c, 0x74, 0x10, 0x5e, 0x12, 0x15, 0x0a, 0x11, 0x50, 0x61, 0x73, 0x73, 0x65, 0x6e, + 0x67, 0x65, 0x72, 0x53, 0x65, 0x61, 0x74, 0x42, 0x65, 0x6c, 0x74, 0x10, 0x5f, 0x12, 0x16, 0x0a, + 0x12, 0x44, 0x72, 0x69, 0x76, 0x65, 0x72, 0x53, 0x65, 0x61, 0x74, 0x4f, 0x63, 0x63, 0x75, 0x70, + 0x69, 0x65, 0x64, 0x10, 0x60, 0x12, 0x26, 0x0a, 0x22, 0x53, 0x65, 0x6d, 0x69, 0x74, 0x72, 0x75, + 0x63, 0x6b, 0x50, 0x61, 0x73, 0x73, 0x65, 0x6e, 0x67, 0x65, 0x72, 0x53, 0x65, 0x61, 0x74, 0x46, + 0x6f, 0x6c, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x61, 0x12, 0x17, 0x0a, + 0x13, 0x4c, 0x61, 0x74, 0x65, 0x72, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x62, 0x12, 0x1c, 0x0a, 0x18, 0x4c, 0x6f, 0x6e, 0x67, 0x69, 0x74, + 0x75, 0x64, 0x69, 0x6e, 0x61, 0x6c, 0x41, 0x63, 0x63, 0x65, 0x6c, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x10, 0x63, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x72, 0x75, 0x69, 0x73, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x10, 0x64, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x72, 0x75, 0x69, 0x73, 0x65, 0x53, + 0x65, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x10, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x4c, 0x69, 0x66, + 0x65, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x55, 0x73, 0x65, 0x64, 0x10, + 0x66, 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x65, + 0x72, 0x67, 0x79, 0x55, 0x73, 0x65, 0x64, 0x44, 0x72, 0x69, 0x76, 0x65, 0x10, 0x67, 0x12, 0x23, + 0x0a, 0x1f, 0x53, 0x65, 0x6d, 0x69, 0x74, 0x72, 0x75, 0x63, 0x6b, 0x54, 0x72, 0x61, 0x63, 0x74, + 0x6f, 0x72, 0x50, 0x61, 0x72, 0x6b, 0x42, 0x72, 0x61, 0x6b, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x10, 0x68, 0x12, 0x23, 0x0a, 0x1f, 0x53, 0x65, 0x6d, 0x69, 0x74, 0x72, 0x75, 0x63, 0x6b, + 0x54, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x50, 0x61, 0x72, 0x6b, 0x42, 0x72, 0x61, 0x6b, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0x69, 0x12, 0x11, 0x0a, 0x0d, 0x42, 0x72, 0x61, 0x6b, + 0x65, 0x50, 0x65, 0x64, 0x61, 0x6c, 0x50, 0x6f, 0x73, 0x10, 0x6a, 0x12, 0x14, 0x0a, 0x10, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x4c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x10, + 0x6b, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x4c, 0x69, 0x6e, 0x65, 0x10, 0x6c, + 0x12, 0x12, 0x0a, 0x0e, 0x4d, 0x69, 0x6c, 0x65, 0x73, 0x54, 0x6f, 0x41, 0x72, 0x72, 0x69, 0x76, + 0x61, 0x6c, 0x10, 0x6d, 0x12, 0x14, 0x0a, 0x10, 0x4d, 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x54, + 0x6f, 0x41, 0x72, 0x72, 0x69, 0x76, 0x61, 0x6c, 0x10, 0x6e, 0x12, 0x12, 0x0a, 0x0e, 0x4f, 0x72, + 0x69, 0x67, 0x69, 0x6e, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x6f, 0x12, 0x17, + 0x0a, 0x13, 0x44, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x70, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x61, 0x72, 0x54, 0x79, + 0x70, 0x65, 0x10, 0x71, 0x12, 0x08, 0x0a, 0x04, 0x54, 0x72, 0x69, 0x6d, 0x10, 0x72, 0x12, 0x11, + 0x0a, 0x0d, 0x45, 0x78, 0x74, 0x65, 0x72, 0x69, 0x6f, 0x72, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x10, + 0x73, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x6f, 0x6f, 0x66, 0x43, 0x6f, 0x6c, 0x6f, 0x72, 0x10, 0x74, + 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x10, 0x75, + 0x12, 0x13, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, + 0x74, 0x63, 0x68, 0x10, 0x76, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, + 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x31, 0x10, 0x77, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x78, 0x70, + 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x32, 0x10, 0x78, 0x12, 0x12, 0x0a, + 0x0e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x33, 0x10, + 0x79, 0x12, 0x12, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, + 0x6c, 0x5f, 0x34, 0x10, 0x7a, 0x12, 0x14, 0x0a, 0x10, 0x47, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x10, 0x7b, 0x12, 0x15, 0x0a, 0x11, 0x50, + 0x69, 0x6e, 0x54, 0x6f, 0x44, 0x72, 0x69, 0x76, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x10, 0x7c, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x50, 0x68, 0x6f, 0x6e, + 0x65, 0x4b, 0x65, 0x79, 0x41, 0x6e, 0x64, 0x4b, 0x65, 0x79, 0x46, 0x6f, 0x62, 0x51, 0x74, 0x79, + 0x10, 0x7d, 0x12, 0x18, 0x0a, 0x14, 0x43, 0x72, 0x75, 0x69, 0x73, 0x65, 0x46, 0x6f, 0x6c, 0x6c, + 0x6f, 0x77, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x10, 0x7e, 0x12, 0x1c, 0x0a, 0x18, + 0x41, 0x75, 0x74, 0x6f, 0x6d, 0x61, 0x74, 0x69, 0x63, 0x42, 0x6c, 0x69, 0x6e, 0x64, 0x53, 0x70, + 0x6f, 0x74, 0x43, 0x61, 0x6d, 0x65, 0x72, 0x61, 0x10, 0x7f, 0x12, 0x23, 0x0a, 0x1e, 0x42, 0x6c, + 0x69, 0x6e, 0x64, 0x53, 0x70, 0x6f, 0x74, 0x43, 0x6f, 0x6c, 0x6c, 0x69, 0x73, 0x69, 0x6f, 0x6e, + 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x43, 0x68, 0x69, 0x6d, 0x65, 0x10, 0x80, 0x01, 0x12, + 0x16, 0x0a, 0x11, 0x53, 0x70, 0x65, 0x65, 0x64, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x57, 0x61, 0x72, + 0x6e, 0x69, 0x6e, 0x67, 0x10, 0x81, 0x01, 0x12, 0x1c, 0x0a, 0x17, 0x46, 0x6f, 0x72, 0x77, 0x61, + 0x72, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x61, 0x72, 0x6e, 0x69, + 0x6e, 0x67, 0x10, 0x82, 0x01, 0x12, 0x1b, 0x0a, 0x16, 0x4c, 0x61, 0x6e, 0x65, 0x44, 0x65, 0x70, + 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x41, 0x76, 0x6f, 0x69, 0x64, 0x61, 0x6e, 0x63, 0x65, 0x10, + 0x83, 0x01, 0x12, 0x24, 0x0a, 0x1f, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x4c, + 0x61, 0x6e, 0x65, 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x75, 0x72, 0x65, 0x41, 0x76, 0x6f, 0x69, + 0x64, 0x61, 0x6e, 0x63, 0x65, 0x10, 0x84, 0x01, 0x12, 0x21, 0x0a, 0x1c, 0x41, 0x75, 0x74, 0x6f, + 0x6d, 0x61, 0x74, 0x69, 0x63, 0x45, 0x6d, 0x65, 0x72, 0x67, 0x65, 0x6e, 0x63, 0x79, 0x42, 0x72, + 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x4f, 0x66, 0x66, 0x10, 0x85, 0x01, 0x12, 0x1e, 0x0a, 0x19, 0x4c, + 0x69, 0x66, 0x65, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x47, 0x61, 0x69, + 0x6e, 0x65, 0x64, 0x52, 0x65, 0x67, 0x65, 0x6e, 0x10, 0x86, 0x01, 0x12, 0x0d, 0x0a, 0x08, 0x44, + 0x69, 0x53, 0x74, 0x61, 0x74, 0x65, 0x46, 0x10, 0x87, 0x01, 0x12, 0x0f, 0x0a, 0x0a, 0x44, 0x69, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x45, 0x4c, 0x10, 0x88, 0x01, 0x12, 0x0f, 0x0a, 0x0a, 0x44, + 0x69, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x45, 0x52, 0x10, 0x89, 0x01, 0x12, 0x11, 0x0a, 0x0c, + 0x44, 0x69, 0x48, 0x65, 0x61, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x54, 0x46, 0x10, 0x8a, 0x01, 0x12, + 0x13, 0x0a, 0x0e, 0x44, 0x69, 0x48, 0x65, 0x61, 0x74, 0x73, 0x69, 0x6e, 0x6b, 0x54, 0x52, 0x45, + 0x4c, 0x10, 0x8b, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x44, 0x69, 0x48, 0x65, 0x61, 0x74, 0x73, 0x69, + 0x6e, 0x6b, 0x54, 0x52, 0x45, 0x52, 0x10, 0x8c, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x44, 0x69, 0x41, + 0x78, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x65, 0x64, 0x46, 0x10, 0x8d, 0x01, 0x12, 0x13, 0x0a, 0x0e, + 0x44, 0x69, 0x41, 0x78, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x65, 0x64, 0x52, 0x45, 0x4c, 0x10, 0x8e, + 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x44, 0x69, 0x41, 0x78, 0x6c, 0x65, 0x53, 0x70, 0x65, 0x65, 0x64, + 0x52, 0x45, 0x52, 0x10, 0x8f, 0x01, 0x12, 0x15, 0x0a, 0x10, 0x44, 0x69, 0x53, 0x6c, 0x61, 0x76, + 0x65, 0x54, 0x6f, 0x72, 0x71, 0x75, 0x65, 0x43, 0x6d, 0x64, 0x10, 0x90, 0x01, 0x12, 0x14, 0x0a, + 0x0f, 0x44, 0x69, 0x54, 0x6f, 0x72, 0x71, 0x75, 0x65, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x52, + 0x10, 0x91, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x44, 0x69, 0x54, 0x6f, 0x72, 0x71, 0x75, 0x65, 0x41, + 0x63, 0x74, 0x75, 0x61, 0x6c, 0x46, 0x10, 0x92, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x69, 0x54, + 0x6f, 0x72, 0x71, 0x75, 0x65, 0x41, 0x63, 0x74, 0x75, 0x61, 0x6c, 0x52, 0x45, 0x4c, 0x10, 0x93, + 0x01, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x69, 0x54, 0x6f, 0x72, 0x71, 0x75, 0x65, 0x41, 0x63, 0x74, + 0x75, 0x61, 0x6c, 0x52, 0x45, 0x52, 0x10, 0x94, 0x01, 0x12, 0x12, 0x0a, 0x0d, 0x44, 0x69, 0x53, + 0x74, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x46, 0x10, 0x95, 0x01, 0x12, 0x14, 0x0a, + 0x0f, 0x44, 0x69, 0x53, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x52, 0x45, 0x4c, + 0x10, 0x96, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x44, 0x69, 0x53, 0x74, 0x61, 0x74, 0x6f, 0x72, 0x54, + 0x65, 0x6d, 0x70, 0x52, 0x45, 0x52, 0x10, 0x97, 0x01, 0x12, 0x0c, 0x0a, 0x07, 0x44, 0x69, 0x56, + 0x42, 0x61, 0x74, 0x46, 0x10, 0x98, 0x01, 0x12, 0x0e, 0x0a, 0x09, 0x44, 0x69, 0x56, 0x42, 0x61, + 0x74, 0x52, 0x45, 0x4c, 0x10, 0x99, 0x01, 0x12, 0x0e, 0x0a, 0x09, 0x44, 0x69, 0x56, 0x42, 0x61, + 0x74, 0x52, 0x45, 0x52, 0x10, 0x9a, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x44, 0x69, 0x4d, 0x6f, 0x74, + 0x6f, 0x72, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x46, 0x10, 0x9b, 0x01, 0x12, 0x16, 0x0a, + 0x11, 0x44, 0x69, 0x4d, 0x6f, 0x74, 0x6f, 0x72, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, + 0x45, 0x4c, 0x10, 0x9c, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x44, 0x69, 0x4d, 0x6f, 0x74, 0x6f, 0x72, + 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x52, 0x45, 0x52, 0x10, 0x9d, 0x01, 0x12, 0x14, 0x0a, + 0x0f, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x52, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x10, 0x9e, 0x01, 0x12, 0x10, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4d, 0x6f, + 0x64, 0x65, 0x10, 0x9f, 0x01, 0x12, 0x0d, 0x0a, 0x08, 0x42, 0x4d, 0x53, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x10, 0xa0, 0x01, 0x12, 0x1f, 0x0a, 0x1a, 0x47, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, + 0x65, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x10, 0xa1, 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, 0x61, + 0x74, 0x65, 0x64, 0x5f, 0x31, 0x10, 0xa2, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x44, 0x65, 0x73, 0x74, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x10, 0xa3, 0x01, 0x12, 0x11, + 0x0a, 0x0c, 0x44, 0x69, 0x49, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x54, 0x52, 0x10, 0xa4, + 0x01, 0x12, 0x11, 0x0a, 0x0c, 0x44, 0x69, 0x49, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x54, + 0x46, 0x10, 0xa5, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x44, 0x69, 0x49, 0x6e, 0x76, 0x65, 0x72, 0x74, + 0x65, 0x72, 0x54, 0x52, 0x45, 0x4c, 0x10, 0xa6, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x44, 0x69, 0x49, + 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x54, 0x52, 0x45, 0x52, 0x10, 0xa7, 0x01, 0x12, 0x13, + 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x35, + 0x10, 0xa8, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, + 0x74, 0x61, 0x6c, 0x5f, 0x36, 0x10, 0xa9, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x65, + 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x37, 0x10, 0xaa, 0x01, 0x12, 0x13, 0x0a, + 0x0e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x38, 0x10, + 0xab, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, + 0x61, 0x6c, 0x5f, 0x39, 0x10, 0xac, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x72, + 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x31, 0x30, 0x10, 0xad, 0x01, 0x12, 0x14, 0x0a, + 0x0f, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x31, 0x31, + 0x10, 0xae, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, + 0x74, 0x61, 0x6c, 0x5f, 0x31, 0x32, 0x10, 0xaf, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x78, 0x70, + 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x31, 0x33, 0x10, 0xb0, 0x01, 0x12, + 0x14, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, + 0x31, 0x34, 0x10, 0xb1, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x45, 0x78, 0x70, 0x65, 0x72, 0x69, 0x6d, + 0x65, 0x6e, 0x74, 0x61, 0x6c, 0x5f, 0x31, 0x35, 0x10, 0xb2, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x10, 0xb3, 0x01, 0x2a, 0xbf, 0x01, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x72, 0x67, 0x69, + 0x6e, 0x67, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x72, 0x67, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, + 0x1b, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x44, 0x69, + 0x73, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, + 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x50, 0x6f, 0x77, + 0x65, 0x72, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x03, 0x12, 0x17, 0x0a, + 0x13, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x72, + 0x67, 0x69, 0x6e, 0x67, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x05, 0x12, + 0x16, 0x0a, 0x12, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x74, + 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, 0x06, 0x2a, 0x82, 0x02, 0x0a, 0x18, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, + 0x61, 0x6c, 0x75, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, + 0x77, 0x6e, 0x10, 0x00, 0x12, 0x23, 0x0a, 0x1f, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x44, 0x69, 0x73, 0x63, 0x6f, + 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x4e, 0x6f, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x43, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x10, 0x04, 0x12, 0x1f, 0x0a, 0x1b, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x43, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, 0x06, 0x2a, 0x91, 0x01, 0x0a, + 0x0a, 0x53, 0x68, 0x69, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, + 0x68, 0x69, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, + 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x68, 0x69, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x68, 0x69, + 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x68, + 0x69, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x53, + 0x68, 0x69, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4e, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, + 0x53, 0x68, 0x69, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x44, 0x10, 0x05, 0x12, 0x11, 0x0a, + 0x0d, 0x53, 0x68, 0x69, 0x66, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x4e, 0x41, 0x10, 0x06, + 0x2a, 0xbe, 0x01, 0x0a, 0x0e, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x44, 0x69, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x44, 0x69, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x13, + 0x0a, 0x0f, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x31, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x44, 0x69, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x32, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x46, 0x6f, 0x6c, 0x6c, + 0x6f, 0x77, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x33, 0x10, 0x03, 0x12, 0x13, 0x0a, + 0x0f, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x34, + 0x10, 0x04, 0x12, 0x13, 0x0a, 0x0f, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x44, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x35, 0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x46, 0x6f, 0x6c, 0x6c, 0x6f, + 0x77, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x36, 0x10, 0x06, 0x12, 0x13, 0x0a, 0x0f, + 0x46, 0x6f, 0x6c, 0x6c, 0x6f, 0x77, 0x44, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x37, 0x10, + 0x07, 0x2a, 0xdc, 0x01, 0x0a, 0x1b, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6c, + 0x6c, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x12, 0x26, 0x0a, 0x22, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6c, 0x6c, + 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, + 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x46, 0x6f, 0x72, + 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, + 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4f, 0x66, 0x66, 0x10, 0x01, 0x12, 0x23, 0x0a, + 0x1f, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x69, 0x73, 0x69, 0x6f, + 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x4c, 0x61, 0x74, 0x65, + 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6c, + 0x6c, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, + 0x79, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x46, 0x6f, + 0x72, 0x77, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6c, 0x6c, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x53, 0x65, + 0x6e, 0x73, 0x69, 0x74, 0x69, 0x76, 0x69, 0x74, 0x79, 0x45, 0x61, 0x72, 0x6c, 0x79, 0x10, 0x04, + 0x2a, 0xe4, 0x06, 0x0a, 0x15, 0x47, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x6f, + 0x62, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x20, 0x0a, 0x1c, 0x47, 0x75, + 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, + 0x47, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x49, 0x6e, 0x69, 0x74, 0x10, 0x01, 0x12, 0x29, 0x0a, 0x25, 0x47, + 0x75, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x4e, 0x6f, 0x74, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x10, 0x02, 0x12, 0x26, 0x0a, 0x22, 0x47, 0x75, 0x65, 0x73, 0x74, 0x4d, + 0x6f, 0x64, 0x65, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x41, + 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61, 0x74, 0x65, 0x64, 0x10, 0x03, 0x12, 0x27, + 0x0a, 0x23, 0x47, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x6f, 0x62, 0x69, 0x6c, + 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x44, 0x72, + 0x69, 0x76, 0x69, 0x6e, 0x67, 0x10, 0x04, 0x12, 0x30, 0x0a, 0x2c, 0x47, 0x75, 0x65, 0x73, 0x74, + 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x41, 0x62, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x52, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x10, 0x05, 0x12, 0x2c, 0x0a, 0x28, 0x47, 0x75, 0x65, + 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x55, 0x73, 0x69, 0x6e, 0x67, 0x42, 0x4c, + 0x45, 0x4b, 0x65, 0x79, 0x73, 0x10, 0x06, 0x12, 0x29, 0x0a, 0x25, 0x47, 0x75, 0x65, 0x73, 0x74, + 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x41, 0x62, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x56, 0x61, 0x6c, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, + 0x10, 0x07, 0x12, 0x2c, 0x0a, 0x28, 0x47, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x4d, + 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x41, 0x62, 0x6f, 0x72, 0x74, + 0x65, 0x64, 0x47, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x4f, 0x66, 0x66, 0x10, 0x08, + 0x12, 0x35, 0x0a, 0x31, 0x47, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x6f, 0x62, + 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x65, 0x64, + 0x44, 0x72, 0x69, 0x76, 0x65, 0x41, 0x75, 0x74, 0x68, 0x54, 0x69, 0x6d, 0x65, 0x45, 0x78, 0x63, + 0x65, 0x65, 0x64, 0x65, 0x64, 0x10, 0x09, 0x12, 0x2e, 0x0a, 0x2a, 0x47, 0x75, 0x65, 0x73, 0x74, + 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x41, 0x62, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x4e, 0x6f, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x64, 0x10, 0x0a, 0x12, 0x31, 0x0a, 0x2d, 0x47, 0x75, 0x65, 0x73, 0x74, + 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x4d, 0x6f, + 0x74, 0x68, 0x65, 0x72, 0x73, 0x68, 0x69, 0x70, 0x10, 0x0b, 0x12, 0x2c, 0x0a, 0x28, 0x47, 0x75, + 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x46, 0x72, 0x6f, + 0x6d, 0x41, 0x75, 0x74, 0x68, 0x44, 0x10, 0x0c, 0x12, 0x2b, 0x0a, 0x27, 0x47, 0x75, 0x65, 0x73, + 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x65, 0x64, 0x46, 0x65, 0x74, 0x63, 0x68, 0x46, 0x61, 0x69, + 0x6c, 0x65, 0x64, 0x10, 0x0d, 0x12, 0x2f, 0x0a, 0x2b, 0x47, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x41, 0x62, + 0x6f, 0x72, 0x74, 0x65, 0x64, 0x42, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x64, 0x10, 0x0e, 0x12, 0x26, 0x0a, 0x22, 0x47, 0x75, 0x65, 0x73, 0x74, 0x4d, + 0x6f, 0x64, 0x65, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, + 0x68, 0x6f, 0x77, 0x69, 0x6e, 0x67, 0x51, 0x52, 0x43, 0x6f, 0x64, 0x65, 0x10, 0x0f, 0x12, 0x23, + 0x0a, 0x1f, 0x47, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x4d, 0x6f, 0x62, 0x69, 0x6c, + 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x77, 0x69, 0x70, 0x65, 0x64, 0x41, 0x77, 0x61, + 0x79, 0x10, 0x10, 0x12, 0x2f, 0x0a, 0x2b, 0x47, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, + 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x44, 0x69, 0x73, 0x6d, + 0x69, 0x73, 0x73, 0x65, 0x64, 0x51, 0x52, 0x43, 0x6f, 0x64, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, + 0x65, 0x64, 0x10, 0x11, 0x12, 0x31, 0x0a, 0x2d, 0x47, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, + 0x65, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x53, 0x75, 0x63, + 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x50, 0x61, 0x69, 0x72, 0x65, 0x64, 0x4e, 0x65, 0x77, 0x42, + 0x4c, 0x45, 0x4b, 0x65, 0x79, 0x10, 0x12, 0x2a, 0x7d, 0x0a, 0x0f, 0x4c, 0x61, 0x6e, 0x65, 0x41, + 0x73, 0x73, 0x69, 0x73, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x16, 0x4c, 0x61, + 0x6e, 0x65, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x55, 0x6e, 0x6b, + 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x61, 0x6e, 0x65, 0x41, 0x73, + 0x73, 0x69, 0x73, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x01, 0x12, + 0x1a, 0x0a, 0x16, 0x4c, 0x61, 0x6e, 0x65, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, 0x4c, + 0x61, 0x6e, 0x65, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x41, 0x73, + 0x73, 0x69, 0x73, 0x74, 0x10, 0x03, 0x2a, 0xa1, 0x01, 0x0a, 0x1a, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x55, 0x6e, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, + 0x4f, 0x66, 0x66, 0x10, 0x01, 0x12, 0x20, 0x0a, 0x1c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x41, 0x74, 0x10, 0x02, 0x12, 0x21, 0x0a, 0x1d, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x64, 0x43, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, + 0x44, 0x65, 0x70, 0x61, 0x72, 0x74, 0x42, 0x79, 0x10, 0x03, 0x2a, 0xc6, 0x01, 0x0a, 0x0f, 0x53, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, + 0x0a, 0x16, 0x53, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x65, + 0x6e, 0x74, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x66, 0x66, + 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x49, 0x64, 0x6c, 0x65, 0x10, 0x02, 0x12, 0x18, 0x0a, 0x14, 0x53, + 0x65, 0x6e, 0x74, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x41, 0x72, + 0x6d, 0x65, 0x64, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x4d, + 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x41, 0x77, 0x61, 0x72, 0x65, 0x10, 0x04, 0x12, + 0x18, 0x0a, 0x14, 0x53, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x50, 0x61, 0x6e, 0x69, 0x63, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x65, 0x6e, + 0x74, 0x72, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x51, 0x75, 0x69, 0x65, + 0x74, 0x10, 0x06, 0x2a, 0x81, 0x01, 0x0a, 0x10, 0x53, 0x70, 0x65, 0x65, 0x64, 0x41, 0x73, 0x73, + 0x69, 0x73, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x70, 0x65, 0x65, + 0x64, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x55, 0x6e, 0x6b, 0x6e, + 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x70, 0x65, 0x65, 0x64, 0x41, 0x73, + 0x73, 0x69, 0x73, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x01, 0x12, + 0x1b, 0x0a, 0x17, 0x53, 0x70, 0x65, 0x65, 0x64, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x10, 0x02, 0x12, 0x19, 0x0a, 0x15, + 0x53, 0x70, 0x65, 0x65, 0x64, 0x41, 0x73, 0x73, 0x69, 0x73, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x43, 0x68, 0x69, 0x6d, 0x65, 0x10, 0x03, 0x2a, 0xe7, 0x01, 0x0a, 0x0d, 0x42, 0x4d, 0x53, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x4d, 0x53, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x13, + 0x0a, 0x0f, 0x42, 0x4d, 0x53, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x62, + 0x79, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x42, 0x4d, 0x53, 0x53, 0x74, 0x61, 0x74, 0x65, 0x44, + 0x72, 0x69, 0x76, 0x65, 0x10, 0x02, 0x12, 0x13, 0x0a, 0x0f, 0x42, 0x4d, 0x53, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x42, + 0x4d, 0x53, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x10, 0x04, 0x12, + 0x10, 0x0a, 0x0c, 0x42, 0x4d, 0x53, 0x53, 0x74, 0x61, 0x74, 0x65, 0x46, 0x45, 0x49, 0x4d, 0x10, + 0x05, 0x12, 0x16, 0x0a, 0x12, 0x42, 0x4d, 0x53, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x65, + 0x61, 0x72, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x10, 0x06, 0x12, 0x11, 0x0a, 0x0d, 0x42, 0x4d, 0x53, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x10, 0x07, 0x12, 0x10, 0x0a, 0x0c, + 0x42, 0x4d, 0x53, 0x53, 0x74, 0x61, 0x74, 0x65, 0x57, 0x65, 0x6c, 0x64, 0x10, 0x08, 0x12, 0x10, + 0x0a, 0x0c, 0x42, 0x4d, 0x53, 0x53, 0x74, 0x61, 0x74, 0x65, 0x54, 0x65, 0x73, 0x74, 0x10, 0x09, + 0x12, 0x0f, 0x0a, 0x0b, 0x42, 0x4d, 0x53, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x4e, 0x41, 0x10, + 0x0a, 0x2a, 0x74, 0x0a, 0x0c, 0x42, 0x75, 0x63, 0x6b, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x17, 0x0a, 0x13, 0x42, 0x75, 0x63, 0x6b, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x19, 0x0a, 0x15, 0x42, 0x75, + 0x63, 0x6b, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x6e, 0x6c, 0x61, 0x74, 0x63, + 0x68, 0x65, 0x64, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x42, 0x75, 0x63, 0x6b, 0x6c, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x61, 0x74, 0x63, 0x68, 0x65, 0x64, 0x10, 0x02, 0x12, 0x17, + 0x0a, 0x13, 0x42, 0x75, 0x63, 0x6b, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x46, 0x61, + 0x75, 0x6c, 0x74, 0x65, 0x64, 0x10, 0x03, 0x2a, 0x9b, 0x01, 0x0a, 0x0c, 0x43, 0x61, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x61, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x11, 0x0a, 0x0d, + 0x43, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x53, 0x10, 0x01, 0x12, + 0x11, 0x0a, 0x0d, 0x43, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x58, + 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x33, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x59, 0x10, 0x04, 0x12, 0x14, 0x0a, 0x10, 0x43, 0x61, 0x72, 0x54, + 0x79, 0x70, 0x65, 0x53, 0x65, 0x6d, 0x69, 0x54, 0x72, 0x75, 0x63, 0x6b, 0x10, 0x05, 0x12, 0x15, + 0x0a, 0x11, 0x43, 0x61, 0x72, 0x54, 0x79, 0x70, 0x65, 0x43, 0x79, 0x62, 0x65, 0x72, 0x74, 0x72, + 0x75, 0x63, 0x6b, 0x10, 0x06, 0x2a, 0x71, 0x0a, 0x0f, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, + 0x6f, 0x72, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x72, + 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, + 0x10, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x55, 0x53, 0x10, + 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x45, + 0x55, 0x10, 0x02, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x6f, 0x72, + 0x74, 0x47, 0x42, 0x10, 0x03, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, + 0x6f, 0x72, 0x74, 0x43, 0x43, 0x53, 0x10, 0x04, 0x2a, 0xa2, 0x01, 0x0a, 0x14, 0x43, 0x68, 0x61, + 0x72, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x74, 0x63, 0x68, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, + 0x61, 0x74, 0x63, 0x68, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x16, 0x0a, + 0x12, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x74, 0x63, 0x68, + 0x53, 0x4e, 0x41, 0x10, 0x01, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, + 0x6f, 0x72, 0x74, 0x4c, 0x61, 0x74, 0x63, 0x68, 0x44, 0x69, 0x73, 0x65, 0x6e, 0x67, 0x61, 0x67, + 0x65, 0x64, 0x10, 0x02, 0x12, 0x1a, 0x0a, 0x16, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x6f, + 0x72, 0x74, 0x4c, 0x61, 0x74, 0x63, 0x68, 0x45, 0x6e, 0x67, 0x61, 0x67, 0x65, 0x64, 0x10, 0x03, + 0x12, 0x1b, 0x0a, 0x17, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x61, + 0x74, 0x63, 0x68, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0x04, 0x2a, 0xe6, 0x01, + 0x0a, 0x10, 0x43, 0x72, 0x75, 0x69, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x16, 0x0a, 0x12, 0x43, 0x72, 0x75, 0x69, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x72, + 0x75, 0x69, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x66, 0x66, 0x10, 0x01, 0x12, 0x16, + 0x0a, 0x12, 0x43, 0x72, 0x75, 0x69, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, + 0x6e, 0x64, 0x62, 0x79, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x72, 0x75, 0x69, 0x73, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x10, 0x03, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x72, 0x75, + 0x69, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x73, 0x74, 0x69, + 0x6c, 0x6c, 0x10, 0x04, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x72, 0x75, 0x69, 0x73, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x10, 0x05, 0x12, 0x14, 0x0a, + 0x10, 0x43, 0x72, 0x75, 0x69, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x46, 0x61, 0x75, 0x6c, + 0x74, 0x10, 0x06, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x72, 0x75, 0x69, 0x73, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x50, 0x72, 0x65, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x10, 0x07, 0x12, 0x18, 0x0a, 0x14, + 0x43, 0x72, 0x75, 0x69, 0x73, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x72, 0x65, 0x43, 0x61, + 0x6e, 0x63, 0x65, 0x6c, 0x10, 0x08, 0x2a, 0xcd, 0x01, 0x0a, 0x12, 0x44, 0x72, 0x69, 0x76, 0x65, + 0x49, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, + 0x19, 0x44, 0x72, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, + 0x44, 0x72, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x55, 0x6e, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x01, 0x12, + 0x1d, 0x0a, 0x19, 0x44, 0x72, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x6e, 0x64, 0x62, 0x79, 0x10, 0x02, 0x12, 0x1b, + 0x0a, 0x17, 0x44, 0x72, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x44, + 0x72, 0x69, 0x76, 0x65, 0x49, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x41, 0x62, 0x6f, 0x72, 0x74, 0x10, 0x04, 0x12, 0x1c, 0x0a, 0x18, 0x44, 0x72, 0x69, 0x76, + 0x65, 0x49, 0x6e, 0x76, 0x65, 0x72, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, + 0x61, 0x62, 0x6c, 0x65, 0x10, 0x05, 0x2a, 0x4a, 0x0a, 0x0a, 0x48, 0x76, 0x69, 0x6c, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x11, 0x48, 0x76, 0x69, 0x6c, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x48, + 0x76, 0x69, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x10, 0x01, + 0x12, 0x10, 0x0a, 0x0c, 0x48, 0x76, 0x69, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4f, 0x4b, + 0x10, 0x02, 0x2a, 0x71, 0x0a, 0x0b, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x16, 0x0a, 0x12, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x57, 0x69, 0x6e, + 0x64, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x10, 0x01, + 0x12, 0x1c, 0x0a, 0x18, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, + 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x4f, 0x70, 0x65, 0x6e, 0x10, 0x02, 0x12, 0x15, + 0x0a, 0x11, 0x57, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x65, + 0x6e, 0x65, 0x64, 0x10, 0x03, 0x2a, 0xc2, 0x01, 0x0a, 0x10, 0x53, 0x65, 0x61, 0x74, 0x46, 0x6f, + 0x6c, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x65, + 0x61, 0x74, 0x46, 0x6f, 0x6c, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x6e, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x65, 0x61, 0x74, 0x46, + 0x6f, 0x6c, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x4e, 0x41, 0x10, 0x01, + 0x12, 0x1b, 0x0a, 0x17, 0x53, 0x65, 0x61, 0x74, 0x46, 0x6f, 0x6c, 0x64, 0x50, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x65, 0x64, 0x10, 0x02, 0x12, 0x21, 0x0a, + 0x1d, 0x53, 0x65, 0x61, 0x74, 0x46, 0x6f, 0x6c, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x4e, 0x6f, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x75, 0x72, 0x65, 0x64, 0x10, 0x03, + 0x12, 0x1a, 0x0a, 0x16, 0x53, 0x65, 0x61, 0x74, 0x46, 0x6f, 0x6c, 0x64, 0x50, 0x6f, 0x73, 0x69, + 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6f, 0x6c, 0x64, 0x65, 0x64, 0x10, 0x04, 0x12, 0x1c, 0x0a, 0x18, + 0x53, 0x65, 0x61, 0x74, 0x46, 0x6f, 0x6c, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x55, 0x6e, 0x66, 0x6f, 0x6c, 0x64, 0x65, 0x64, 0x10, 0x05, 0x2a, 0x8e, 0x02, 0x0a, 0x10, 0x54, + 0x72, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x69, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x1b, 0x0a, 0x17, 0x54, 0x72, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x69, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, + 0x54, 0x72, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x69, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x4e, 0x6f, 0x74, 0x41, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x10, 0x01, 0x12, 0x19, + 0x0a, 0x15, 0x54, 0x72, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x69, 0x72, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x10, 0x02, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x72, 0x61, + 0x63, 0x74, 0x6f, 0x72, 0x41, 0x69, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, + 0x72, 0x67, 0x65, 0x64, 0x10, 0x03, 0x12, 0x30, 0x0a, 0x2c, 0x54, 0x72, 0x61, 0x63, 0x74, 0x6f, + 0x72, 0x41, 0x69, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, + 0x6e, 0x67, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6d, + 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x10, 0x04, 0x12, 0x32, 0x0a, 0x2e, 0x54, 0x72, 0x61, 0x63, + 0x74, 0x6f, 0x72, 0x41, 0x69, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x78, 0x68, 0x61, + 0x75, 0x73, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x49, 0x6e, + 0x74, 0x65, 0x72, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, 0x65, 0x10, 0x05, 0x12, 0x1d, 0x0a, 0x19, + 0x54, 0x72, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x41, 0x69, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x45, 0x78, 0x68, 0x61, 0x75, 0x73, 0x74, 0x65, 0x64, 0x10, 0x06, 0x2a, 0xa8, 0x02, 0x0a, 0x10, + 0x54, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x69, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x69, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x17, 0x0a, + 0x13, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x69, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x53, 0x4e, 0x41, 0x10, 0x01, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x65, + 0x72, 0x41, 0x69, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x49, 0x6e, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x10, 0x02, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x69, + 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x6f, 0x62, 0x74, 0x61, 0x69, 0x6c, 0x4d, 0x6f, + 0x64, 0x65, 0x10, 0x03, 0x12, 0x1b, 0x0a, 0x17, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x41, + 0x69, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x64, 0x10, + 0x04, 0x12, 0x30, 0x0a, 0x2c, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x69, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x65, + 0x73, 0x73, 0x75, 0x72, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x65, 0x64, 0x69, 0x61, 0x74, + 0x65, 0x10, 0x05, 0x12, 0x32, 0x0a, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6c, 0x65, 0x72, 0x41, 0x69, + 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x78, 0x68, 0x61, 0x75, 0x73, 0x74, 0x69, 0x6e, + 0x67, 0x50, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x6d, 0x65, + 0x64, 0x69, 0x61, 0x74, 0x65, 0x10, 0x06, 0x12, 0x1d, 0x0a, 0x19, 0x54, 0x72, 0x61, 0x69, 0x6c, + 0x65, 0x72, 0x41, 0x69, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x45, 0x78, 0x68, 0x61, 0x75, + 0x73, 0x74, 0x65, 0x64, 0x10, 0x07, 0x42, 0x2f, 0x5a, 0x2d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x65, 0x73, 0x6c, 0x61, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x73, + 0x2f, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x2d, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1440,31 +3525,75 @@ func file_protos_vehicle_data_proto_rawDescGZIP() []byte { return file_protos_vehicle_data_proto_rawDescData } -var file_protos_vehicle_data_proto_enumTypes = make([]protoimpl.EnumInfo, 3) -var file_protos_vehicle_data_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_protos_vehicle_data_proto_enumTypes = make([]protoimpl.EnumInfo, 23) +var file_protos_vehicle_data_proto_msgTypes = make([]protoimpl.MessageInfo, 6) var file_protos_vehicle_data_proto_goTypes = []interface{}{ - (Field)(0), // 0: telemetry.vehicle_data.Field - (ChargingState)(0), // 1: telemetry.vehicle_data.ChargingState - (ShiftState)(0), // 2: telemetry.vehicle_data.ShiftState - (*LocationValue)(nil), // 3: telemetry.vehicle_data.LocationValue - (*Value)(nil), // 4: telemetry.vehicle_data.Value - (*Datum)(nil), // 5: telemetry.vehicle_data.Datum - (*Payload)(nil), // 6: telemetry.vehicle_data.Payload - (*timestamppb.Timestamp)(nil), // 7: google.protobuf.Timestamp + (Field)(0), // 0: telemetry.vehicle_data.Field + (ChargingState)(0), // 1: telemetry.vehicle_data.ChargingState + (DetailedChargeStateValue)(0), // 2: telemetry.vehicle_data.DetailedChargeStateValue + (ShiftState)(0), // 3: telemetry.vehicle_data.ShiftState + (FollowDistance)(0), // 4: telemetry.vehicle_data.FollowDistance + (ForwardCollisionSensitivity)(0), // 5: telemetry.vehicle_data.ForwardCollisionSensitivity + (GuestModeMobileAccess)(0), // 6: telemetry.vehicle_data.GuestModeMobileAccess + (LaneAssistLevel)(0), // 7: telemetry.vehicle_data.LaneAssistLevel + (ScheduledChargingModeValue)(0), // 8: telemetry.vehicle_data.ScheduledChargingModeValue + (SentryModeState)(0), // 9: telemetry.vehicle_data.SentryModeState + (SpeedAssistLevel)(0), // 10: telemetry.vehicle_data.SpeedAssistLevel + (BMSStateValue)(0), // 11: telemetry.vehicle_data.BMSStateValue + (BuckleStatus)(0), // 12: telemetry.vehicle_data.BuckleStatus + (CarTypeValue)(0), // 13: telemetry.vehicle_data.CarTypeValue + (ChargePortValue)(0), // 14: telemetry.vehicle_data.ChargePortValue + (ChargePortLatchValue)(0), // 15: telemetry.vehicle_data.ChargePortLatchValue + (CruiseStateValue)(0), // 16: telemetry.vehicle_data.CruiseStateValue + (DriveInverterState)(0), // 17: telemetry.vehicle_data.DriveInverterState + (HvilStatus)(0), // 18: telemetry.vehicle_data.HvilStatus + (WindowState)(0), // 19: telemetry.vehicle_data.WindowState + (SeatFoldPosition)(0), // 20: telemetry.vehicle_data.SeatFoldPosition + (TractorAirStatus)(0), // 21: telemetry.vehicle_data.TractorAirStatus + (TrailerAirStatus)(0), // 22: telemetry.vehicle_data.TrailerAirStatus + (*LocationValue)(nil), // 23: telemetry.vehicle_data.LocationValue + (*Doors)(nil), // 24: telemetry.vehicle_data.Doors + (*Time)(nil), // 25: telemetry.vehicle_data.Time + (*Value)(nil), // 26: telemetry.vehicle_data.Value + (*Datum)(nil), // 27: telemetry.vehicle_data.Datum + (*Payload)(nil), // 28: telemetry.vehicle_data.Payload + (*timestamppb.Timestamp)(nil), // 29: google.protobuf.Timestamp } var file_protos_vehicle_data_proto_depIdxs = []int32{ - 3, // 0: telemetry.vehicle_data.Value.location_value:type_name -> telemetry.vehicle_data.LocationValue - 1, // 1: telemetry.vehicle_data.Value.charging_value:type_name -> telemetry.vehicle_data.ChargingState - 2, // 2: telemetry.vehicle_data.Value.shift_state_value:type_name -> telemetry.vehicle_data.ShiftState - 0, // 3: telemetry.vehicle_data.Datum.key:type_name -> telemetry.vehicle_data.Field - 4, // 4: telemetry.vehicle_data.Datum.value:type_name -> telemetry.vehicle_data.Value - 5, // 5: telemetry.vehicle_data.Payload.data:type_name -> telemetry.vehicle_data.Datum - 7, // 6: telemetry.vehicle_data.Payload.created_at:type_name -> google.protobuf.Timestamp - 7, // [7:7] is the sub-list for method output_type - 7, // [7:7] is the sub-list for method input_type - 7, // [7:7] is the sub-list for extension type_name - 7, // [7:7] is the sub-list for extension extendee - 0, // [0:7] is the sub-list for field type_name + 23, // 0: telemetry.vehicle_data.Value.location_value:type_name -> telemetry.vehicle_data.LocationValue + 1, // 1: telemetry.vehicle_data.Value.charging_value:type_name -> telemetry.vehicle_data.ChargingState + 3, // 2: telemetry.vehicle_data.Value.shift_state_value:type_name -> telemetry.vehicle_data.ShiftState + 7, // 3: telemetry.vehicle_data.Value.lane_assist_level_value:type_name -> telemetry.vehicle_data.LaneAssistLevel + 8, // 4: telemetry.vehicle_data.Value.scheduled_charging_mode_value:type_name -> telemetry.vehicle_data.ScheduledChargingModeValue + 9, // 5: telemetry.vehicle_data.Value.sentry_mode_state_value:type_name -> telemetry.vehicle_data.SentryModeState + 10, // 6: telemetry.vehicle_data.Value.speed_assist_level_value:type_name -> telemetry.vehicle_data.SpeedAssistLevel + 11, // 7: telemetry.vehicle_data.Value.bms_state_value:type_name -> telemetry.vehicle_data.BMSStateValue + 12, // 8: telemetry.vehicle_data.Value.buckle_status_value:type_name -> telemetry.vehicle_data.BuckleStatus + 13, // 9: telemetry.vehicle_data.Value.car_type_value:type_name -> telemetry.vehicle_data.CarTypeValue + 14, // 10: telemetry.vehicle_data.Value.charge_port_value:type_name -> telemetry.vehicle_data.ChargePortValue + 15, // 11: telemetry.vehicle_data.Value.charge_port_latch_value:type_name -> telemetry.vehicle_data.ChargePortLatchValue + 16, // 12: telemetry.vehicle_data.Value.cruise_state_value:type_name -> telemetry.vehicle_data.CruiseStateValue + 24, // 13: telemetry.vehicle_data.Value.door_value:type_name -> telemetry.vehicle_data.Doors + 17, // 14: telemetry.vehicle_data.Value.drive_inverter_state_value:type_name -> telemetry.vehicle_data.DriveInverterState + 18, // 15: telemetry.vehicle_data.Value.hvil_status_value:type_name -> telemetry.vehicle_data.HvilStatus + 19, // 16: telemetry.vehicle_data.Value.window_state_value:type_name -> telemetry.vehicle_data.WindowState + 20, // 17: telemetry.vehicle_data.Value.seat_fold_position_value:type_name -> telemetry.vehicle_data.SeatFoldPosition + 21, // 18: telemetry.vehicle_data.Value.tractor_air_status_value:type_name -> telemetry.vehicle_data.TractorAirStatus + 4, // 19: telemetry.vehicle_data.Value.follow_distance_value:type_name -> telemetry.vehicle_data.FollowDistance + 5, // 20: telemetry.vehicle_data.Value.forward_collision_sensitivity_value:type_name -> telemetry.vehicle_data.ForwardCollisionSensitivity + 6, // 21: telemetry.vehicle_data.Value.guest_mode_mobile_access_value:type_name -> telemetry.vehicle_data.GuestModeMobileAccess + 22, // 22: telemetry.vehicle_data.Value.trailer_air_status_value:type_name -> telemetry.vehicle_data.TrailerAirStatus + 25, // 23: telemetry.vehicle_data.Value.time_value:type_name -> telemetry.vehicle_data.Time + 2, // 24: telemetry.vehicle_data.Value.detailed_charge_state_value:type_name -> telemetry.vehicle_data.DetailedChargeStateValue + 0, // 25: telemetry.vehicle_data.Datum.key:type_name -> telemetry.vehicle_data.Field + 26, // 26: telemetry.vehicle_data.Datum.value:type_name -> telemetry.vehicle_data.Value + 27, // 27: telemetry.vehicle_data.Payload.data:type_name -> telemetry.vehicle_data.Datum + 29, // 28: telemetry.vehicle_data.Payload.created_at:type_name -> google.protobuf.Timestamp + 29, // [29:29] is the sub-list for method output_type + 29, // [29:29] is the sub-list for method input_type + 29, // [29:29] is the sub-list for extension type_name + 29, // [29:29] is the sub-list for extension extendee + 0, // [0:29] is the sub-list for field type_name } func init() { file_protos_vehicle_data_proto_init() } @@ -1486,7 +3615,7 @@ func file_protos_vehicle_data_proto_init() { } } file_protos_vehicle_data_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Value); i { + switch v := v.(*Doors); i { case 0: return &v.state case 1: @@ -1498,7 +3627,7 @@ func file_protos_vehicle_data_proto_init() { } } file_protos_vehicle_data_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Datum); i { + switch v := v.(*Time); i { case 0: return &v.state case 1: @@ -1510,6 +3639,30 @@ func file_protos_vehicle_data_proto_init() { } } file_protos_vehicle_data_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Value); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protos_vehicle_data_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Datum); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_protos_vehicle_data_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Payload); i { case 0: return &v.state @@ -1522,7 +3675,7 @@ func file_protos_vehicle_data_proto_init() { } } } - file_protos_vehicle_data_proto_msgTypes[1].OneofWrappers = []interface{}{ + file_protos_vehicle_data_proto_msgTypes[3].OneofWrappers = []interface{}{ (*Value_StringValue)(nil), (*Value_IntValue)(nil), (*Value_LongValue)(nil), @@ -1533,14 +3686,36 @@ func file_protos_vehicle_data_proto_init() { (*Value_ChargingValue)(nil), (*Value_ShiftStateValue)(nil), (*Value_Invalid)(nil), + (*Value_LaneAssistLevelValue)(nil), + (*Value_ScheduledChargingModeValue)(nil), + (*Value_SentryModeStateValue)(nil), + (*Value_SpeedAssistLevelValue)(nil), + (*Value_BmsStateValue)(nil), + (*Value_BuckleStatusValue)(nil), + (*Value_CarTypeValue)(nil), + (*Value_ChargePortValue)(nil), + (*Value_ChargePortLatchValue)(nil), + (*Value_CruiseStateValue)(nil), + (*Value_DoorValue)(nil), + (*Value_DriveInverterStateValue)(nil), + (*Value_HvilStatusValue)(nil), + (*Value_WindowStateValue)(nil), + (*Value_SeatFoldPositionValue)(nil), + (*Value_TractorAirStatusValue)(nil), + (*Value_FollowDistanceValue)(nil), + (*Value_ForwardCollisionSensitivityValue)(nil), + (*Value_GuestModeMobileAccessValue)(nil), + (*Value_TrailerAirStatusValue)(nil), + (*Value_TimeValue)(nil), + (*Value_DetailedChargeStateValue)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protos_vehicle_data_proto_rawDesc, - NumEnums: 3, - NumMessages: 4, + NumEnums: 23, + NumMessages: 6, NumExtensions: 0, NumServices: 0, }, diff --git a/protos/vehicle_data.proto b/protos/vehicle_data.proto index 9f4f8c10..a3363247 100644 --- a/protos/vehicle_data.proto +++ b/protos/vehicle_data.proto @@ -186,9 +186,12 @@ enum Field { Experimental_13 = 176; Experimental_14 = 177; Experimental_15 = 178; + + // fields below here are always returned typed + DetailedChargeState = 179; } -// ChargingState are the charging options +// ChargingState is deprecated and not used enum ChargingState { ChargeStateUnknown = 0; ChargeStateDisconnected = 1; @@ -199,14 +202,24 @@ enum ChargingState { ChargeStateStopped = 6; } +enum DetailedChargeStateValue { + DetailedChargeStateUnknown = 0; + DetailedChargeStateDisconnected = 1; + DetailedChargeStateNoPower = 2; + DetailedChargeStateStarting = 3; + DetailedChargeStateCharging = 4; + DetailedChargeStateComplete = 5; + DetailedChargeStateStopped = 6; +} + // ShiftState are the gear options enum ShiftState { ShiftStateUnknown = 0; ShiftStateInvalid = 1; ShiftStateP = 2; ShiftStateR = 3; - ShiftStateD = 4; - ShiftStateN = 5; + ShiftStateN = 4; + ShiftStateD = 5; ShiftStateSNA = 6; } @@ -216,6 +229,204 @@ message LocationValue { double longitude = 2; } +enum FollowDistance { + FollowDistanceUnknown = 0; + FollowDistance1 = 1; + FollowDistance2 = 2; + FollowDistance3 = 3; + FollowDistance4 = 4; + FollowDistance5 = 5; + FollowDistance6 = 6; + FollowDistance7 = 7; +} + +enum ForwardCollisionSensitivity { + ForwardCollisionSensitivityUnknown = 0; + ForwardCollisionSensitivityOff = 1; + ForwardCollisionSensitivityLate = 2; + ForwardCollisionSensitivityAverage = 3; + ForwardCollisionSensitivityEarly = 4; +} + +enum GuestModeMobileAccess { + GuestModeMobileAccessUnknown = 0; + GuestModeMobileAccessInit = 1; + GuestModeMobileAccessNotAuthenticated = 2; + GuestModeMobileAccessAuthenticated = 3; + GuestModeMobileAccessAbortedDriving = 4; + GuestModeMobileAccessAbortedUsingRemoteStart = 5; + GuestModeMobileAccessAbortedUsingBLEKeys = 6; + GuestModeMobileAccessAbortedValetMode = 7; + GuestModeMobileAccessAbortedGuestModeOff = 8; + GuestModeMobileAccessAbortedDriveAuthTimeExceeded = 9; + GuestModeMobileAccessAbortedNoDataReceived = 10; + GuestModeMobileAccessRequestingFromMothership = 11; + GuestModeMobileAccessRequestingFromAuthD = 12; + GuestModeMobileAccessAbortedFetchFailed = 13; + GuestModeMobileAccessAbortedBadDataReceived = 14; + GuestModeMobileAccessShowingQRCode = 15; + GuestModeMobileAccessSwipedAway = 16; + GuestModeMobileAccessDismissedQRCodeExpired = 17; + GuestModeMobileAccessSucceededPairedNewBLEKey = 18; +} + +enum LaneAssistLevel { + LaneAssistLevelUnknown = 0; + LaneAssistLevelNone = 1; + LaneAssistLevelWarning = 2; + LaneAssistLevelAssist = 3; +} + +enum ScheduledChargingModeValue { + ScheduledChargingModeUnknown = 0; + ScheduledChargingModeOff = 1; + ScheduledChargingModeStartAt = 2; + ScheduledChargingModeDepartBy = 3; +} + +enum SentryModeState { + SentryModeStateUnknown = 0; + SentryModeStateOff = 1; + SentryModeStateIdle = 2; + SentryModeStateArmed = 3; + SentryModeStateAware = 4; + SentryModeStatePanic = 5; + SentryModeStateQuiet = 6; +} + +enum SpeedAssistLevel { + SpeedAssistLevelUnknown = 0; + SpeedAssistLevelNone = 1; + SpeedAssistLevelDisplay = 2; + SpeedAssistLevelChime = 3; +} + +enum BMSStateValue { + BMSStateUnknown = 0; + BMSStateStandby = 1; + BMSStateDrive = 2; + BMSStateSupport = 3; + BMSStateCharge = 4; + BMSStateFEIM = 5; + BMSStateClearFault = 6; + BMSStateFault = 7; + BMSStateWeld = 8; + BMSStateTest = 9; + BMSStateSNA = 10; +} + +enum BuckleStatus { + BuckleStatusUnknown = 0; + BuckleStatusUnlatched = 1; + BuckleStatusLatched = 2; + BuckleStatusFaulted = 3; +} + +enum CarTypeValue { + CarTypeUnknown = 0; + CarTypeModelS = 1; + CarTypeModelX = 2; + CarTypeModel3 = 3; + CarTypeModelY = 4; + CarTypeSemiTruck = 5; + CarTypeCybertruck = 6; +} + +enum ChargePortValue { + ChargePortUnknown = 0; + ChargePortUS = 1; + ChargePortEU = 2; + ChargePortGB = 3; + ChargePortCCS = 4; +} + +enum ChargePortLatchValue { + ChargePortLatchUnknown = 0; + ChargePortLatchSNA = 1; + ChargePortLatchDisengaged = 2; + ChargePortLatchEngaged = 3; + ChargePortLatchBlocking = 4; +} + +enum CruiseStateValue { + CruiseStateUnknown = 0; + CruiseStateOff = 1; + CruiseStateStandby = 2; + CruiseStateOn = 3; + CruiseStateStandstill = 4; + CruiseStateOverride = 5; + CruiseStateFault = 6; + CruiseStatePreFault = 7; + CruiseStatePreCancel = 8; +} + +message Doors { + bool DriverFront = 1; + bool PassengerFront = 2; + bool DriverRear = 3; + bool PassengerRear = 4; + bool TrunkFront = 5; + bool TrunkRear = 6; +} + +enum DriveInverterState { + DriveInverterStateUnknown = 0; + DriveInverterStateUnavailable = 1; + DriveInverterStateStandby = 2; + DriveInverterStateFault = 3; + DriveInverterStateAbort = 4; + DriveInverterStateEnable = 5; +} + +enum HvilStatus { + HvilStatusUnknown = 0; + HvilStatusFault = 1; + HvilStatusOK = 2; +} + +enum WindowState { + WindowStateUnknown = 0; + WindowStateClosed = 1; + WindowStatePartiallyOpen = 2; + WindowStateOpened = 3; +} + +enum SeatFoldPosition { + SeatFoldPositionUnknown = 0; + SeatFoldPositionSNA = 1; + SeatFoldPositionFaulted = 2; + SeatFoldPositionNotConfigured = 3; + SeatFoldPositionFolded = 4; + SeatFoldPositionUnfolded = 5; +} + +enum TractorAirStatus { + TractorAirStatusUnknown = 0; + TractorAirStatusNotAvailable = 1; + TractorAirStatusError = 2; + TractorAirStatusCharged = 3; + TractorAirStatusBuildingPressureIntermediate = 4; + TractorAirStatusExhaustingPressureIntermediate = 5; + TractorAirStatusExhausted = 6; +} + +enum TrailerAirStatus { + TrailerAirStatusUnknown = 0; + TrailerAirStatusSNA = 1; + TrailerAirStatusInvalid = 2; + TrailerAirStatusBobtailMode = 3; + TrailerAirStatusCharged = 4; + TrailerAirStatusBuildingPressureIntermediate = 5; + TrailerAirStatusExhaustingPressureIntermediate = 6; + TrailerAirStatusExhausted = 7; +} + +message Time { + int32 hour = 1; + int32 minute = 2; + int32 second = 3; +} + // Value is a dynamic Datum type. Most Datums are strings and is the default format // Note: Fields may have their types updated with different software and vehicle // versions to optimize for precision or space @@ -231,6 +442,28 @@ message Value { ChargingState charging_value = 8; ShiftState shift_state_value = 9; bool invalid = 10; + LaneAssistLevel lane_assist_level_value = 11; + ScheduledChargingModeValue scheduled_charging_mode_value = 12; + SentryModeState sentry_mode_state_value = 13; + SpeedAssistLevel speed_assist_level_value = 14; + BMSStateValue bms_state_value = 15; + BuckleStatus buckle_status_value = 16; + CarTypeValue car_type_value = 17; + ChargePortValue charge_port_value = 18; + ChargePortLatchValue charge_port_latch_value = 19; + CruiseStateValue cruise_state_value = 20; + Doors door_value = 21; + DriveInverterState drive_inverter_state_value = 22; + HvilStatus hvil_status_value = 23; + WindowState window_state_value = 24; + SeatFoldPosition seat_fold_position_value = 25; + TractorAirStatus tractor_air_status_value = 26; + FollowDistance follow_distance_value = 27; + ForwardCollisionSensitivity forward_collision_sensitivity_value = 28; + GuestModeMobileAccess guest_mode_mobile_access_value = 29; + TrailerAirStatus trailer_air_status_value = 30; + Time time_value = 31; + DetailedChargeStateValue detailed_charge_state_value = 32; } } diff --git a/protos/vehicle_error.pb.go b/protos/vehicle_error.pb.go index dd2f3ac5..e7becd8d 100644 --- a/protos/vehicle_error.pb.go +++ b/protos/vehicle_error.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v4.25.1 +// protoc v5.26.1 // source: protos/vehicle_error.proto package protos diff --git a/protos/vehicle_metric.pb.go b/protos/vehicle_metric.pb.go index 64d60c6f..80493b3d 100644 --- a/protos/vehicle_metric.pb.go +++ b/protos/vehicle_metric.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v4.25.1 +// protoc v5.26.1 // source: protos/vehicle_metric.proto package protos