diff --git a/datastore/simple/logger.go b/datastore/simple/logger.go index c808830..923a87d 100644 --- a/datastore/simple/logger.go +++ b/datastore/simple/logger.go @@ -37,7 +37,7 @@ func (p *Producer) ProcessReliableAck(_ *telemetry.Record) { // Produce sends the data to the logger func (p *Producer) Produce(entry *telemetry.Record) { - data, err := p.recordToLogMap(entry) + data, err := p.recordToLogMap(entry, entry.Vin) if err != nil { p.logger.ErrorLog("record_logging_error", err, logrus.LogInfo{"vin": entry.Vin, "txtype": entry.TxType, "metadata": entry.Metadata()}) return @@ -50,10 +50,10 @@ func (p *Producer) ReportError(_ string, _ error, _ logrus.LogInfo) { } // recordToLogMap converts the data of a record to a map or slice of maps -func (p *Producer) recordToLogMap(record *telemetry.Record) (interface{}, error) { +func (p *Producer) recordToLogMap(record *telemetry.Record, vin string) (interface{}, error) { switch payload := record.GetProtoMessage().(type) { case *protos.Payload: - return transformers.PayloadToMap(payload, p.Config.Verbose, p.logger), nil + return transformers.PayloadToMap(payload, p.Config.Verbose, vin, p.logger), nil case *protos.VehicleAlerts: alertMaps := make([]map[string]interface{}, len(payload.Alerts)) for i, alert := range payload.Alerts { diff --git a/datastore/simple/transformers/payload.go b/datastore/simple/transformers/payload.go index da892ae..a2482f5 100644 --- a/datastore/simple/transformers/payload.go +++ b/datastore/simple/transformers/payload.go @@ -8,8 +8,13 @@ import ( "github.com/teslamotors/fleet-telemetry/protos" ) +const ( + // SemiModelLetter is the 4th character in VIN representing Tesla semi + SemiModelLetter = "T" +) + // PayloadToMap transforms a Payload into a human readable map for logging purposes -func PayloadToMap(payload *protos.Payload, includeTypes bool, logger *logrus.Logger) map[string]interface{} { +func PayloadToMap(payload *protos.Payload, includeTypes bool, vin string, logger *logrus.Logger) map[string]interface{} { convertedPayload := make(map[string]interface{}, len(payload.Data)+2) convertedPayload["Vin"] = payload.Vin convertedPayload["CreatedAt"] = payload.CreatedAt.AsTime().Format(time.RFC3339) @@ -20,7 +25,7 @@ func PayloadToMap(payload *protos.Payload, includeTypes bool, logger *logrus.Log continue } name := protos.Field_name[int32(datum.Key.Number())] - value, ok := transformValue(datum.Value.Value, includeTypes) + value, ok := transformValue(datum.Value.Value, includeTypes, vin) if !ok { logger.ActivityLog("unknown_payload_value_data_type", logrus.LogInfo{"name": name, "vin": payload.Vin}) continue @@ -31,7 +36,7 @@ func PayloadToMap(payload *protos.Payload, includeTypes bool, logger *logrus.Log return convertedPayload } -func transformValue(value interface{}, includeTypes bool) (interface{}, bool) { +func transformValue(value interface{}, includeTypes bool, vin string) (interface{}, bool) { var outputValue interface{} var outputType string @@ -140,6 +145,71 @@ func transformValue(value interface{}, includeTypes bool) (interface{}, bool) { case *protos.Value_DetailedChargeStateValue: outputType = "detailedChargeState" outputValue = v.DetailedChargeStateValue.String() + case *protos.Value_HvacAutoModeValue: + outputType = "hvacAutoMode" + outputValue = v.HvacAutoModeValue.String() + case *protos.Value_CabinOverheatProtectionModeValue: + outputType = "cabinOverheatProtectionMode" + outputValue = v.CabinOverheatProtectionModeValue.String() + case *protos.Value_CabinOverheatProtectionTemperatureLimitValue: + outputType = "cabinOverheatProtectionTemperatureLimit" + outputValue = v.CabinOverheatProtectionTemperatureLimitValue.String() + case *protos.Value_DefrostModeValue: + outputType = "defrostMode" + outputValue = v.DefrostModeValue.String() + case *protos.Value_ClimateKeeperModeValue: + outputType = "climateKeeperMode" + outputValue = v.ClimateKeeperModeValue.String() + case *protos.Value_HvacPowerValue: + outputType = "hvacPower" + outputValue = v.HvacPowerValue.String() + case *protos.Value_TireLocationValue: + outputType = "tireLocation" + if getModelFromVIN(vin) == SemiModelLetter { + outputValue = map[string]bool{ + "FrontLeft": v.TireLocationValue.FrontLeft, + "FrontRight": v.TireLocationValue.FrontRight, + "SemiMiddleAxleLeft": v.TireLocationValue.RearLeft, + "SemiMiddleAxleRight": v.TireLocationValue.RearRight, + "SemiMiddleAxleLeft2": v.TireLocationValue.SemiMiddleAxleLeft_2, + "SemiMiddleAxleRight2": v.TireLocationValue.SemiMiddleAxleRight_2, + "SemiRearAxleLeft": v.TireLocationValue.SemiRearAxleLeft, + "SemiRearAxleRight": v.TireLocationValue.SemiRearAxleRight, + "SemiRearAxleLeft2": v.TireLocationValue.SemiRearAxleLeft_2, + "SemiRearAxleRight2": v.TireLocationValue.SemiRearAxleRight_2, + } + } else { + outputValue = map[string]bool{ + "FrontLeft": v.TireLocationValue.FrontLeft, + "FrontRight": v.TireLocationValue.FrontRight, + "RearLeft": v.TireLocationValue.RearLeft, + "RearRight": v.TireLocationValue.RearRight, + } + } + case *protos.Value_FastChargerValue: + outputType = "fastChargerType" + outputValue = v.FastChargerValue.String() + case *protos.Value_CableTypeValue: + outputType = "chargingCableType" + outputValue = v.CableTypeValue.String() + case *protos.Value_TonneauTentModeValue: + outputType = "tonneauTentMode" + outputValue = v.TonneauTentModeValue.String() + case *protos.Value_TonneauPositionValue: + outputType = "tonneauPosition" + outputValue = v.TonneauPositionValue.String() + case *protos.Value_PowershareStateValue: + outputType = "powershareStatus" + outputValue = v.PowershareStateValue.String() + case *protos.Value_PowershareStopReasonValue: + outputType = "powershareStopReason" + outputValue = v.PowershareStopReasonValue.String() + case *protos.Value_PowershareTypeValue: + outputType = "powershareType" + outputValue = v.PowershareTypeValue.String() + case *protos.Value_DisplayStateValue: + outputType = "displayState" + outputValue = v.DisplayStateValue.String() default: return nil, false } @@ -150,3 +220,7 @@ func transformValue(value interface{}, includeTypes bool) (interface{}, bool) { return outputValue, true } + +func getModelFromVIN(vin string) string { + return string(vin[3]) +} diff --git a/datastore/simple/transformers/payload_test.go b/datastore/simple/transformers/payload_test.go index 6f948ae..44946e0 100644 --- a/datastore/simple/transformers/payload_test.go +++ b/datastore/simple/transformers/payload_test.go @@ -23,7 +23,7 @@ var _ = Describe("Payload", func() { Vin: "TEST123", CreatedAt: now, } - result := transformers.PayloadToMap(payload, false, logger) + result := transformers.PayloadToMap(payload, false, "", logger) Expect(result["Vin"]).To(Equal("TEST123")) Expect(result["CreatedAt"]).To(Equal(now.AsTime().Format(time.RFC3339))) }) @@ -46,7 +46,7 @@ var _ = Describe("Payload", func() { Vin: "TEST123", CreatedAt: now, } - result := transformers.PayloadToMap(payload, false, logger) + result := transformers.PayloadToMap(payload, false, "", logger) Expect(result["Vin"]).To(Equal("TEST123")) Expect(result["CreatedAt"]).To(Equal(now.AsTime().Format(time.RFC3339))) Expect(result["BatteryHeaterOn"]).To(Equal(true)) @@ -59,7 +59,7 @@ var _ = Describe("Payload", func() { Vin: "TEST123", CreatedAt: timestamppb.Now(), } - result := transformers.PayloadToMap(payload, includeTypes, logger) + result := transformers.PayloadToMap(payload, includeTypes, "", logger) Expect(result[expectedKey]).To(Equal(expectedValue)) }, Entry("String value with types excluded", diff --git a/protos/python/vehicle_data_pb2.py b/protos/python/vehicle_data_pb2.py index 126319b..ec839b6 100644 --- a/protos/python/vehicle_data_pb2.py +++ b/protos/python/vehicle_data_pb2.py @@ -25,7 +25,7 @@ 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\"\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\"\x9a\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\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*\x82\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\x10\n\x0c\x44\x65precated_2\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*\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') +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\"\x9b\x02\n\x0cTireLocation\x12\x12\n\nfront_left\x18\x01 \x01(\x08\x12\x13\n\x0b\x66ront_right\x18\x02 \x01(\x08\x12\x11\n\trear_left\x18\x03 \x01(\x08\x12\x12\n\nrear_right\x18\x04 \x01(\x08\x12\x1f\n\x17semi_middle_axle_left_2\x18\x05 \x01(\x08\x12 \n\x18semi_middle_axle_right_2\x18\x06 \x01(\x08\x12\x1b\n\x13semi_rear_axle_left\x18\x07 \x01(\x08\x12\x1c\n\x14semi_rear_axle_right\x18\x08 \x01(\x08\x12\x1d\n\x15semi_rear_axle_left_2\x18\t \x01(\x08\x12\x1e\n\x16semi_rear_axle_right_2\x18\n \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\"\xcc\x18\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\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\x12I\n\x14hvac_auto_mode_value\x18! \x01(\x0e\x32).telemetry.vehicle_data.HvacAutoModeStateH\x00\x12h\n$cabin_overheat_protection_mode_value\x18\" \x01(\x0e\x32\x38.telemetry.vehicle_data.CabinOverheatProtectionModeStateH\x00\x12w\n1cabin_overheat_protection_temperature_limit_value\x18# \x01(\x0e\x32:.telemetry.vehicle_data.ClimateOverheatProtectionTempLimitH\x00\x12\x46\n\x12\x64\x65\x66rost_mode_value\x18$ \x01(\x0e\x32(.telemetry.vehicle_data.DefrostModeStateH\x00\x12S\n\x19\x63limate_keeper_mode_value\x18% \x01(\x0e\x32..telemetry.vehicle_data.ClimateKeeperModeStateH\x00\x12\x42\n\x10hvac_power_value\x18& \x01(\x0e\x32&.telemetry.vehicle_data.HvacPowerStateH\x00\x12\x43\n\x13tire_location_value\x18\' \x01(\x0b\x32$.telemetry.vehicle_data.TireLocationH\x00\x12\x41\n\x12\x66\x61st_charger_value\x18( \x01(\x0e\x32#.telemetry.vehicle_data.FastChargerH\x00\x12=\n\x10\x63\x61\x62le_type_value\x18) \x01(\x0e\x32!.telemetry.vehicle_data.CableTypeH\x00\x12O\n\x17tonneau_tent_mode_value\x18* \x01(\x0e\x32,.telemetry.vehicle_data.TonneauTentModeStateH\x00\x12N\n\x16tonneau_position_value\x18+ \x01(\x0e\x32,.telemetry.vehicle_data.TonneauPositionStateH\x00\x12M\n\x15powershare_type_value\x18, \x01(\x0e\x32,.telemetry.vehicle_data.PowershareTypeStatusH\x00\x12I\n\x16powershare_state_value\x18- \x01(\x0e\x32\'.telemetry.vehicle_data.PowershareStateH\x00\x12Z\n\x1cpowershare_stop_reason_value\x18. \x01(\x0e\x32\x32.telemetry.vehicle_data.PowershareStopReasonStatusH\x00\x12\x43\n\x13\x64isplay_state_value\x18/ \x01(\x0e\x32$.telemetry.vehicle_data.DisplayStateH\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*\xa4)\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\x10\n\x0c\x44\x65precated_2\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\x12 \n\x1b\x43\x61\x62inOverheatProtectionMode\x10\xb4\x01\x12,\n\'CabinOverheatProtectionTemperatureLimit\x10\xb5\x01\x12\x12\n\rCenterDisplay\x10\xb6\x01\x12\x17\n\x12\x43hargePortDoorOpen\x10\xb7\x01\x12\x16\n\x11\x43hargingCableType\x10\xb9\x01\x12\x16\n\x11\x43limateKeeperMode\x10\xba\x01\x12\x1e\n\x19\x44\x65\x66rostForPreconditioning\x10\xbb\x01\x12\x10\n\x0b\x44\x65\x66rostMode\x10\xbc\x01\x12\x16\n\x11\x45\x66\x66iciencyPackage\x10\xbd\x01\x12&\n!EstimatedHoursToChargeTermination\x10\xbe\x01\x12\x12\n\rEuropeVehicle\x10\xbf\x01\x12\'\n\"ExpectedEnergyPercentAtTripArrival\x10\xc0\x01\x12\x14\n\x0f\x46\x61stChargerType\x10\xc1\x01\x12\x18\n\x13HomelinkDeviceCount\x10\xc2\x01\x12\x13\n\x0eHomelinkNearby\x10\xc3\x01\x12\x12\n\rHvacACEnabled\x10\xc4\x01\x12\x11\n\x0cHvacAutoMode\x10\xc5\x01\x12\x11\n\x0cHvacFanSpeed\x10\xc6\x01\x12\x12\n\rHvacFanStatus\x10\xc7\x01\x12\x1f\n\x1aHvacLeftTemperatureRequest\x10\xc8\x01\x12\x0e\n\tHvacPower\x10\xc9\x01\x12 \n\x1bHvacRightTemperatureRequest\x10\xca\x01\x12\x1e\n\x19HvacSteeringWheelHeatAuto\x10\xcb\x01\x12\x1f\n\x1aHvacSteeringWheelHeatLevel\x10\xcc\x01\x12\x1b\n\x16OffroadLightbarPresent\x10\xcd\x01\x12\x18\n\x13PowershareHoursLeft\x10\xce\x01\x12#\n\x1ePowershareInstantaneousPowerKW\x10\xcf\x01\x12\x15\n\x10PowershareStatus\x10\xd0\x01\x12\x19\n\x14PowershareStopReason\x10\xd1\x01\x12\x13\n\x0ePowershareType\x10\xd2\x01\x12\x1b\n\x16RearDisplayHvacEnabled\x10\xd3\x01\x12\x14\n\x0fRearSeatHeaters\x10\xd4\x01\x12\x17\n\x12RemoteStartEnabled\x10\xd5\x01\x12\x13\n\x0eRightHandDrive\x10\xd6\x01\x12\x1d\n\x18RouteTrafficMinutesDelay\x10\xd7\x01\x12*\n%SoftwareUpdateDownloadPercentComplete\x10\xd8\x01\x12*\n%SoftwareUpdateExpectedDurationMinutes\x10\xd9\x01\x12.\n)SoftwareUpdateInstallationPercentComplete\x10\xda\x01\x12%\n SoftwareUpdateScheduledStartTime\x10\xdb\x01\x12\x1a\n\x15SoftwareUpdateVersion\x10\xdc\x01\x12\x17\n\x12TonneauOpenPercent\x10\xdd\x01\x12\x14\n\x0fTonneauPosition\x10\xde\x01\x12\x14\n\x0fTonneauTentMode\x10\xdf\x01\x12\x15\n\x10TpmsHardWarnings\x10\xe0\x01\x12\x15\n\x10TpmsSoftWarnings\x10\xe1\x01\x12\x15\n\x10ValetModeEnabled\x10\xe2\x01\x12\x0e\n\tWheelType\x10\xe3\x01\x12\x15\n\x10WiperHeatEnabled\x10\xe4\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*\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*i\n\x11HvacAutoModeState\x12\x1c\n\x18HvacAutoModeStateUnknown\x10\x00\x12\x17\n\x13HvacAutoModeStateOn\x10\x01\x12\x1d\n\x19HvacAutoModeStateOverride\x10\x02*\xcd\x01\n CabinOverheatProtectionModeState\x12+\n\'CabinOverheatProtectionModeStateUnknown\x10\x00\x12\'\n#CabinOverheatProtectionModeStateOff\x10\x01\x12&\n\"CabinOverheatProtectionModeStateOn\x10\x02\x12+\n\'CabinOverheatProtectionModeStateFanOnly\x10\x03*\xd8\x01\n\"ClimateOverheatProtectionTempLimit\x12-\n)ClimateOverheatProtectionTempLimitUnknown\x10\x00\x12*\n&ClimateOverheatProtectionTempLimitHigh\x10\x01\x12,\n(ClimateOverheatProtectionTempLimitMedium\x10\x02\x12)\n%ClimateOverheatProtectionTempLimitLow\x10\x03*\x9c\x01\n\x10\x44\x65\x66rostModeState\x12\x1b\n\x17\x44\x65\x66rostModeStateUnknown\x10\x00\x12\x17\n\x13\x44\x65\x66rostModeStateOff\x10\x01\x12\x1a\n\x16\x44\x65\x66rostModeStateNormal\x10\x02\x12\x17\n\x13\x44\x65\x66rostModeStateMax\x10\x03\x12\x1d\n\x19\x44\x65\x66rostModeStateAutoDefog\x10\x04*\xb8\x01\n\x16\x43limateKeeperModeState\x12!\n\x1d\x43limateKeeperModeStateUnknown\x10\x00\x12\x1d\n\x19\x43limateKeeperModeStateOff\x10\x01\x12\x1c\n\x18\x43limateKeeperModeStateOn\x10\x02\x12\x1d\n\x19\x43limateKeeperModeStateDog\x10\x03\x12\x1f\n\x1b\x43limateKeeperModeStateParty\x10\x04*\x9b\x01\n\x0eHvacPowerState\x12\x19\n\x15HvacPowerStateUnknown\x10\x00\x12\x15\n\x11HvacPowerStateOff\x10\x01\x12\x14\n\x10HvacPowerStateOn\x10\x02\x12\x1e\n\x1aHvacPowerStatePrecondition\x10\x03\x12!\n\x1dHvacPowerStateOverheatProtect\x10\x04*\xed\x01\n\x0b\x46\x61stCharger\x12\x16\n\x12\x46\x61stChargerUnknown\x10\x00\x12\x1b\n\x17\x46\x61stChargerSupercharger\x10\x01\x12\x16\n\x12\x46\x61stChargerCHAdeMO\x10\x02\x12\x11\n\rFastChargerGB\x10\x03\x12\x1e\n\x1a\x46\x61stChargerACSingleWireCAN\x10\x04\x12\x14\n\x10\x46\x61stChargerCombo\x10\x05\x12\x1e\n\x1a\x46\x61stChargerMCSingleWireCAN\x10\x06\x12\x14\n\x10\x46\x61stChargerOther\x10\x07\x12\x12\n\x0e\x46\x61stChargerSNA\x10\x08*\x7f\n\tCableType\x12\x14\n\x10\x43\x61\x62leTypeUnknown\x10\x00\x12\x10\n\x0c\x43\x61\x62leTypeIEC\x10\x01\x12\x10\n\x0c\x43\x61\x62leTypeSAE\x10\x02\x12\x12\n\x0e\x43\x61\x62leTypeGB_AC\x10\x03\x12\x12\n\x0e\x43\x61\x62leTypeGB_DC\x10\x04\x12\x10\n\x0c\x43\x61\x62leTypeSNA\x10\x05*\xb9\x01\n\x14TonneauTentModeState\x12\x1f\n\x1bTonneauTentModeStateUnknown\x10\x00\x12 \n\x1cTonneauTentModeStateInactive\x10\x01\x12\x1e\n\x1aTonneauTentModeStateMoving\x10\x02\x12\x1e\n\x1aTonneauTentModeStateFailed\x10\x03\x12\x1e\n\x1aTonneauTentModeStateActive\x10\x04*\xc2\x01\n\x14TonneauPositionState\x12\x1f\n\x1bTonneauPositionStateUnknown\x10\x00\x12\x1f\n\x1bTonneauPositionStateInvalid\x10\x01\x12\x1e\n\x1aTonneauPositionStateClosed\x10\x02\x12%\n!TonneauPositionStatePartiallyOpen\x10\x03\x12!\n\x1dTonneauPositionStateFullyOpen\x10\x04*\xe7\x01\n\x0fPowershareState\x12\x1a\n\x16PowershareStateUnknown\x10\x00\x12\x1b\n\x17PowershareStateInactive\x10\x01\x12\x1e\n\x1aPowershareStateHandshaking\x10\x02\x12\x17\n\x13PowershareStateInit\x10\x03\x12\x1a\n\x16PowershareStateEnabled\x10\x04\x12*\n&PowershareStateEnabledReconnectingSoon\x10\x05\x12\x1a\n\x16PowershareStateStopped\x10\x06*\xd8\x02\n\x1aPowershareStopReasonStatus\x12%\n!PowershareStopReasonStatusUnknown\x10\x00\x12\"\n\x1ePowershareStopReasonStatusNone\x10\x01\x12\'\n#PowershareStopReasonStatusSOCTooLow\x10\x02\x12#\n\x1fPowershareStopReasonStatusRetry\x10\x03\x12#\n\x1fPowershareStopReasonStatusFault\x10\x04\x12\"\n\x1ePowershareStopReasonStatusUser\x10\x05\x12*\n&PowershareStopReasonStatusReconnecting\x10\x06\x12,\n(PowershareStopReasonStatusAuthentication\x10\x07*\x91\x01\n\x14PowershareTypeStatus\x12\x1f\n\x1bPowershareTypeStatusUnknown\x10\x00\x12\x1c\n\x18PowershareTypeStatusNone\x10\x01\x12\x1c\n\x18PowershareTypeStatusLoad\x10\x02\x12\x1c\n\x18PowershareTypeStatusHome\x10\x03*\x95\x02\n\x0c\x44isplayState\x12\x17\n\x13\x44isplayStateUnknown\x10\x00\x12\x13\n\x0f\x44isplayStateOff\x10\x01\x12\x13\n\x0f\x44isplayStateDim\x10\x02\x12\x19\n\x15\x44isplayStateAccessory\x10\x03\x12\x12\n\x0e\x44isplayStateOn\x10\x04\x12\x17\n\x13\x44isplayStateDriving\x10\x05\x12\x18\n\x14\x44isplayStateCharging\x10\x06\x12\x14\n\x10\x44isplayStateLock\x10\x07\x12\x16\n\x12\x44isplayStateSentry\x10\x08\x12\x13\n\x0f\x44isplayStateDog\x10\t\x12\x1d\n\x19\x44isplayStateEntertainment\x10\nB/Z-github.com/teslamotors/fleet-telemetry/protosb\x06proto3') _globals = globals() _builder.BuildMessageAndEnumDescriptors(DESCRIPTOR, _globals) @@ -33,60 +33,90 @@ 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=2490 - _globals['_FIELD']._serialized_end=6460 - _globals['_CHARGINGSTATE']._serialized_start=6463 - _globals['_CHARGINGSTATE']._serialized_end=6654 - _globals['_DETAILEDCHARGESTATEVALUE']._serialized_start=6657 - _globals['_DETAILEDCHARGESTATEVALUE']._serialized_end=6915 - _globals['_SHIFTSTATE']._serialized_start=6918 - _globals['_SHIFTSTATE']._serialized_end=7063 - _globals['_FOLLOWDISTANCE']._serialized_start=7066 - _globals['_FOLLOWDISTANCE']._serialized_end=7256 - _globals['_FORWARDCOLLISIONSENSITIVITY']._serialized_start=7259 - _globals['_FORWARDCOLLISIONSENSITIVITY']._serialized_end=7479 - _globals['_GUESTMODEMOBILEACCESS']._serialized_start=7482 - _globals['_GUESTMODEMOBILEACCESS']._serialized_end=8350 - _globals['_LANEASSISTLEVEL']._serialized_start=8352 - _globals['_LANEASSISTLEVEL']._serialized_end=8477 - _globals['_SCHEDULEDCHARGINGMODEVALUE']._serialized_start=8480 - _globals['_SCHEDULEDCHARGINGMODEVALUE']._serialized_end=8641 - _globals['_SENTRYMODESTATE']._serialized_start=8644 - _globals['_SENTRYMODESTATE']._serialized_end=8842 - _globals['_SPEEDASSISTLEVEL']._serialized_start=8845 - _globals['_SPEEDASSISTLEVEL']._serialized_end=8974 - _globals['_BMSSTATEVALUE']._serialized_start=8977 - _globals['_BMSSTATEVALUE']._serialized_end=9208 - _globals['_BUCKLESTATUS']._serialized_start=9210 - _globals['_BUCKLESTATUS']._serialized_end=9326 - _globals['_CARTYPEVALUE']._serialized_start=9329 - _globals['_CARTYPEVALUE']._serialized_end=9484 - _globals['_CHARGEPORTVALUE']._serialized_start=9486 - _globals['_CHARGEPORTVALUE']._serialized_end=9599 - _globals['_CHARGEPORTLATCHVALUE']._serialized_start=9602 - _globals['_CHARGEPORTLATCHVALUE']._serialized_end=9764 - _globals['_DRIVEINVERTERSTATE']._serialized_start=9767 - _globals['_DRIVEINVERTERSTATE']._serialized_end=9972 - _globals['_HVILSTATUS']._serialized_start=9974 - _globals['_HVILSTATUS']._serialized_end=10048 - _globals['_WINDOWSTATE']._serialized_start=10050 - _globals['_WINDOWSTATE']._serialized_end=10163 - _globals['_SEATFOLDPOSITION']._serialized_start=10166 - _globals['_SEATFOLDPOSITION']._serialized_end=10360 - _globals['_TRACTORAIRSTATUS']._serialized_start=10363 - _globals['_TRACTORAIRSTATUS']._serialized_end=10633 - _globals['_TRAILERAIRSTATUS']._serialized_start=10636 - _globals['_TRAILERAIRSTATUS']._serialized_end=10932 + _globals['_FIELD']._serialized_start=3978 + _globals['_FIELD']._serialized_end=9262 + _globals['_CHARGINGSTATE']._serialized_start=9265 + _globals['_CHARGINGSTATE']._serialized_end=9456 + _globals['_DETAILEDCHARGESTATEVALUE']._serialized_start=9459 + _globals['_DETAILEDCHARGESTATEVALUE']._serialized_end=9717 + _globals['_SHIFTSTATE']._serialized_start=9720 + _globals['_SHIFTSTATE']._serialized_end=9865 + _globals['_FOLLOWDISTANCE']._serialized_start=9868 + _globals['_FOLLOWDISTANCE']._serialized_end=10058 + _globals['_FORWARDCOLLISIONSENSITIVITY']._serialized_start=10061 + _globals['_FORWARDCOLLISIONSENSITIVITY']._serialized_end=10281 + _globals['_GUESTMODEMOBILEACCESS']._serialized_start=10284 + _globals['_GUESTMODEMOBILEACCESS']._serialized_end=11152 + _globals['_LANEASSISTLEVEL']._serialized_start=11154 + _globals['_LANEASSISTLEVEL']._serialized_end=11279 + _globals['_SCHEDULEDCHARGINGMODEVALUE']._serialized_start=11282 + _globals['_SCHEDULEDCHARGINGMODEVALUE']._serialized_end=11443 + _globals['_SENTRYMODESTATE']._serialized_start=11446 + _globals['_SENTRYMODESTATE']._serialized_end=11644 + _globals['_SPEEDASSISTLEVEL']._serialized_start=11647 + _globals['_SPEEDASSISTLEVEL']._serialized_end=11776 + _globals['_BMSSTATEVALUE']._serialized_start=11779 + _globals['_BMSSTATEVALUE']._serialized_end=12010 + _globals['_BUCKLESTATUS']._serialized_start=12012 + _globals['_BUCKLESTATUS']._serialized_end=12128 + _globals['_CARTYPEVALUE']._serialized_start=12131 + _globals['_CARTYPEVALUE']._serialized_end=12286 + _globals['_CHARGEPORTVALUE']._serialized_start=12288 + _globals['_CHARGEPORTVALUE']._serialized_end=12401 + _globals['_CHARGEPORTLATCHVALUE']._serialized_start=12404 + _globals['_CHARGEPORTLATCHVALUE']._serialized_end=12566 + _globals['_DRIVEINVERTERSTATE']._serialized_start=12569 + _globals['_DRIVEINVERTERSTATE']._serialized_end=12774 + _globals['_HVILSTATUS']._serialized_start=12776 + _globals['_HVILSTATUS']._serialized_end=12850 + _globals['_WINDOWSTATE']._serialized_start=12852 + _globals['_WINDOWSTATE']._serialized_end=12965 + _globals['_SEATFOLDPOSITION']._serialized_start=12968 + _globals['_SEATFOLDPOSITION']._serialized_end=13162 + _globals['_TRACTORAIRSTATUS']._serialized_start=13165 + _globals['_TRACTORAIRSTATUS']._serialized_end=13435 + _globals['_TRAILERAIRSTATUS']._serialized_start=13438 + _globals['_TRAILERAIRSTATUS']._serialized_end=13734 + _globals['_HVACAUTOMODESTATE']._serialized_start=13736 + _globals['_HVACAUTOMODESTATE']._serialized_end=13841 + _globals['_CABINOVERHEATPROTECTIONMODESTATE']._serialized_start=13844 + _globals['_CABINOVERHEATPROTECTIONMODESTATE']._serialized_end=14049 + _globals['_CLIMATEOVERHEATPROTECTIONTEMPLIMIT']._serialized_start=14052 + _globals['_CLIMATEOVERHEATPROTECTIONTEMPLIMIT']._serialized_end=14268 + _globals['_DEFROSTMODESTATE']._serialized_start=14271 + _globals['_DEFROSTMODESTATE']._serialized_end=14427 + _globals['_CLIMATEKEEPERMODESTATE']._serialized_start=14430 + _globals['_CLIMATEKEEPERMODESTATE']._serialized_end=14614 + _globals['_HVACPOWERSTATE']._serialized_start=14617 + _globals['_HVACPOWERSTATE']._serialized_end=14772 + _globals['_FASTCHARGER']._serialized_start=14775 + _globals['_FASTCHARGER']._serialized_end=15012 + _globals['_CABLETYPE']._serialized_start=15014 + _globals['_CABLETYPE']._serialized_end=15141 + _globals['_TONNEAUTENTMODESTATE']._serialized_start=15144 + _globals['_TONNEAUTENTMODESTATE']._serialized_end=15329 + _globals['_TONNEAUPOSITIONSTATE']._serialized_start=15332 + _globals['_TONNEAUPOSITIONSTATE']._serialized_end=15526 + _globals['_POWERSHARESTATE']._serialized_start=15529 + _globals['_POWERSHARESTATE']._serialized_end=15760 + _globals['_POWERSHARESTOPREASONSTATUS']._serialized_start=15763 + _globals['_POWERSHARESTOPREASONSTATUS']._serialized_end=16107 + _globals['_POWERSHARETYPESTATUS']._serialized_start=16110 + _globals['_POWERSHARETYPESTATUS']._serialized_end=16255 + _globals['_DISPLAYSTATE']._serialized_start=16258 + _globals['_DISPLAYSTATE']._serialized_end=16535 _globals['_LOCATIONVALUE']._serialized_start=79 _globals['_LOCATIONVALUE']._serialized_end=131 _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=2271 - _globals['_DATUM']._serialized_start=2273 - _globals['_DATUM']._serialized_end=2370 - _globals['_PAYLOAD']._serialized_start=2372 - _globals['_PAYLOAD']._serialized_end=2487 + _globals['_TIRELOCATION']._serialized_start=271 + _globals['_TIRELOCATION']._serialized_end=554 + _globals['_TIME']._serialized_start=556 + _globals['_TIME']._serialized_end=608 + _globals['_VALUE']._serialized_start=611 + _globals['_VALUE']._serialized_end=3759 + _globals['_DATUM']._serialized_start=3761 + _globals['_DATUM']._serialized_end=3858 + _globals['_PAYLOAD']._serialized_start=3860 + _globals['_PAYLOAD']._serialized_end=3975 # @@protoc_insertion_point(module_scope) diff --git a/protos/ruby/vehicle_data_pb.rb b/protos/ruby/vehicle_data_pb.rb index 427dfb3..fba5782 100644 --- a/protos/ruby/vehicle_data_pb.rb +++ b/protos/ruby/vehicle_data_pb.rb @@ -7,7 +7,7 @@ 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\"\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\"\x9a\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\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*\x82\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\x10\n\x0c\x44\x65precated_2\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*\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" +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\"\x9b\x02\n\x0cTireLocation\x12\x12\n\nfront_left\x18\x01 \x01(\x08\x12\x13\n\x0b\x66ront_right\x18\x02 \x01(\x08\x12\x11\n\trear_left\x18\x03 \x01(\x08\x12\x12\n\nrear_right\x18\x04 \x01(\x08\x12\x1f\n\x17semi_middle_axle_left_2\x18\x05 \x01(\x08\x12 \n\x18semi_middle_axle_right_2\x18\x06 \x01(\x08\x12\x1b\n\x13semi_rear_axle_left\x18\x07 \x01(\x08\x12\x1c\n\x14semi_rear_axle_right\x18\x08 \x01(\x08\x12\x1d\n\x15semi_rear_axle_left_2\x18\t \x01(\x08\x12\x1e\n\x16semi_rear_axle_right_2\x18\n \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\"\xcc\x18\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\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\x12I\n\x14hvac_auto_mode_value\x18! \x01(\x0e\x32).telemetry.vehicle_data.HvacAutoModeStateH\x00\x12h\n$cabin_overheat_protection_mode_value\x18\" \x01(\x0e\x32\x38.telemetry.vehicle_data.CabinOverheatProtectionModeStateH\x00\x12w\n1cabin_overheat_protection_temperature_limit_value\x18# \x01(\x0e\x32:.telemetry.vehicle_data.ClimateOverheatProtectionTempLimitH\x00\x12\x46\n\x12\x64\x65\x66rost_mode_value\x18$ \x01(\x0e\x32(.telemetry.vehicle_data.DefrostModeStateH\x00\x12S\n\x19\x63limate_keeper_mode_value\x18% \x01(\x0e\x32..telemetry.vehicle_data.ClimateKeeperModeStateH\x00\x12\x42\n\x10hvac_power_value\x18& \x01(\x0e\x32&.telemetry.vehicle_data.HvacPowerStateH\x00\x12\x43\n\x13tire_location_value\x18\' \x01(\x0b\x32$.telemetry.vehicle_data.TireLocationH\x00\x12\x41\n\x12\x66\x61st_charger_value\x18( \x01(\x0e\x32#.telemetry.vehicle_data.FastChargerH\x00\x12=\n\x10\x63\x61\x62le_type_value\x18) \x01(\x0e\x32!.telemetry.vehicle_data.CableTypeH\x00\x12O\n\x17tonneau_tent_mode_value\x18* \x01(\x0e\x32,.telemetry.vehicle_data.TonneauTentModeStateH\x00\x12N\n\x16tonneau_position_value\x18+ \x01(\x0e\x32,.telemetry.vehicle_data.TonneauPositionStateH\x00\x12M\n\x15powershare_type_value\x18, \x01(\x0e\x32,.telemetry.vehicle_data.PowershareTypeStatusH\x00\x12I\n\x16powershare_state_value\x18- \x01(\x0e\x32\'.telemetry.vehicle_data.PowershareStateH\x00\x12Z\n\x1cpowershare_stop_reason_value\x18. \x01(\x0e\x32\x32.telemetry.vehicle_data.PowershareStopReasonStatusH\x00\x12\x43\n\x13\x64isplay_state_value\x18/ \x01(\x0e\x32$.telemetry.vehicle_data.DisplayStateH\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*\xa4)\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\x10\n\x0c\x44\x65precated_2\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\x12 \n\x1b\x43\x61\x62inOverheatProtectionMode\x10\xb4\x01\x12,\n\'CabinOverheatProtectionTemperatureLimit\x10\xb5\x01\x12\x12\n\rCenterDisplay\x10\xb6\x01\x12\x17\n\x12\x43hargePortDoorOpen\x10\xb7\x01\x12\x16\n\x11\x43hargingCableType\x10\xb9\x01\x12\x16\n\x11\x43limateKeeperMode\x10\xba\x01\x12\x1e\n\x19\x44\x65\x66rostForPreconditioning\x10\xbb\x01\x12\x10\n\x0b\x44\x65\x66rostMode\x10\xbc\x01\x12\x16\n\x11\x45\x66\x66iciencyPackage\x10\xbd\x01\x12&\n!EstimatedHoursToChargeTermination\x10\xbe\x01\x12\x12\n\rEuropeVehicle\x10\xbf\x01\x12\'\n\"ExpectedEnergyPercentAtTripArrival\x10\xc0\x01\x12\x14\n\x0f\x46\x61stChargerType\x10\xc1\x01\x12\x18\n\x13HomelinkDeviceCount\x10\xc2\x01\x12\x13\n\x0eHomelinkNearby\x10\xc3\x01\x12\x12\n\rHvacACEnabled\x10\xc4\x01\x12\x11\n\x0cHvacAutoMode\x10\xc5\x01\x12\x11\n\x0cHvacFanSpeed\x10\xc6\x01\x12\x12\n\rHvacFanStatus\x10\xc7\x01\x12\x1f\n\x1aHvacLeftTemperatureRequest\x10\xc8\x01\x12\x0e\n\tHvacPower\x10\xc9\x01\x12 \n\x1bHvacRightTemperatureRequest\x10\xca\x01\x12\x1e\n\x19HvacSteeringWheelHeatAuto\x10\xcb\x01\x12\x1f\n\x1aHvacSteeringWheelHeatLevel\x10\xcc\x01\x12\x1b\n\x16OffroadLightbarPresent\x10\xcd\x01\x12\x18\n\x13PowershareHoursLeft\x10\xce\x01\x12#\n\x1ePowershareInstantaneousPowerKW\x10\xcf\x01\x12\x15\n\x10PowershareStatus\x10\xd0\x01\x12\x19\n\x14PowershareStopReason\x10\xd1\x01\x12\x13\n\x0ePowershareType\x10\xd2\x01\x12\x1b\n\x16RearDisplayHvacEnabled\x10\xd3\x01\x12\x14\n\x0fRearSeatHeaters\x10\xd4\x01\x12\x17\n\x12RemoteStartEnabled\x10\xd5\x01\x12\x13\n\x0eRightHandDrive\x10\xd6\x01\x12\x1d\n\x18RouteTrafficMinutesDelay\x10\xd7\x01\x12*\n%SoftwareUpdateDownloadPercentComplete\x10\xd8\x01\x12*\n%SoftwareUpdateExpectedDurationMinutes\x10\xd9\x01\x12.\n)SoftwareUpdateInstallationPercentComplete\x10\xda\x01\x12%\n SoftwareUpdateScheduledStartTime\x10\xdb\x01\x12\x1a\n\x15SoftwareUpdateVersion\x10\xdc\x01\x12\x17\n\x12TonneauOpenPercent\x10\xdd\x01\x12\x14\n\x0fTonneauPosition\x10\xde\x01\x12\x14\n\x0fTonneauTentMode\x10\xdf\x01\x12\x15\n\x10TpmsHardWarnings\x10\xe0\x01\x12\x15\n\x10TpmsSoftWarnings\x10\xe1\x01\x12\x15\n\x10ValetModeEnabled\x10\xe2\x01\x12\x0e\n\tWheelType\x10\xe3\x01\x12\x15\n\x10WiperHeatEnabled\x10\xe4\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*\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*i\n\x11HvacAutoModeState\x12\x1c\n\x18HvacAutoModeStateUnknown\x10\x00\x12\x17\n\x13HvacAutoModeStateOn\x10\x01\x12\x1d\n\x19HvacAutoModeStateOverride\x10\x02*\xcd\x01\n CabinOverheatProtectionModeState\x12+\n\'CabinOverheatProtectionModeStateUnknown\x10\x00\x12\'\n#CabinOverheatProtectionModeStateOff\x10\x01\x12&\n\"CabinOverheatProtectionModeStateOn\x10\x02\x12+\n\'CabinOverheatProtectionModeStateFanOnly\x10\x03*\xd8\x01\n\"ClimateOverheatProtectionTempLimit\x12-\n)ClimateOverheatProtectionTempLimitUnknown\x10\x00\x12*\n&ClimateOverheatProtectionTempLimitHigh\x10\x01\x12,\n(ClimateOverheatProtectionTempLimitMedium\x10\x02\x12)\n%ClimateOverheatProtectionTempLimitLow\x10\x03*\x9c\x01\n\x10\x44\x65\x66rostModeState\x12\x1b\n\x17\x44\x65\x66rostModeStateUnknown\x10\x00\x12\x17\n\x13\x44\x65\x66rostModeStateOff\x10\x01\x12\x1a\n\x16\x44\x65\x66rostModeStateNormal\x10\x02\x12\x17\n\x13\x44\x65\x66rostModeStateMax\x10\x03\x12\x1d\n\x19\x44\x65\x66rostModeStateAutoDefog\x10\x04*\xb8\x01\n\x16\x43limateKeeperModeState\x12!\n\x1d\x43limateKeeperModeStateUnknown\x10\x00\x12\x1d\n\x19\x43limateKeeperModeStateOff\x10\x01\x12\x1c\n\x18\x43limateKeeperModeStateOn\x10\x02\x12\x1d\n\x19\x43limateKeeperModeStateDog\x10\x03\x12\x1f\n\x1b\x43limateKeeperModeStateParty\x10\x04*\x9b\x01\n\x0eHvacPowerState\x12\x19\n\x15HvacPowerStateUnknown\x10\x00\x12\x15\n\x11HvacPowerStateOff\x10\x01\x12\x14\n\x10HvacPowerStateOn\x10\x02\x12\x1e\n\x1aHvacPowerStatePrecondition\x10\x03\x12!\n\x1dHvacPowerStateOverheatProtect\x10\x04*\xed\x01\n\x0b\x46\x61stCharger\x12\x16\n\x12\x46\x61stChargerUnknown\x10\x00\x12\x1b\n\x17\x46\x61stChargerSupercharger\x10\x01\x12\x16\n\x12\x46\x61stChargerCHAdeMO\x10\x02\x12\x11\n\rFastChargerGB\x10\x03\x12\x1e\n\x1a\x46\x61stChargerACSingleWireCAN\x10\x04\x12\x14\n\x10\x46\x61stChargerCombo\x10\x05\x12\x1e\n\x1a\x46\x61stChargerMCSingleWireCAN\x10\x06\x12\x14\n\x10\x46\x61stChargerOther\x10\x07\x12\x12\n\x0e\x46\x61stChargerSNA\x10\x08*\x7f\n\tCableType\x12\x14\n\x10\x43\x61\x62leTypeUnknown\x10\x00\x12\x10\n\x0c\x43\x61\x62leTypeIEC\x10\x01\x12\x10\n\x0c\x43\x61\x62leTypeSAE\x10\x02\x12\x12\n\x0e\x43\x61\x62leTypeGB_AC\x10\x03\x12\x12\n\x0e\x43\x61\x62leTypeGB_DC\x10\x04\x12\x10\n\x0c\x43\x61\x62leTypeSNA\x10\x05*\xb9\x01\n\x14TonneauTentModeState\x12\x1f\n\x1bTonneauTentModeStateUnknown\x10\x00\x12 \n\x1cTonneauTentModeStateInactive\x10\x01\x12\x1e\n\x1aTonneauTentModeStateMoving\x10\x02\x12\x1e\n\x1aTonneauTentModeStateFailed\x10\x03\x12\x1e\n\x1aTonneauTentModeStateActive\x10\x04*\xc2\x01\n\x14TonneauPositionState\x12\x1f\n\x1bTonneauPositionStateUnknown\x10\x00\x12\x1f\n\x1bTonneauPositionStateInvalid\x10\x01\x12\x1e\n\x1aTonneauPositionStateClosed\x10\x02\x12%\n!TonneauPositionStatePartiallyOpen\x10\x03\x12!\n\x1dTonneauPositionStateFullyOpen\x10\x04*\xe7\x01\n\x0fPowershareState\x12\x1a\n\x16PowershareStateUnknown\x10\x00\x12\x1b\n\x17PowershareStateInactive\x10\x01\x12\x1e\n\x1aPowershareStateHandshaking\x10\x02\x12\x17\n\x13PowershareStateInit\x10\x03\x12\x1a\n\x16PowershareStateEnabled\x10\x04\x12*\n&PowershareStateEnabledReconnectingSoon\x10\x05\x12\x1a\n\x16PowershareStateStopped\x10\x06*\xd8\x02\n\x1aPowershareStopReasonStatus\x12%\n!PowershareStopReasonStatusUnknown\x10\x00\x12\"\n\x1ePowershareStopReasonStatusNone\x10\x01\x12\'\n#PowershareStopReasonStatusSOCTooLow\x10\x02\x12#\n\x1fPowershareStopReasonStatusRetry\x10\x03\x12#\n\x1fPowershareStopReasonStatusFault\x10\x04\x12\"\n\x1ePowershareStopReasonStatusUser\x10\x05\x12*\n&PowershareStopReasonStatusReconnecting\x10\x06\x12,\n(PowershareStopReasonStatusAuthentication\x10\x07*\x91\x01\n\x14PowershareTypeStatus\x12\x1f\n\x1bPowershareTypeStatusUnknown\x10\x00\x12\x1c\n\x18PowershareTypeStatusNone\x10\x01\x12\x1c\n\x18PowershareTypeStatusLoad\x10\x02\x12\x1c\n\x18PowershareTypeStatusHome\x10\x03*\x95\x02\n\x0c\x44isplayState\x12\x17\n\x13\x44isplayStateUnknown\x10\x00\x12\x13\n\x0f\x44isplayStateOff\x10\x01\x12\x13\n\x0f\x44isplayStateDim\x10\x02\x12\x19\n\x15\x44isplayStateAccessory\x10\x03\x12\x12\n\x0e\x44isplayStateOn\x10\x04\x12\x17\n\x13\x44isplayStateDriving\x10\x05\x12\x18\n\x14\x44isplayStateCharging\x10\x06\x12\x14\n\x10\x44isplayStateLock\x10\x07\x12\x16\n\x12\x44isplayStateSentry\x10\x08\x12\x13\n\x0f\x44isplayStateDog\x10\t\x12\x1d\n\x19\x44isplayStateEntertainment\x10\nB/Z-github.com/teslamotors/fleet-telemetry/protosb\x06proto3" pool = Google::Protobuf::DescriptorPool.generated_pool pool.add_serialized_file(descriptor_data) @@ -16,6 +16,7 @@ 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 + TireLocation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.TireLocation").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 @@ -42,5 +43,19 @@ module VehicleData 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 + HvacAutoModeState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.HvacAutoModeState").enummodule + CabinOverheatProtectionModeState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.CabinOverheatProtectionModeState").enummodule + ClimateOverheatProtectionTempLimit = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.ClimateOverheatProtectionTempLimit").enummodule + DefrostModeState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.DefrostModeState").enummodule + ClimateKeeperModeState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.ClimateKeeperModeState").enummodule + HvacPowerState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.HvacPowerState").enummodule + FastCharger = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.FastCharger").enummodule + CableType = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.CableType").enummodule + TonneauTentModeState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.TonneauTentModeState").enummodule + TonneauPositionState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.TonneauPositionState").enummodule + PowershareState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.PowershareState").enummodule + PowershareStopReasonStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.PowershareStopReasonStatus").enummodule + PowershareTypeStatus = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.PowershareTypeStatus").enummodule + DisplayState = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("telemetry.vehicle_data.DisplayState").enummodule end end diff --git a/protos/vehicle_data.pb.go b/protos/vehicle_data.pb.go index 0be0448..9f7b35d 100644 --- a/protos/vehicle_data.pb.go +++ b/protos/vehicle_data.pb.go @@ -24,187 +24,234 @@ const ( type Field int32 const ( - Field_Unknown Field = 0 - Field_DriveRail Field = 1 - Field_ChargeState Field = 2 - Field_BmsFullchargecomplete Field = 3 - Field_VehicleSpeed Field = 4 - Field_Odometer Field = 5 - Field_PackVoltage Field = 6 - Field_PackCurrent Field = 7 - Field_Soc Field = 8 - Field_DCDCEnable Field = 9 - Field_Gear Field = 10 - Field_IsolationResistance Field = 11 - Field_PedalPosition Field = 12 - Field_BrakePedal Field = 13 - Field_DiStateR Field = 14 - Field_DiHeatsinkTR Field = 15 - Field_DiAxleSpeedR Field = 16 - Field_DiTorquemotor Field = 17 - Field_DiStatorTempR Field = 18 - Field_DiVBatR Field = 19 - Field_DiMotorCurrentR Field = 20 - Field_Location Field = 21 - Field_GpsState Field = 22 - Field_GpsHeading Field = 23 - Field_NumBrickVoltageMax Field = 24 - Field_BrickVoltageMax Field = 25 - Field_NumBrickVoltageMin Field = 26 - Field_BrickVoltageMin Field = 27 - Field_NumModuleTempMax Field = 28 - Field_ModuleTempMax Field = 29 - Field_NumModuleTempMin Field = 30 - Field_ModuleTempMin Field = 31 - Field_RatedRange Field = 32 - Field_Hvil Field = 33 - Field_DCChargingEnergyIn Field = 34 - Field_DCChargingPower Field = 35 - Field_ACChargingEnergyIn Field = 36 - Field_ACChargingPower Field = 37 - Field_ChargeLimitSoc Field = 38 - Field_FastChargerPresent Field = 39 - Field_EstBatteryRange Field = 40 - Field_IdealBatteryRange Field = 41 - Field_BatteryLevel Field = 42 - Field_TimeToFullCharge Field = 43 - Field_ScheduledChargingStartTime Field = 44 - Field_ScheduledChargingPending Field = 45 - Field_ScheduledDepartureTime Field = 46 - Field_PreconditioningEnabled Field = 47 - Field_ScheduledChargingMode Field = 48 - Field_ChargeAmps Field = 49 - Field_ChargeEnableRequest Field = 50 - Field_ChargerPhases Field = 51 - Field_ChargePortColdWeatherMode Field = 52 - Field_ChargeCurrentRequest Field = 53 - Field_ChargeCurrentRequestMax Field = 54 - Field_BatteryHeaterOn Field = 55 - Field_NotEnoughPowerToHeat Field = 56 - Field_SuperchargerSessionTripPlanner Field = 57 - Field_DoorState Field = 58 - Field_Locked Field = 59 - Field_FdWindow Field = 60 - Field_FpWindow Field = 61 - Field_RdWindow Field = 62 - Field_RpWindow Field = 63 - Field_VehicleName Field = 64 - Field_SentryMode Field = 65 - Field_SpeedLimitMode Field = 66 - Field_CurrentLimitMph Field = 67 - Field_Version Field = 68 - Field_TpmsPressureFl Field = 69 - Field_TpmsPressureFr Field = 70 - Field_TpmsPressureRl Field = 71 - Field_TpmsPressureRr Field = 72 - Field_SemitruckTpmsPressureRe1L0 Field = 73 // Semi-truck only - Field_SemitruckTpmsPressureRe1L1 Field = 74 // Semi-truck only - Field_SemitruckTpmsPressureRe1R0 Field = 75 // Semi-truck only - Field_SemitruckTpmsPressureRe1R1 Field = 76 // Semi-truck only - Field_SemitruckTpmsPressureRe2L0 Field = 77 // Semi-truck only - Field_SemitruckTpmsPressureRe2L1 Field = 78 // Semi-truck only - Field_SemitruckTpmsPressureRe2R0 Field = 79 // Semi-truck only - Field_SemitruckTpmsPressureRe2R1 Field = 80 // Semi-truck only - Field_TpmsLastSeenPressureTimeFl Field = 81 - Field_TpmsLastSeenPressureTimeFr Field = 82 - Field_TpmsLastSeenPressureTimeRl Field = 83 - Field_TpmsLastSeenPressureTimeRr Field = 84 - Field_InsideTemp Field = 85 - Field_OutsideTemp Field = 86 - Field_SeatHeaterLeft Field = 87 - Field_SeatHeaterRight Field = 88 - Field_SeatHeaterRearLeft Field = 89 - Field_SeatHeaterRearRight Field = 90 - Field_SeatHeaterRearCenter Field = 91 - Field_AutoSeatClimateLeft Field = 92 - Field_AutoSeatClimateRight Field = 93 - Field_DriverSeatBelt Field = 94 - Field_PassengerSeatBelt Field = 95 - Field_DriverSeatOccupied Field = 96 - Field_SemitruckPassengerSeatFoldPosition Field = 97 // Semi-truck only - Field_LateralAcceleration Field = 98 - Field_LongitudinalAcceleration Field = 99 - Field_Deprecated_2 Field = 100 - Field_CruiseSetSpeed Field = 101 - Field_LifetimeEnergyUsed Field = 102 - Field_LifetimeEnergyUsedDrive Field = 103 - Field_SemitruckTractorParkBrakeStatus Field = 104 // Semi-truck only - Field_SemitruckTrailerParkBrakeStatus Field = 105 // Semi-truck only - Field_BrakePedalPos Field = 106 - Field_RouteLastUpdated Field = 107 - Field_RouteLine Field = 108 - Field_MilesToArrival Field = 109 - Field_MinutesToArrival Field = 110 - Field_OriginLocation Field = 111 - Field_DestinationLocation Field = 112 - Field_CarType Field = 113 - Field_Trim Field = 114 - Field_ExteriorColor Field = 115 - Field_RoofColor Field = 116 - Field_ChargePort Field = 117 - Field_ChargePortLatch Field = 118 - Field_Experimental_1 Field = 119 - Field_Experimental_2 Field = 120 - Field_Experimental_3 Field = 121 - Field_Experimental_4 Field = 122 - Field_GuestModeEnabled Field = 123 - Field_PinToDriveEnabled Field = 124 - Field_PairedPhoneKeyAndKeyFobQty Field = 125 - Field_CruiseFollowDistance Field = 126 - Field_AutomaticBlindSpotCamera Field = 127 - Field_BlindSpotCollisionWarningChime Field = 128 - Field_SpeedLimitWarning Field = 129 - Field_ForwardCollisionWarning Field = 130 - Field_LaneDepartureAvoidance Field = 131 - Field_EmergencyLaneDepartureAvoidance Field = 132 - Field_AutomaticEmergencyBrakingOff Field = 133 - Field_LifetimeEnergyGainedRegen Field = 134 - Field_DiStateF Field = 135 - Field_DiStateREL Field = 136 - Field_DiStateRER Field = 137 - Field_DiHeatsinkTF Field = 138 - Field_DiHeatsinkTREL Field = 139 - Field_DiHeatsinkTRER Field = 140 - Field_DiAxleSpeedF Field = 141 - Field_DiAxleSpeedREL Field = 142 - Field_DiAxleSpeedRER Field = 143 - Field_DiSlaveTorqueCmd Field = 144 - Field_DiTorqueActualR Field = 145 - Field_DiTorqueActualF Field = 146 - Field_DiTorqueActualREL Field = 147 - Field_DiTorqueActualRER Field = 148 - Field_DiStatorTempF Field = 149 - Field_DiStatorTempREL Field = 150 - Field_DiStatorTempRER Field = 151 - Field_DiVBatF Field = 152 - Field_DiVBatREL Field = 153 - Field_DiVBatRER Field = 154 - Field_DiMotorCurrentF Field = 155 - Field_DiMotorCurrentREL Field = 156 - Field_DiMotorCurrentRER Field = 157 - Field_EnergyRemaining Field = 158 - Field_ServiceMode Field = 159 - Field_BMSState Field = 160 - Field_GuestModeMobileAccessState Field = 161 - Field_Deprecated_1 Field = 162 - Field_DestinationName Field = 163 - Field_DiInverterTR Field = 164 - Field_DiInverterTF Field = 165 - Field_DiInverterTREL Field = 166 - Field_DiInverterTRER Field = 167 - Field_Experimental_5 Field = 168 - Field_Experimental_6 Field = 169 - Field_Experimental_7 Field = 170 - Field_Experimental_8 Field = 171 - Field_Experimental_9 Field = 172 - Field_Experimental_10 Field = 173 - Field_Experimental_11 Field = 174 - Field_Experimental_12 Field = 175 - 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 + Field_Unknown Field = 0 + Field_DriveRail Field = 1 + Field_ChargeState Field = 2 + Field_BmsFullchargecomplete Field = 3 + Field_VehicleSpeed Field = 4 + Field_Odometer Field = 5 + Field_PackVoltage Field = 6 + Field_PackCurrent Field = 7 + Field_Soc Field = 8 + Field_DCDCEnable Field = 9 + Field_Gear Field = 10 + Field_IsolationResistance Field = 11 + Field_PedalPosition Field = 12 + Field_BrakePedal Field = 13 + Field_DiStateR Field = 14 + Field_DiHeatsinkTR Field = 15 + Field_DiAxleSpeedR Field = 16 + Field_DiTorquemotor Field = 17 + Field_DiStatorTempR Field = 18 + Field_DiVBatR Field = 19 + Field_DiMotorCurrentR Field = 20 + Field_Location Field = 21 + Field_GpsState Field = 22 + Field_GpsHeading Field = 23 + Field_NumBrickVoltageMax Field = 24 + Field_BrickVoltageMax Field = 25 + Field_NumBrickVoltageMin Field = 26 + Field_BrickVoltageMin Field = 27 + Field_NumModuleTempMax Field = 28 + Field_ModuleTempMax Field = 29 + Field_NumModuleTempMin Field = 30 + Field_ModuleTempMin Field = 31 + Field_RatedRange Field = 32 + Field_Hvil Field = 33 + Field_DCChargingEnergyIn Field = 34 + Field_DCChargingPower Field = 35 + Field_ACChargingEnergyIn Field = 36 + Field_ACChargingPower Field = 37 + Field_ChargeLimitSoc Field = 38 + Field_FastChargerPresent Field = 39 + Field_EstBatteryRange Field = 40 + Field_IdealBatteryRange Field = 41 + Field_BatteryLevel Field = 42 + Field_TimeToFullCharge Field = 43 + Field_ScheduledChargingStartTime Field = 44 + Field_ScheduledChargingPending Field = 45 + Field_ScheduledDepartureTime Field = 46 + Field_PreconditioningEnabled Field = 47 + Field_ScheduledChargingMode Field = 48 + Field_ChargeAmps Field = 49 + Field_ChargeEnableRequest Field = 50 + Field_ChargerPhases Field = 51 + Field_ChargePortColdWeatherMode Field = 52 + Field_ChargeCurrentRequest Field = 53 + Field_ChargeCurrentRequestMax Field = 54 + Field_BatteryHeaterOn Field = 55 + Field_NotEnoughPowerToHeat Field = 56 + Field_SuperchargerSessionTripPlanner Field = 57 + Field_DoorState Field = 58 + Field_Locked Field = 59 + Field_FdWindow Field = 60 + Field_FpWindow Field = 61 + Field_RdWindow Field = 62 + Field_RpWindow Field = 63 + Field_VehicleName Field = 64 + Field_SentryMode Field = 65 + Field_SpeedLimitMode Field = 66 + Field_CurrentLimitMph Field = 67 + Field_Version Field = 68 + Field_TpmsPressureFl Field = 69 + Field_TpmsPressureFr Field = 70 + Field_TpmsPressureRl Field = 71 + Field_TpmsPressureRr Field = 72 + Field_SemitruckTpmsPressureRe1L0 Field = 73 // Semi-truck only + Field_SemitruckTpmsPressureRe1L1 Field = 74 // Semi-truck only + Field_SemitruckTpmsPressureRe1R0 Field = 75 // Semi-truck only + Field_SemitruckTpmsPressureRe1R1 Field = 76 // Semi-truck only + Field_SemitruckTpmsPressureRe2L0 Field = 77 // Semi-truck only + Field_SemitruckTpmsPressureRe2L1 Field = 78 // Semi-truck only + Field_SemitruckTpmsPressureRe2R0 Field = 79 // Semi-truck only + Field_SemitruckTpmsPressureRe2R1 Field = 80 // Semi-truck only + Field_TpmsLastSeenPressureTimeFl Field = 81 + Field_TpmsLastSeenPressureTimeFr Field = 82 + Field_TpmsLastSeenPressureTimeRl Field = 83 + Field_TpmsLastSeenPressureTimeRr Field = 84 + Field_InsideTemp Field = 85 + Field_OutsideTemp Field = 86 + Field_SeatHeaterLeft Field = 87 + Field_SeatHeaterRight Field = 88 + Field_SeatHeaterRearLeft Field = 89 + Field_SeatHeaterRearRight Field = 90 + Field_SeatHeaterRearCenter Field = 91 + Field_AutoSeatClimateLeft Field = 92 + Field_AutoSeatClimateRight Field = 93 + Field_DriverSeatBelt Field = 94 + Field_PassengerSeatBelt Field = 95 + Field_DriverSeatOccupied Field = 96 + Field_SemitruckPassengerSeatFoldPosition Field = 97 // Semi-truck only + Field_LateralAcceleration Field = 98 + Field_LongitudinalAcceleration Field = 99 + Field_Deprecated_2 Field = 100 + Field_CruiseSetSpeed Field = 101 + Field_LifetimeEnergyUsed Field = 102 + Field_LifetimeEnergyUsedDrive Field = 103 + Field_SemitruckTractorParkBrakeStatus Field = 104 // Semi-truck only + Field_SemitruckTrailerParkBrakeStatus Field = 105 // Semi-truck only + Field_BrakePedalPos Field = 106 + Field_RouteLastUpdated Field = 107 + Field_RouteLine Field = 108 + Field_MilesToArrival Field = 109 + Field_MinutesToArrival Field = 110 + Field_OriginLocation Field = 111 + Field_DestinationLocation Field = 112 + Field_CarType Field = 113 + Field_Trim Field = 114 + Field_ExteriorColor Field = 115 + Field_RoofColor Field = 116 + Field_ChargePort Field = 117 + Field_ChargePortLatch Field = 118 + Field_Experimental_1 Field = 119 + Field_Experimental_2 Field = 120 + Field_Experimental_3 Field = 121 + Field_Experimental_4 Field = 122 + Field_GuestModeEnabled Field = 123 + Field_PinToDriveEnabled Field = 124 + Field_PairedPhoneKeyAndKeyFobQty Field = 125 + Field_CruiseFollowDistance Field = 126 + Field_AutomaticBlindSpotCamera Field = 127 + Field_BlindSpotCollisionWarningChime Field = 128 + Field_SpeedLimitWarning Field = 129 + Field_ForwardCollisionWarning Field = 130 + Field_LaneDepartureAvoidance Field = 131 + Field_EmergencyLaneDepartureAvoidance Field = 132 + Field_AutomaticEmergencyBrakingOff Field = 133 + Field_LifetimeEnergyGainedRegen Field = 134 + Field_DiStateF Field = 135 + Field_DiStateREL Field = 136 + Field_DiStateRER Field = 137 + Field_DiHeatsinkTF Field = 138 + Field_DiHeatsinkTREL Field = 139 + Field_DiHeatsinkTRER Field = 140 + Field_DiAxleSpeedF Field = 141 + Field_DiAxleSpeedREL Field = 142 + Field_DiAxleSpeedRER Field = 143 + Field_DiSlaveTorqueCmd Field = 144 + Field_DiTorqueActualR Field = 145 + Field_DiTorqueActualF Field = 146 + Field_DiTorqueActualREL Field = 147 + Field_DiTorqueActualRER Field = 148 + Field_DiStatorTempF Field = 149 + Field_DiStatorTempREL Field = 150 + Field_DiStatorTempRER Field = 151 + Field_DiVBatF Field = 152 + Field_DiVBatREL Field = 153 + Field_DiVBatRER Field = 154 + Field_DiMotorCurrentF Field = 155 + Field_DiMotorCurrentREL Field = 156 + Field_DiMotorCurrentRER Field = 157 + Field_EnergyRemaining Field = 158 + Field_ServiceMode Field = 159 + Field_BMSState Field = 160 + Field_GuestModeMobileAccessState Field = 161 + Field_Deprecated_1 Field = 162 + Field_DestinationName Field = 163 + Field_DiInverterTR Field = 164 + Field_DiInverterTF Field = 165 + Field_DiInverterTREL Field = 166 + Field_DiInverterTRER Field = 167 + Field_Experimental_5 Field = 168 + Field_Experimental_6 Field = 169 + Field_Experimental_7 Field = 170 + Field_Experimental_8 Field = 171 + Field_Experimental_9 Field = 172 + Field_Experimental_10 Field = 173 + Field_Experimental_11 Field = 174 + Field_Experimental_12 Field = 175 + Field_Experimental_13 Field = 176 + Field_Experimental_14 Field = 177 + Field_Experimental_15 Field = 178 + Field_DetailedChargeState Field = 179 + Field_CabinOverheatProtectionMode Field = 180 + Field_CabinOverheatProtectionTemperatureLimit Field = 181 + Field_CenterDisplay Field = 182 + Field_ChargePortDoorOpen Field = 183 + Field_ChargingCableType Field = 185 + Field_ClimateKeeperMode Field = 186 + Field_DefrostForPreconditioning Field = 187 + Field_DefrostMode Field = 188 + Field_EfficiencyPackage Field = 189 + Field_EstimatedHoursToChargeTermination Field = 190 + Field_EuropeVehicle Field = 191 + Field_ExpectedEnergyPercentAtTripArrival Field = 192 + Field_FastChargerType Field = 193 + Field_HomelinkDeviceCount Field = 194 + Field_HomelinkNearby Field = 195 + Field_HvacACEnabled Field = 196 + Field_HvacAutoMode Field = 197 + Field_HvacFanSpeed Field = 198 + Field_HvacFanStatus Field = 199 + Field_HvacLeftTemperatureRequest Field = 200 + Field_HvacPower Field = 201 + Field_HvacRightTemperatureRequest Field = 202 + Field_HvacSteeringWheelHeatAuto Field = 203 + Field_HvacSteeringWheelHeatLevel Field = 204 + Field_OffroadLightbarPresent Field = 205 + Field_PowershareHoursLeft Field = 206 + Field_PowershareInstantaneousPowerKW Field = 207 + Field_PowershareStatus Field = 208 + Field_PowershareStopReason Field = 209 + Field_PowershareType Field = 210 + Field_RearDisplayHvacEnabled Field = 211 + Field_RearSeatHeaters Field = 212 + Field_RemoteStartEnabled Field = 213 + Field_RightHandDrive Field = 214 + Field_RouteTrafficMinutesDelay Field = 215 + Field_SoftwareUpdateDownloadPercentComplete Field = 216 + Field_SoftwareUpdateExpectedDurationMinutes Field = 217 + Field_SoftwareUpdateInstallationPercentComplete Field = 218 + Field_SoftwareUpdateScheduledStartTime Field = 219 + Field_SoftwareUpdateVersion Field = 220 + Field_TonneauOpenPercent Field = 221 + Field_TonneauPosition Field = 222 + Field_TonneauTentMode Field = 223 + Field_TpmsHardWarnings Field = 224 + Field_TpmsSoftWarnings Field = 225 + Field_ValetModeEnabled Field = 226 + Field_WheelType Field = 227 + Field_WiperHeatEnabled Field = 228 ) // Enum value maps for Field. @@ -390,188 +437,284 @@ var ( 177: "Experimental_14", 178: "Experimental_15", 179: "DetailedChargeState", + 180: "CabinOverheatProtectionMode", + 181: "CabinOverheatProtectionTemperatureLimit", + 182: "CenterDisplay", + 183: "ChargePortDoorOpen", + 185: "ChargingCableType", + 186: "ClimateKeeperMode", + 187: "DefrostForPreconditioning", + 188: "DefrostMode", + 189: "EfficiencyPackage", + 190: "EstimatedHoursToChargeTermination", + 191: "EuropeVehicle", + 192: "ExpectedEnergyPercentAtTripArrival", + 193: "FastChargerType", + 194: "HomelinkDeviceCount", + 195: "HomelinkNearby", + 196: "HvacACEnabled", + 197: "HvacAutoMode", + 198: "HvacFanSpeed", + 199: "HvacFanStatus", + 200: "HvacLeftTemperatureRequest", + 201: "HvacPower", + 202: "HvacRightTemperatureRequest", + 203: "HvacSteeringWheelHeatAuto", + 204: "HvacSteeringWheelHeatLevel", + 205: "OffroadLightbarPresent", + 206: "PowershareHoursLeft", + 207: "PowershareInstantaneousPowerKW", + 208: "PowershareStatus", + 209: "PowershareStopReason", + 210: "PowershareType", + 211: "RearDisplayHvacEnabled", + 212: "RearSeatHeaters", + 213: "RemoteStartEnabled", + 214: "RightHandDrive", + 215: "RouteTrafficMinutesDelay", + 216: "SoftwareUpdateDownloadPercentComplete", + 217: "SoftwareUpdateExpectedDurationMinutes", + 218: "SoftwareUpdateInstallationPercentComplete", + 219: "SoftwareUpdateScheduledStartTime", + 220: "SoftwareUpdateVersion", + 221: "TonneauOpenPercent", + 222: "TonneauPosition", + 223: "TonneauTentMode", + 224: "TpmsHardWarnings", + 225: "TpmsSoftWarnings", + 226: "ValetModeEnabled", + 227: "WheelType", + 228: "WiperHeatEnabled", } Field_value = map[string]int32{ - "Unknown": 0, - "DriveRail": 1, - "ChargeState": 2, - "BmsFullchargecomplete": 3, - "VehicleSpeed": 4, - "Odometer": 5, - "PackVoltage": 6, - "PackCurrent": 7, - "Soc": 8, - "DCDCEnable": 9, - "Gear": 10, - "IsolationResistance": 11, - "PedalPosition": 12, - "BrakePedal": 13, - "DiStateR": 14, - "DiHeatsinkTR": 15, - "DiAxleSpeedR": 16, - "DiTorquemotor": 17, - "DiStatorTempR": 18, - "DiVBatR": 19, - "DiMotorCurrentR": 20, - "Location": 21, - "GpsState": 22, - "GpsHeading": 23, - "NumBrickVoltageMax": 24, - "BrickVoltageMax": 25, - "NumBrickVoltageMin": 26, - "BrickVoltageMin": 27, - "NumModuleTempMax": 28, - "ModuleTempMax": 29, - "NumModuleTempMin": 30, - "ModuleTempMin": 31, - "RatedRange": 32, - "Hvil": 33, - "DCChargingEnergyIn": 34, - "DCChargingPower": 35, - "ACChargingEnergyIn": 36, - "ACChargingPower": 37, - "ChargeLimitSoc": 38, - "FastChargerPresent": 39, - "EstBatteryRange": 40, - "IdealBatteryRange": 41, - "BatteryLevel": 42, - "TimeToFullCharge": 43, - "ScheduledChargingStartTime": 44, - "ScheduledChargingPending": 45, - "ScheduledDepartureTime": 46, - "PreconditioningEnabled": 47, - "ScheduledChargingMode": 48, - "ChargeAmps": 49, - "ChargeEnableRequest": 50, - "ChargerPhases": 51, - "ChargePortColdWeatherMode": 52, - "ChargeCurrentRequest": 53, - "ChargeCurrentRequestMax": 54, - "BatteryHeaterOn": 55, - "NotEnoughPowerToHeat": 56, - "SuperchargerSessionTripPlanner": 57, - "DoorState": 58, - "Locked": 59, - "FdWindow": 60, - "FpWindow": 61, - "RdWindow": 62, - "RpWindow": 63, - "VehicleName": 64, - "SentryMode": 65, - "SpeedLimitMode": 66, - "CurrentLimitMph": 67, - "Version": 68, - "TpmsPressureFl": 69, - "TpmsPressureFr": 70, - "TpmsPressureRl": 71, - "TpmsPressureRr": 72, - "SemitruckTpmsPressureRe1L0": 73, - "SemitruckTpmsPressureRe1L1": 74, - "SemitruckTpmsPressureRe1R0": 75, - "SemitruckTpmsPressureRe1R1": 76, - "SemitruckTpmsPressureRe2L0": 77, - "SemitruckTpmsPressureRe2L1": 78, - "SemitruckTpmsPressureRe2R0": 79, - "SemitruckTpmsPressureRe2R1": 80, - "TpmsLastSeenPressureTimeFl": 81, - "TpmsLastSeenPressureTimeFr": 82, - "TpmsLastSeenPressureTimeRl": 83, - "TpmsLastSeenPressureTimeRr": 84, - "InsideTemp": 85, - "OutsideTemp": 86, - "SeatHeaterLeft": 87, - "SeatHeaterRight": 88, - "SeatHeaterRearLeft": 89, - "SeatHeaterRearRight": 90, - "SeatHeaterRearCenter": 91, - "AutoSeatClimateLeft": 92, - "AutoSeatClimateRight": 93, - "DriverSeatBelt": 94, - "PassengerSeatBelt": 95, - "DriverSeatOccupied": 96, - "SemitruckPassengerSeatFoldPosition": 97, - "LateralAcceleration": 98, - "LongitudinalAcceleration": 99, - "Deprecated_2": 100, - "CruiseSetSpeed": 101, - "LifetimeEnergyUsed": 102, - "LifetimeEnergyUsedDrive": 103, - "SemitruckTractorParkBrakeStatus": 104, - "SemitruckTrailerParkBrakeStatus": 105, - "BrakePedalPos": 106, - "RouteLastUpdated": 107, - "RouteLine": 108, - "MilesToArrival": 109, - "MinutesToArrival": 110, - "OriginLocation": 111, - "DestinationLocation": 112, - "CarType": 113, - "Trim": 114, - "ExteriorColor": 115, - "RoofColor": 116, - "ChargePort": 117, - "ChargePortLatch": 118, - "Experimental_1": 119, - "Experimental_2": 120, - "Experimental_3": 121, - "Experimental_4": 122, - "GuestModeEnabled": 123, - "PinToDriveEnabled": 124, - "PairedPhoneKeyAndKeyFobQty": 125, - "CruiseFollowDistance": 126, - "AutomaticBlindSpotCamera": 127, - "BlindSpotCollisionWarningChime": 128, - "SpeedLimitWarning": 129, - "ForwardCollisionWarning": 130, - "LaneDepartureAvoidance": 131, - "EmergencyLaneDepartureAvoidance": 132, - "AutomaticEmergencyBrakingOff": 133, - "LifetimeEnergyGainedRegen": 134, - "DiStateF": 135, - "DiStateREL": 136, - "DiStateRER": 137, - "DiHeatsinkTF": 138, - "DiHeatsinkTREL": 139, - "DiHeatsinkTRER": 140, - "DiAxleSpeedF": 141, - "DiAxleSpeedREL": 142, - "DiAxleSpeedRER": 143, - "DiSlaveTorqueCmd": 144, - "DiTorqueActualR": 145, - "DiTorqueActualF": 146, - "DiTorqueActualREL": 147, - "DiTorqueActualRER": 148, - "DiStatorTempF": 149, - "DiStatorTempREL": 150, - "DiStatorTempRER": 151, - "DiVBatF": 152, - "DiVBatREL": 153, - "DiVBatRER": 154, - "DiMotorCurrentF": 155, - "DiMotorCurrentREL": 156, - "DiMotorCurrentRER": 157, - "EnergyRemaining": 158, - "ServiceMode": 159, - "BMSState": 160, - "GuestModeMobileAccessState": 161, - "Deprecated_1": 162, - "DestinationName": 163, - "DiInverterTR": 164, - "DiInverterTF": 165, - "DiInverterTREL": 166, - "DiInverterTRER": 167, - "Experimental_5": 168, - "Experimental_6": 169, - "Experimental_7": 170, - "Experimental_8": 171, - "Experimental_9": 172, - "Experimental_10": 173, - "Experimental_11": 174, - "Experimental_12": 175, - "Experimental_13": 176, - "Experimental_14": 177, - "Experimental_15": 178, - "DetailedChargeState": 179, + "Unknown": 0, + "DriveRail": 1, + "ChargeState": 2, + "BmsFullchargecomplete": 3, + "VehicleSpeed": 4, + "Odometer": 5, + "PackVoltage": 6, + "PackCurrent": 7, + "Soc": 8, + "DCDCEnable": 9, + "Gear": 10, + "IsolationResistance": 11, + "PedalPosition": 12, + "BrakePedal": 13, + "DiStateR": 14, + "DiHeatsinkTR": 15, + "DiAxleSpeedR": 16, + "DiTorquemotor": 17, + "DiStatorTempR": 18, + "DiVBatR": 19, + "DiMotorCurrentR": 20, + "Location": 21, + "GpsState": 22, + "GpsHeading": 23, + "NumBrickVoltageMax": 24, + "BrickVoltageMax": 25, + "NumBrickVoltageMin": 26, + "BrickVoltageMin": 27, + "NumModuleTempMax": 28, + "ModuleTempMax": 29, + "NumModuleTempMin": 30, + "ModuleTempMin": 31, + "RatedRange": 32, + "Hvil": 33, + "DCChargingEnergyIn": 34, + "DCChargingPower": 35, + "ACChargingEnergyIn": 36, + "ACChargingPower": 37, + "ChargeLimitSoc": 38, + "FastChargerPresent": 39, + "EstBatteryRange": 40, + "IdealBatteryRange": 41, + "BatteryLevel": 42, + "TimeToFullCharge": 43, + "ScheduledChargingStartTime": 44, + "ScheduledChargingPending": 45, + "ScheduledDepartureTime": 46, + "PreconditioningEnabled": 47, + "ScheduledChargingMode": 48, + "ChargeAmps": 49, + "ChargeEnableRequest": 50, + "ChargerPhases": 51, + "ChargePortColdWeatherMode": 52, + "ChargeCurrentRequest": 53, + "ChargeCurrentRequestMax": 54, + "BatteryHeaterOn": 55, + "NotEnoughPowerToHeat": 56, + "SuperchargerSessionTripPlanner": 57, + "DoorState": 58, + "Locked": 59, + "FdWindow": 60, + "FpWindow": 61, + "RdWindow": 62, + "RpWindow": 63, + "VehicleName": 64, + "SentryMode": 65, + "SpeedLimitMode": 66, + "CurrentLimitMph": 67, + "Version": 68, + "TpmsPressureFl": 69, + "TpmsPressureFr": 70, + "TpmsPressureRl": 71, + "TpmsPressureRr": 72, + "SemitruckTpmsPressureRe1L0": 73, + "SemitruckTpmsPressureRe1L1": 74, + "SemitruckTpmsPressureRe1R0": 75, + "SemitruckTpmsPressureRe1R1": 76, + "SemitruckTpmsPressureRe2L0": 77, + "SemitruckTpmsPressureRe2L1": 78, + "SemitruckTpmsPressureRe2R0": 79, + "SemitruckTpmsPressureRe2R1": 80, + "TpmsLastSeenPressureTimeFl": 81, + "TpmsLastSeenPressureTimeFr": 82, + "TpmsLastSeenPressureTimeRl": 83, + "TpmsLastSeenPressureTimeRr": 84, + "InsideTemp": 85, + "OutsideTemp": 86, + "SeatHeaterLeft": 87, + "SeatHeaterRight": 88, + "SeatHeaterRearLeft": 89, + "SeatHeaterRearRight": 90, + "SeatHeaterRearCenter": 91, + "AutoSeatClimateLeft": 92, + "AutoSeatClimateRight": 93, + "DriverSeatBelt": 94, + "PassengerSeatBelt": 95, + "DriverSeatOccupied": 96, + "SemitruckPassengerSeatFoldPosition": 97, + "LateralAcceleration": 98, + "LongitudinalAcceleration": 99, + "Deprecated_2": 100, + "CruiseSetSpeed": 101, + "LifetimeEnergyUsed": 102, + "LifetimeEnergyUsedDrive": 103, + "SemitruckTractorParkBrakeStatus": 104, + "SemitruckTrailerParkBrakeStatus": 105, + "BrakePedalPos": 106, + "RouteLastUpdated": 107, + "RouteLine": 108, + "MilesToArrival": 109, + "MinutesToArrival": 110, + "OriginLocation": 111, + "DestinationLocation": 112, + "CarType": 113, + "Trim": 114, + "ExteriorColor": 115, + "RoofColor": 116, + "ChargePort": 117, + "ChargePortLatch": 118, + "Experimental_1": 119, + "Experimental_2": 120, + "Experimental_3": 121, + "Experimental_4": 122, + "GuestModeEnabled": 123, + "PinToDriveEnabled": 124, + "PairedPhoneKeyAndKeyFobQty": 125, + "CruiseFollowDistance": 126, + "AutomaticBlindSpotCamera": 127, + "BlindSpotCollisionWarningChime": 128, + "SpeedLimitWarning": 129, + "ForwardCollisionWarning": 130, + "LaneDepartureAvoidance": 131, + "EmergencyLaneDepartureAvoidance": 132, + "AutomaticEmergencyBrakingOff": 133, + "LifetimeEnergyGainedRegen": 134, + "DiStateF": 135, + "DiStateREL": 136, + "DiStateRER": 137, + "DiHeatsinkTF": 138, + "DiHeatsinkTREL": 139, + "DiHeatsinkTRER": 140, + "DiAxleSpeedF": 141, + "DiAxleSpeedREL": 142, + "DiAxleSpeedRER": 143, + "DiSlaveTorqueCmd": 144, + "DiTorqueActualR": 145, + "DiTorqueActualF": 146, + "DiTorqueActualREL": 147, + "DiTorqueActualRER": 148, + "DiStatorTempF": 149, + "DiStatorTempREL": 150, + "DiStatorTempRER": 151, + "DiVBatF": 152, + "DiVBatREL": 153, + "DiVBatRER": 154, + "DiMotorCurrentF": 155, + "DiMotorCurrentREL": 156, + "DiMotorCurrentRER": 157, + "EnergyRemaining": 158, + "ServiceMode": 159, + "BMSState": 160, + "GuestModeMobileAccessState": 161, + "Deprecated_1": 162, + "DestinationName": 163, + "DiInverterTR": 164, + "DiInverterTF": 165, + "DiInverterTREL": 166, + "DiInverterTRER": 167, + "Experimental_5": 168, + "Experimental_6": 169, + "Experimental_7": 170, + "Experimental_8": 171, + "Experimental_9": 172, + "Experimental_10": 173, + "Experimental_11": 174, + "Experimental_12": 175, + "Experimental_13": 176, + "Experimental_14": 177, + "Experimental_15": 178, + "DetailedChargeState": 179, + "CabinOverheatProtectionMode": 180, + "CabinOverheatProtectionTemperatureLimit": 181, + "CenterDisplay": 182, + "ChargePortDoorOpen": 183, + "ChargingCableType": 185, + "ClimateKeeperMode": 186, + "DefrostForPreconditioning": 187, + "DefrostMode": 188, + "EfficiencyPackage": 189, + "EstimatedHoursToChargeTermination": 190, + "EuropeVehicle": 191, + "ExpectedEnergyPercentAtTripArrival": 192, + "FastChargerType": 193, + "HomelinkDeviceCount": 194, + "HomelinkNearby": 195, + "HvacACEnabled": 196, + "HvacAutoMode": 197, + "HvacFanSpeed": 198, + "HvacFanStatus": 199, + "HvacLeftTemperatureRequest": 200, + "HvacPower": 201, + "HvacRightTemperatureRequest": 202, + "HvacSteeringWheelHeatAuto": 203, + "HvacSteeringWheelHeatLevel": 204, + "OffroadLightbarPresent": 205, + "PowershareHoursLeft": 206, + "PowershareInstantaneousPowerKW": 207, + "PowershareStatus": 208, + "PowershareStopReason": 209, + "PowershareType": 210, + "RearDisplayHvacEnabled": 211, + "RearSeatHeaters": 212, + "RemoteStartEnabled": 213, + "RightHandDrive": 214, + "RouteTrafficMinutesDelay": 215, + "SoftwareUpdateDownloadPercentComplete": 216, + "SoftwareUpdateExpectedDurationMinutes": 217, + "SoftwareUpdateInstallationPercentComplete": 218, + "SoftwareUpdateScheduledStartTime": 219, + "SoftwareUpdateVersion": 220, + "TonneauOpenPercent": 221, + "TonneauPosition": 222, + "TonneauTentMode": 223, + "TpmsHardWarnings": 224, + "TpmsSoftWarnings": 225, + "ValetModeEnabled": 226, + "WheelType": 227, + "WiperHeatEnabled": 228, } ) @@ -1858,6 +2001,809 @@ func (TrailerAirStatus) EnumDescriptor() ([]byte, []int) { return file_protos_vehicle_data_proto_rawDescGZIP(), []int{21} } +type HvacAutoModeState int32 + +const ( + HvacAutoModeState_HvacAutoModeStateUnknown HvacAutoModeState = 0 + HvacAutoModeState_HvacAutoModeStateOn HvacAutoModeState = 1 + HvacAutoModeState_HvacAutoModeStateOverride HvacAutoModeState = 2 +) + +// Enum value maps for HvacAutoModeState. +var ( + HvacAutoModeState_name = map[int32]string{ + 0: "HvacAutoModeStateUnknown", + 1: "HvacAutoModeStateOn", + 2: "HvacAutoModeStateOverride", + } + HvacAutoModeState_value = map[string]int32{ + "HvacAutoModeStateUnknown": 0, + "HvacAutoModeStateOn": 1, + "HvacAutoModeStateOverride": 2, + } +) + +func (x HvacAutoModeState) Enum() *HvacAutoModeState { + p := new(HvacAutoModeState) + *p = x + return p +} + +func (x HvacAutoModeState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (HvacAutoModeState) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[22].Descriptor() +} + +func (HvacAutoModeState) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[22] +} + +func (x HvacAutoModeState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use HvacAutoModeState.Descriptor instead. +func (HvacAutoModeState) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{22} +} + +type CabinOverheatProtectionModeState int32 + +const ( + CabinOverheatProtectionModeState_CabinOverheatProtectionModeStateUnknown CabinOverheatProtectionModeState = 0 + CabinOverheatProtectionModeState_CabinOverheatProtectionModeStateOff CabinOverheatProtectionModeState = 1 + CabinOverheatProtectionModeState_CabinOverheatProtectionModeStateOn CabinOverheatProtectionModeState = 2 + CabinOverheatProtectionModeState_CabinOverheatProtectionModeStateFanOnly CabinOverheatProtectionModeState = 3 +) + +// Enum value maps for CabinOverheatProtectionModeState. +var ( + CabinOverheatProtectionModeState_name = map[int32]string{ + 0: "CabinOverheatProtectionModeStateUnknown", + 1: "CabinOverheatProtectionModeStateOff", + 2: "CabinOverheatProtectionModeStateOn", + 3: "CabinOverheatProtectionModeStateFanOnly", + } + CabinOverheatProtectionModeState_value = map[string]int32{ + "CabinOverheatProtectionModeStateUnknown": 0, + "CabinOverheatProtectionModeStateOff": 1, + "CabinOverheatProtectionModeStateOn": 2, + "CabinOverheatProtectionModeStateFanOnly": 3, + } +) + +func (x CabinOverheatProtectionModeState) Enum() *CabinOverheatProtectionModeState { + p := new(CabinOverheatProtectionModeState) + *p = x + return p +} + +func (x CabinOverheatProtectionModeState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CabinOverheatProtectionModeState) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[23].Descriptor() +} + +func (CabinOverheatProtectionModeState) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[23] +} + +func (x CabinOverheatProtectionModeState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CabinOverheatProtectionModeState.Descriptor instead. +func (CabinOverheatProtectionModeState) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{23} +} + +type ClimateOverheatProtectionTempLimit int32 + +const ( + ClimateOverheatProtectionTempLimit_ClimateOverheatProtectionTempLimitUnknown ClimateOverheatProtectionTempLimit = 0 + ClimateOverheatProtectionTempLimit_ClimateOverheatProtectionTempLimitHigh ClimateOverheatProtectionTempLimit = 1 + ClimateOverheatProtectionTempLimit_ClimateOverheatProtectionTempLimitMedium ClimateOverheatProtectionTempLimit = 2 + ClimateOverheatProtectionTempLimit_ClimateOverheatProtectionTempLimitLow ClimateOverheatProtectionTempLimit = 3 +) + +// Enum value maps for ClimateOverheatProtectionTempLimit. +var ( + ClimateOverheatProtectionTempLimit_name = map[int32]string{ + 0: "ClimateOverheatProtectionTempLimitUnknown", + 1: "ClimateOverheatProtectionTempLimitHigh", + 2: "ClimateOverheatProtectionTempLimitMedium", + 3: "ClimateOverheatProtectionTempLimitLow", + } + ClimateOverheatProtectionTempLimit_value = map[string]int32{ + "ClimateOverheatProtectionTempLimitUnknown": 0, + "ClimateOverheatProtectionTempLimitHigh": 1, + "ClimateOverheatProtectionTempLimitMedium": 2, + "ClimateOverheatProtectionTempLimitLow": 3, + } +) + +func (x ClimateOverheatProtectionTempLimit) Enum() *ClimateOverheatProtectionTempLimit { + p := new(ClimateOverheatProtectionTempLimit) + *p = x + return p +} + +func (x ClimateOverheatProtectionTempLimit) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ClimateOverheatProtectionTempLimit) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[24].Descriptor() +} + +func (ClimateOverheatProtectionTempLimit) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[24] +} + +func (x ClimateOverheatProtectionTempLimit) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ClimateOverheatProtectionTempLimit.Descriptor instead. +func (ClimateOverheatProtectionTempLimit) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{24} +} + +type DefrostModeState int32 + +const ( + DefrostModeState_DefrostModeStateUnknown DefrostModeState = 0 + DefrostModeState_DefrostModeStateOff DefrostModeState = 1 + DefrostModeState_DefrostModeStateNormal DefrostModeState = 2 + DefrostModeState_DefrostModeStateMax DefrostModeState = 3 + DefrostModeState_DefrostModeStateAutoDefog DefrostModeState = 4 +) + +// Enum value maps for DefrostModeState. +var ( + DefrostModeState_name = map[int32]string{ + 0: "DefrostModeStateUnknown", + 1: "DefrostModeStateOff", + 2: "DefrostModeStateNormal", + 3: "DefrostModeStateMax", + 4: "DefrostModeStateAutoDefog", + } + DefrostModeState_value = map[string]int32{ + "DefrostModeStateUnknown": 0, + "DefrostModeStateOff": 1, + "DefrostModeStateNormal": 2, + "DefrostModeStateMax": 3, + "DefrostModeStateAutoDefog": 4, + } +) + +func (x DefrostModeState) Enum() *DefrostModeState { + p := new(DefrostModeState) + *p = x + return p +} + +func (x DefrostModeState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DefrostModeState) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[25].Descriptor() +} + +func (DefrostModeState) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[25] +} + +func (x DefrostModeState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DefrostModeState.Descriptor instead. +func (DefrostModeState) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{25} +} + +type ClimateKeeperModeState int32 + +const ( + ClimateKeeperModeState_ClimateKeeperModeStateUnknown ClimateKeeperModeState = 0 + ClimateKeeperModeState_ClimateKeeperModeStateOff ClimateKeeperModeState = 1 + ClimateKeeperModeState_ClimateKeeperModeStateOn ClimateKeeperModeState = 2 + ClimateKeeperModeState_ClimateKeeperModeStateDog ClimateKeeperModeState = 3 + ClimateKeeperModeState_ClimateKeeperModeStateParty ClimateKeeperModeState = 4 +) + +// Enum value maps for ClimateKeeperModeState. +var ( + ClimateKeeperModeState_name = map[int32]string{ + 0: "ClimateKeeperModeStateUnknown", + 1: "ClimateKeeperModeStateOff", + 2: "ClimateKeeperModeStateOn", + 3: "ClimateKeeperModeStateDog", + 4: "ClimateKeeperModeStateParty", + } + ClimateKeeperModeState_value = map[string]int32{ + "ClimateKeeperModeStateUnknown": 0, + "ClimateKeeperModeStateOff": 1, + "ClimateKeeperModeStateOn": 2, + "ClimateKeeperModeStateDog": 3, + "ClimateKeeperModeStateParty": 4, + } +) + +func (x ClimateKeeperModeState) Enum() *ClimateKeeperModeState { + p := new(ClimateKeeperModeState) + *p = x + return p +} + +func (x ClimateKeeperModeState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (ClimateKeeperModeState) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[26].Descriptor() +} + +func (ClimateKeeperModeState) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[26] +} + +func (x ClimateKeeperModeState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use ClimateKeeperModeState.Descriptor instead. +func (ClimateKeeperModeState) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{26} +} + +type HvacPowerState int32 + +const ( + HvacPowerState_HvacPowerStateUnknown HvacPowerState = 0 + HvacPowerState_HvacPowerStateOff HvacPowerState = 1 + HvacPowerState_HvacPowerStateOn HvacPowerState = 2 + HvacPowerState_HvacPowerStatePrecondition HvacPowerState = 3 + HvacPowerState_HvacPowerStateOverheatProtect HvacPowerState = 4 +) + +// Enum value maps for HvacPowerState. +var ( + HvacPowerState_name = map[int32]string{ + 0: "HvacPowerStateUnknown", + 1: "HvacPowerStateOff", + 2: "HvacPowerStateOn", + 3: "HvacPowerStatePrecondition", + 4: "HvacPowerStateOverheatProtect", + } + HvacPowerState_value = map[string]int32{ + "HvacPowerStateUnknown": 0, + "HvacPowerStateOff": 1, + "HvacPowerStateOn": 2, + "HvacPowerStatePrecondition": 3, + "HvacPowerStateOverheatProtect": 4, + } +) + +func (x HvacPowerState) Enum() *HvacPowerState { + p := new(HvacPowerState) + *p = x + return p +} + +func (x HvacPowerState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (HvacPowerState) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[27].Descriptor() +} + +func (HvacPowerState) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[27] +} + +func (x HvacPowerState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use HvacPowerState.Descriptor instead. +func (HvacPowerState) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{27} +} + +type FastCharger int32 + +const ( + FastCharger_FastChargerUnknown FastCharger = 0 + FastCharger_FastChargerSupercharger FastCharger = 1 + FastCharger_FastChargerCHAdeMO FastCharger = 2 + FastCharger_FastChargerGB FastCharger = 3 + FastCharger_FastChargerACSingleWireCAN FastCharger = 4 + FastCharger_FastChargerCombo FastCharger = 5 + FastCharger_FastChargerMCSingleWireCAN FastCharger = 6 + FastCharger_FastChargerOther FastCharger = 7 + FastCharger_FastChargerSNA FastCharger = 8 +) + +// Enum value maps for FastCharger. +var ( + FastCharger_name = map[int32]string{ + 0: "FastChargerUnknown", + 1: "FastChargerSupercharger", + 2: "FastChargerCHAdeMO", + 3: "FastChargerGB", + 4: "FastChargerACSingleWireCAN", + 5: "FastChargerCombo", + 6: "FastChargerMCSingleWireCAN", + 7: "FastChargerOther", + 8: "FastChargerSNA", + } + FastCharger_value = map[string]int32{ + "FastChargerUnknown": 0, + "FastChargerSupercharger": 1, + "FastChargerCHAdeMO": 2, + "FastChargerGB": 3, + "FastChargerACSingleWireCAN": 4, + "FastChargerCombo": 5, + "FastChargerMCSingleWireCAN": 6, + "FastChargerOther": 7, + "FastChargerSNA": 8, + } +) + +func (x FastCharger) Enum() *FastCharger { + p := new(FastCharger) + *p = x + return p +} + +func (x FastCharger) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (FastCharger) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[28].Descriptor() +} + +func (FastCharger) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[28] +} + +func (x FastCharger) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use FastCharger.Descriptor instead. +func (FastCharger) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{28} +} + +type CableType int32 + +const ( + CableType_CableTypeUnknown CableType = 0 + CableType_CableTypeIEC CableType = 1 + CableType_CableTypeSAE CableType = 2 + CableType_CableTypeGB_AC CableType = 3 + CableType_CableTypeGB_DC CableType = 4 + CableType_CableTypeSNA CableType = 5 +) + +// Enum value maps for CableType. +var ( + CableType_name = map[int32]string{ + 0: "CableTypeUnknown", + 1: "CableTypeIEC", + 2: "CableTypeSAE", + 3: "CableTypeGB_AC", + 4: "CableTypeGB_DC", + 5: "CableTypeSNA", + } + CableType_value = map[string]int32{ + "CableTypeUnknown": 0, + "CableTypeIEC": 1, + "CableTypeSAE": 2, + "CableTypeGB_AC": 3, + "CableTypeGB_DC": 4, + "CableTypeSNA": 5, + } +) + +func (x CableType) Enum() *CableType { + p := new(CableType) + *p = x + return p +} + +func (x CableType) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (CableType) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[29].Descriptor() +} + +func (CableType) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[29] +} + +func (x CableType) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use CableType.Descriptor instead. +func (CableType) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{29} +} + +type TonneauTentModeState int32 + +const ( + TonneauTentModeState_TonneauTentModeStateUnknown TonneauTentModeState = 0 + TonneauTentModeState_TonneauTentModeStateInactive TonneauTentModeState = 1 + TonneauTentModeState_TonneauTentModeStateMoving TonneauTentModeState = 2 + TonneauTentModeState_TonneauTentModeStateFailed TonneauTentModeState = 3 + TonneauTentModeState_TonneauTentModeStateActive TonneauTentModeState = 4 +) + +// Enum value maps for TonneauTentModeState. +var ( + TonneauTentModeState_name = map[int32]string{ + 0: "TonneauTentModeStateUnknown", + 1: "TonneauTentModeStateInactive", + 2: "TonneauTentModeStateMoving", + 3: "TonneauTentModeStateFailed", + 4: "TonneauTentModeStateActive", + } + TonneauTentModeState_value = map[string]int32{ + "TonneauTentModeStateUnknown": 0, + "TonneauTentModeStateInactive": 1, + "TonneauTentModeStateMoving": 2, + "TonneauTentModeStateFailed": 3, + "TonneauTentModeStateActive": 4, + } +) + +func (x TonneauTentModeState) Enum() *TonneauTentModeState { + p := new(TonneauTentModeState) + *p = x + return p +} + +func (x TonneauTentModeState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TonneauTentModeState) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[30].Descriptor() +} + +func (TonneauTentModeState) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[30] +} + +func (x TonneauTentModeState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TonneauTentModeState.Descriptor instead. +func (TonneauTentModeState) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{30} +} + +type TonneauPositionState int32 + +const ( + TonneauPositionState_TonneauPositionStateUnknown TonneauPositionState = 0 + TonneauPositionState_TonneauPositionStateInvalid TonneauPositionState = 1 + TonneauPositionState_TonneauPositionStateClosed TonneauPositionState = 2 + TonneauPositionState_TonneauPositionStatePartiallyOpen TonneauPositionState = 3 + TonneauPositionState_TonneauPositionStateFullyOpen TonneauPositionState = 4 +) + +// Enum value maps for TonneauPositionState. +var ( + TonneauPositionState_name = map[int32]string{ + 0: "TonneauPositionStateUnknown", + 1: "TonneauPositionStateInvalid", + 2: "TonneauPositionStateClosed", + 3: "TonneauPositionStatePartiallyOpen", + 4: "TonneauPositionStateFullyOpen", + } + TonneauPositionState_value = map[string]int32{ + "TonneauPositionStateUnknown": 0, + "TonneauPositionStateInvalid": 1, + "TonneauPositionStateClosed": 2, + "TonneauPositionStatePartiallyOpen": 3, + "TonneauPositionStateFullyOpen": 4, + } +) + +func (x TonneauPositionState) Enum() *TonneauPositionState { + p := new(TonneauPositionState) + *p = x + return p +} + +func (x TonneauPositionState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (TonneauPositionState) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[31].Descriptor() +} + +func (TonneauPositionState) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[31] +} + +func (x TonneauPositionState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use TonneauPositionState.Descriptor instead. +func (TonneauPositionState) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{31} +} + +type PowershareState int32 + +const ( + PowershareState_PowershareStateUnknown PowershareState = 0 + PowershareState_PowershareStateInactive PowershareState = 1 + PowershareState_PowershareStateHandshaking PowershareState = 2 + PowershareState_PowershareStateInit PowershareState = 3 + PowershareState_PowershareStateEnabled PowershareState = 4 + PowershareState_PowershareStateEnabledReconnectingSoon PowershareState = 5 + PowershareState_PowershareStateStopped PowershareState = 6 +) + +// Enum value maps for PowershareState. +var ( + PowershareState_name = map[int32]string{ + 0: "PowershareStateUnknown", + 1: "PowershareStateInactive", + 2: "PowershareStateHandshaking", + 3: "PowershareStateInit", + 4: "PowershareStateEnabled", + 5: "PowershareStateEnabledReconnectingSoon", + 6: "PowershareStateStopped", + } + PowershareState_value = map[string]int32{ + "PowershareStateUnknown": 0, + "PowershareStateInactive": 1, + "PowershareStateHandshaking": 2, + "PowershareStateInit": 3, + "PowershareStateEnabled": 4, + "PowershareStateEnabledReconnectingSoon": 5, + "PowershareStateStopped": 6, + } +) + +func (x PowershareState) Enum() *PowershareState { + p := new(PowershareState) + *p = x + return p +} + +func (x PowershareState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PowershareState) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[32].Descriptor() +} + +func (PowershareState) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[32] +} + +func (x PowershareState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PowershareState.Descriptor instead. +func (PowershareState) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{32} +} + +type PowershareStopReasonStatus int32 + +const ( + PowershareStopReasonStatus_PowershareStopReasonStatusUnknown PowershareStopReasonStatus = 0 + PowershareStopReasonStatus_PowershareStopReasonStatusNone PowershareStopReasonStatus = 1 + PowershareStopReasonStatus_PowershareStopReasonStatusSOCTooLow PowershareStopReasonStatus = 2 + PowershareStopReasonStatus_PowershareStopReasonStatusRetry PowershareStopReasonStatus = 3 + PowershareStopReasonStatus_PowershareStopReasonStatusFault PowershareStopReasonStatus = 4 + PowershareStopReasonStatus_PowershareStopReasonStatusUser PowershareStopReasonStatus = 5 + PowershareStopReasonStatus_PowershareStopReasonStatusReconnecting PowershareStopReasonStatus = 6 + PowershareStopReasonStatus_PowershareStopReasonStatusAuthentication PowershareStopReasonStatus = 7 +) + +// Enum value maps for PowershareStopReasonStatus. +var ( + PowershareStopReasonStatus_name = map[int32]string{ + 0: "PowershareStopReasonStatusUnknown", + 1: "PowershareStopReasonStatusNone", + 2: "PowershareStopReasonStatusSOCTooLow", + 3: "PowershareStopReasonStatusRetry", + 4: "PowershareStopReasonStatusFault", + 5: "PowershareStopReasonStatusUser", + 6: "PowershareStopReasonStatusReconnecting", + 7: "PowershareStopReasonStatusAuthentication", + } + PowershareStopReasonStatus_value = map[string]int32{ + "PowershareStopReasonStatusUnknown": 0, + "PowershareStopReasonStatusNone": 1, + "PowershareStopReasonStatusSOCTooLow": 2, + "PowershareStopReasonStatusRetry": 3, + "PowershareStopReasonStatusFault": 4, + "PowershareStopReasonStatusUser": 5, + "PowershareStopReasonStatusReconnecting": 6, + "PowershareStopReasonStatusAuthentication": 7, + } +) + +func (x PowershareStopReasonStatus) Enum() *PowershareStopReasonStatus { + p := new(PowershareStopReasonStatus) + *p = x + return p +} + +func (x PowershareStopReasonStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PowershareStopReasonStatus) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[33].Descriptor() +} + +func (PowershareStopReasonStatus) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[33] +} + +func (x PowershareStopReasonStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PowershareStopReasonStatus.Descriptor instead. +func (PowershareStopReasonStatus) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{33} +} + +type PowershareTypeStatus int32 + +const ( + PowershareTypeStatus_PowershareTypeStatusUnknown PowershareTypeStatus = 0 + PowershareTypeStatus_PowershareTypeStatusNone PowershareTypeStatus = 1 + PowershareTypeStatus_PowershareTypeStatusLoad PowershareTypeStatus = 2 + PowershareTypeStatus_PowershareTypeStatusHome PowershareTypeStatus = 3 +) + +// Enum value maps for PowershareTypeStatus. +var ( + PowershareTypeStatus_name = map[int32]string{ + 0: "PowershareTypeStatusUnknown", + 1: "PowershareTypeStatusNone", + 2: "PowershareTypeStatusLoad", + 3: "PowershareTypeStatusHome", + } + PowershareTypeStatus_value = map[string]int32{ + "PowershareTypeStatusUnknown": 0, + "PowershareTypeStatusNone": 1, + "PowershareTypeStatusLoad": 2, + "PowershareTypeStatusHome": 3, + } +) + +func (x PowershareTypeStatus) Enum() *PowershareTypeStatus { + p := new(PowershareTypeStatus) + *p = x + return p +} + +func (x PowershareTypeStatus) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (PowershareTypeStatus) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[34].Descriptor() +} + +func (PowershareTypeStatus) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[34] +} + +func (x PowershareTypeStatus) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use PowershareTypeStatus.Descriptor instead. +func (PowershareTypeStatus) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{34} +} + +type DisplayState int32 + +const ( + DisplayState_DisplayStateUnknown DisplayState = 0 + DisplayState_DisplayStateOff DisplayState = 1 + DisplayState_DisplayStateDim DisplayState = 2 + DisplayState_DisplayStateAccessory DisplayState = 3 + DisplayState_DisplayStateOn DisplayState = 4 + DisplayState_DisplayStateDriving DisplayState = 5 + DisplayState_DisplayStateCharging DisplayState = 6 + DisplayState_DisplayStateLock DisplayState = 7 + DisplayState_DisplayStateSentry DisplayState = 8 + DisplayState_DisplayStateDog DisplayState = 9 + DisplayState_DisplayStateEntertainment DisplayState = 10 +) + +// Enum value maps for DisplayState. +var ( + DisplayState_name = map[int32]string{ + 0: "DisplayStateUnknown", + 1: "DisplayStateOff", + 2: "DisplayStateDim", + 3: "DisplayStateAccessory", + 4: "DisplayStateOn", + 5: "DisplayStateDriving", + 6: "DisplayStateCharging", + 7: "DisplayStateLock", + 8: "DisplayStateSentry", + 9: "DisplayStateDog", + 10: "DisplayStateEntertainment", + } + DisplayState_value = map[string]int32{ + "DisplayStateUnknown": 0, + "DisplayStateOff": 1, + "DisplayStateDim": 2, + "DisplayStateAccessory": 3, + "DisplayStateOn": 4, + "DisplayStateDriving": 5, + "DisplayStateCharging": 6, + "DisplayStateLock": 7, + "DisplayStateSentry": 8, + "DisplayStateDog": 9, + "DisplayStateEntertainment": 10, + } +) + +func (x DisplayState) Enum() *DisplayState { + p := new(DisplayState) + *p = x + return p +} + +func (x DisplayState) String() string { + return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) +} + +func (DisplayState) Descriptor() protoreflect.EnumDescriptor { + return file_protos_vehicle_data_proto_enumTypes[35].Descriptor() +} + +func (DisplayState) Type() protoreflect.EnumType { + return &file_protos_vehicle_data_proto_enumTypes[35] +} + +func (x DisplayState) Number() protoreflect.EnumNumber { + return protoreflect.EnumNumber(x) +} + +// Deprecated: Use DisplayState.Descriptor instead. +func (DisplayState) EnumDescriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{35} +} + // LocationValue is a Datum value type type LocationValue struct { state protoimpl.MessageState @@ -2001,6 +2947,125 @@ func (x *Doors) GetTrunkRear() bool { return false } +type TireLocation struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FrontLeft bool `protobuf:"varint,1,opt,name=front_left,json=frontLeft,proto3" json:"front_left,omitempty"` + FrontRight bool `protobuf:"varint,2,opt,name=front_right,json=frontRight,proto3" json:"front_right,omitempty"` + RearLeft bool `protobuf:"varint,3,opt,name=rear_left,json=rearLeft,proto3" json:"rear_left,omitempty"` + RearRight bool `protobuf:"varint,4,opt,name=rear_right,json=rearRight,proto3" json:"rear_right,omitempty"` + SemiMiddleAxleLeft_2 bool `protobuf:"varint,5,opt,name=semi_middle_axle_left_2,json=semiMiddleAxleLeft2,proto3" json:"semi_middle_axle_left_2,omitempty"` + SemiMiddleAxleRight_2 bool `protobuf:"varint,6,opt,name=semi_middle_axle_right_2,json=semiMiddleAxleRight2,proto3" json:"semi_middle_axle_right_2,omitempty"` + SemiRearAxleLeft bool `protobuf:"varint,7,opt,name=semi_rear_axle_left,json=semiRearAxleLeft,proto3" json:"semi_rear_axle_left,omitempty"` + SemiRearAxleRight bool `protobuf:"varint,8,opt,name=semi_rear_axle_right,json=semiRearAxleRight,proto3" json:"semi_rear_axle_right,omitempty"` + SemiRearAxleLeft_2 bool `protobuf:"varint,9,opt,name=semi_rear_axle_left_2,json=semiRearAxleLeft2,proto3" json:"semi_rear_axle_left_2,omitempty"` + SemiRearAxleRight_2 bool `protobuf:"varint,10,opt,name=semi_rear_axle_right_2,json=semiRearAxleRight2,proto3" json:"semi_rear_axle_right_2,omitempty"` +} + +func (x *TireLocation) Reset() { + *x = TireLocation{} + if protoimpl.UnsafeEnabled { + mi := &file_protos_vehicle_data_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TireLocation) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TireLocation) ProtoMessage() {} + +func (x *TireLocation) 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TireLocation.ProtoReflect.Descriptor instead. +func (*TireLocation) Descriptor() ([]byte, []int) { + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{2} +} + +func (x *TireLocation) GetFrontLeft() bool { + if x != nil { + return x.FrontLeft + } + return false +} + +func (x *TireLocation) GetFrontRight() bool { + if x != nil { + return x.FrontRight + } + return false +} + +func (x *TireLocation) GetRearLeft() bool { + if x != nil { + return x.RearLeft + } + return false +} + +func (x *TireLocation) GetRearRight() bool { + if x != nil { + return x.RearRight + } + return false +} + +func (x *TireLocation) GetSemiMiddleAxleLeft_2() bool { + if x != nil { + return x.SemiMiddleAxleLeft_2 + } + return false +} + +func (x *TireLocation) GetSemiMiddleAxleRight_2() bool { + if x != nil { + return x.SemiMiddleAxleRight_2 + } + return false +} + +func (x *TireLocation) GetSemiRearAxleLeft() bool { + if x != nil { + return x.SemiRearAxleLeft + } + return false +} + +func (x *TireLocation) GetSemiRearAxleRight() bool { + if x != nil { + return x.SemiRearAxleRight + } + return false +} + +func (x *TireLocation) GetSemiRearAxleLeft_2() bool { + if x != nil { + return x.SemiRearAxleLeft_2 + } + return false +} + +func (x *TireLocation) GetSemiRearAxleRight_2() bool { + if x != nil { + return x.SemiRearAxleRight_2 + } + return false +} + type Time struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2014,7 +3079,7 @@ type Time struct { func (x *Time) Reset() { *x = Time{} if protoimpl.UnsafeEnabled { - mi := &file_protos_vehicle_data_proto_msgTypes[2] + mi := &file_protos_vehicle_data_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2027,7 +3092,7 @@ func (x *Time) String() string { func (*Time) ProtoMessage() {} func (x *Time) ProtoReflect() protoreflect.Message { - mi := &file_protos_vehicle_data_proto_msgTypes[2] + mi := &file_protos_vehicle_data_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2040,7 +3105,7 @@ func (x *Time) ProtoReflect() protoreflect.Message { // Deprecated: Use Time.ProtoReflect.Descriptor instead. func (*Time) Descriptor() ([]byte, []int) { - return file_protos_vehicle_data_proto_rawDescGZIP(), []int{2} + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{3} } func (x *Time) GetHour() int32 { @@ -2105,13 +3170,28 @@ type Value struct { // *Value_TrailerAirStatusValue // *Value_TimeValue // *Value_DetailedChargeStateValue + // *Value_HvacAutoModeValue + // *Value_CabinOverheatProtectionModeValue + // *Value_CabinOverheatProtectionTemperatureLimitValue + // *Value_DefrostModeValue + // *Value_ClimateKeeperModeValue + // *Value_HvacPowerValue + // *Value_TireLocationValue + // *Value_FastChargerValue + // *Value_CableTypeValue + // *Value_TonneauTentModeValue + // *Value_TonneauPositionValue + // *Value_PowershareTypeValue + // *Value_PowershareStateValue + // *Value_PowershareStopReasonValue + // *Value_DisplayStateValue Value isValue_Value `protobuf_oneof:"value"` } func (x *Value) Reset() { *x = Value{} if protoimpl.UnsafeEnabled { - mi := &file_protos_vehicle_data_proto_msgTypes[3] + mi := &file_protos_vehicle_data_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2124,7 +3204,7 @@ func (x *Value) String() string { func (*Value) ProtoMessage() {} func (x *Value) ProtoReflect() protoreflect.Message { - mi := &file_protos_vehicle_data_proto_msgTypes[3] + mi := &file_protos_vehicle_data_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2137,7 +3217,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{3} + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{4} } func (m *Value) GetValue() isValue_Value { @@ -2364,6 +3444,111 @@ func (x *Value) GetDetailedChargeStateValue() DetailedChargeStateValue { return DetailedChargeStateValue_DetailedChargeStateUnknown } +func (x *Value) GetHvacAutoModeValue() HvacAutoModeState { + if x, ok := x.GetValue().(*Value_HvacAutoModeValue); ok { + return x.HvacAutoModeValue + } + return HvacAutoModeState_HvacAutoModeStateUnknown +} + +func (x *Value) GetCabinOverheatProtectionModeValue() CabinOverheatProtectionModeState { + if x, ok := x.GetValue().(*Value_CabinOverheatProtectionModeValue); ok { + return x.CabinOverheatProtectionModeValue + } + return CabinOverheatProtectionModeState_CabinOverheatProtectionModeStateUnknown +} + +func (x *Value) GetCabinOverheatProtectionTemperatureLimitValue() ClimateOverheatProtectionTempLimit { + if x, ok := x.GetValue().(*Value_CabinOverheatProtectionTemperatureLimitValue); ok { + return x.CabinOverheatProtectionTemperatureLimitValue + } + return ClimateOverheatProtectionTempLimit_ClimateOverheatProtectionTempLimitUnknown +} + +func (x *Value) GetDefrostModeValue() DefrostModeState { + if x, ok := x.GetValue().(*Value_DefrostModeValue); ok { + return x.DefrostModeValue + } + return DefrostModeState_DefrostModeStateUnknown +} + +func (x *Value) GetClimateKeeperModeValue() ClimateKeeperModeState { + if x, ok := x.GetValue().(*Value_ClimateKeeperModeValue); ok { + return x.ClimateKeeperModeValue + } + return ClimateKeeperModeState_ClimateKeeperModeStateUnknown +} + +func (x *Value) GetHvacPowerValue() HvacPowerState { + if x, ok := x.GetValue().(*Value_HvacPowerValue); ok { + return x.HvacPowerValue + } + return HvacPowerState_HvacPowerStateUnknown +} + +func (x *Value) GetTireLocationValue() *TireLocation { + if x, ok := x.GetValue().(*Value_TireLocationValue); ok { + return x.TireLocationValue + } + return nil +} + +func (x *Value) GetFastChargerValue() FastCharger { + if x, ok := x.GetValue().(*Value_FastChargerValue); ok { + return x.FastChargerValue + } + return FastCharger_FastChargerUnknown +} + +func (x *Value) GetCableTypeValue() CableType { + if x, ok := x.GetValue().(*Value_CableTypeValue); ok { + return x.CableTypeValue + } + return CableType_CableTypeUnknown +} + +func (x *Value) GetTonneauTentModeValue() TonneauTentModeState { + if x, ok := x.GetValue().(*Value_TonneauTentModeValue); ok { + return x.TonneauTentModeValue + } + return TonneauTentModeState_TonneauTentModeStateUnknown +} + +func (x *Value) GetTonneauPositionValue() TonneauPositionState { + if x, ok := x.GetValue().(*Value_TonneauPositionValue); ok { + return x.TonneauPositionValue + } + return TonneauPositionState_TonneauPositionStateUnknown +} + +func (x *Value) GetPowershareTypeValue() PowershareTypeStatus { + if x, ok := x.GetValue().(*Value_PowershareTypeValue); ok { + return x.PowershareTypeValue + } + return PowershareTypeStatus_PowershareTypeStatusUnknown +} + +func (x *Value) GetPowershareStateValue() PowershareState { + if x, ok := x.GetValue().(*Value_PowershareStateValue); ok { + return x.PowershareStateValue + } + return PowershareState_PowershareStateUnknown +} + +func (x *Value) GetPowershareStopReasonValue() PowershareStopReasonStatus { + if x, ok := x.GetValue().(*Value_PowershareStopReasonValue); ok { + return x.PowershareStopReasonValue + } + return PowershareStopReasonStatus_PowershareStopReasonStatusUnknown +} + +func (x *Value) GetDisplayStateValue() DisplayState { + if x, ok := x.GetValue().(*Value_DisplayStateValue); ok { + return x.DisplayStateValue + } + return DisplayState_DisplayStateUnknown +} + type isValue_Value interface { isValue_Value() } @@ -2492,6 +3677,66 @@ type Value_DetailedChargeStateValue struct { DetailedChargeStateValue DetailedChargeStateValue `protobuf:"varint,32,opt,name=detailed_charge_state_value,json=detailedChargeStateValue,proto3,enum=telemetry.vehicle_data.DetailedChargeStateValue,oneof"` } +type Value_HvacAutoModeValue struct { + HvacAutoModeValue HvacAutoModeState `protobuf:"varint,33,opt,name=hvac_auto_mode_value,json=hvacAutoModeValue,proto3,enum=telemetry.vehicle_data.HvacAutoModeState,oneof"` +} + +type Value_CabinOverheatProtectionModeValue struct { + CabinOverheatProtectionModeValue CabinOverheatProtectionModeState `protobuf:"varint,34,opt,name=cabin_overheat_protection_mode_value,json=cabinOverheatProtectionModeValue,proto3,enum=telemetry.vehicle_data.CabinOverheatProtectionModeState,oneof"` +} + +type Value_CabinOverheatProtectionTemperatureLimitValue struct { + CabinOverheatProtectionTemperatureLimitValue ClimateOverheatProtectionTempLimit `protobuf:"varint,35,opt,name=cabin_overheat_protection_temperature_limit_value,json=cabinOverheatProtectionTemperatureLimitValue,proto3,enum=telemetry.vehicle_data.ClimateOverheatProtectionTempLimit,oneof"` +} + +type Value_DefrostModeValue struct { + DefrostModeValue DefrostModeState `protobuf:"varint,36,opt,name=defrost_mode_value,json=defrostModeValue,proto3,enum=telemetry.vehicle_data.DefrostModeState,oneof"` +} + +type Value_ClimateKeeperModeValue struct { + ClimateKeeperModeValue ClimateKeeperModeState `protobuf:"varint,37,opt,name=climate_keeper_mode_value,json=climateKeeperModeValue,proto3,enum=telemetry.vehicle_data.ClimateKeeperModeState,oneof"` +} + +type Value_HvacPowerValue struct { + HvacPowerValue HvacPowerState `protobuf:"varint,38,opt,name=hvac_power_value,json=hvacPowerValue,proto3,enum=telemetry.vehicle_data.HvacPowerState,oneof"` +} + +type Value_TireLocationValue struct { + TireLocationValue *TireLocation `protobuf:"bytes,39,opt,name=tire_location_value,json=tireLocationValue,proto3,oneof"` +} + +type Value_FastChargerValue struct { + FastChargerValue FastCharger `protobuf:"varint,40,opt,name=fast_charger_value,json=fastChargerValue,proto3,enum=telemetry.vehicle_data.FastCharger,oneof"` +} + +type Value_CableTypeValue struct { + CableTypeValue CableType `protobuf:"varint,41,opt,name=cable_type_value,json=cableTypeValue,proto3,enum=telemetry.vehicle_data.CableType,oneof"` +} + +type Value_TonneauTentModeValue struct { + TonneauTentModeValue TonneauTentModeState `protobuf:"varint,42,opt,name=tonneau_tent_mode_value,json=tonneauTentModeValue,proto3,enum=telemetry.vehicle_data.TonneauTentModeState,oneof"` +} + +type Value_TonneauPositionValue struct { + TonneauPositionValue TonneauPositionState `protobuf:"varint,43,opt,name=tonneau_position_value,json=tonneauPositionValue,proto3,enum=telemetry.vehicle_data.TonneauPositionState,oneof"` +} + +type Value_PowershareTypeValue struct { + PowershareTypeValue PowershareTypeStatus `protobuf:"varint,44,opt,name=powershare_type_value,json=powershareTypeValue,proto3,enum=telemetry.vehicle_data.PowershareTypeStatus,oneof"` +} + +type Value_PowershareStateValue struct { + PowershareStateValue PowershareState `protobuf:"varint,45,opt,name=powershare_state_value,json=powershareStateValue,proto3,enum=telemetry.vehicle_data.PowershareState,oneof"` +} + +type Value_PowershareStopReasonValue struct { + PowershareStopReasonValue PowershareStopReasonStatus `protobuf:"varint,46,opt,name=powershare_stop_reason_value,json=powershareStopReasonValue,proto3,enum=telemetry.vehicle_data.PowershareStopReasonStatus,oneof"` +} + +type Value_DisplayStateValue struct { + DisplayStateValue DisplayState `protobuf:"varint,47,opt,name=display_state_value,json=displayStateValue,proto3,enum=telemetry.vehicle_data.DisplayState,oneof"` +} + func (*Value_StringValue) isValue_Value() {} func (*Value_IntValue) isValue_Value() {} @@ -2554,6 +3799,36 @@ func (*Value_TimeValue) isValue_Value() {} func (*Value_DetailedChargeStateValue) isValue_Value() {} +func (*Value_HvacAutoModeValue) isValue_Value() {} + +func (*Value_CabinOverheatProtectionModeValue) isValue_Value() {} + +func (*Value_CabinOverheatProtectionTemperatureLimitValue) isValue_Value() {} + +func (*Value_DefrostModeValue) isValue_Value() {} + +func (*Value_ClimateKeeperModeValue) isValue_Value() {} + +func (*Value_HvacPowerValue) isValue_Value() {} + +func (*Value_TireLocationValue) isValue_Value() {} + +func (*Value_FastChargerValue) isValue_Value() {} + +func (*Value_CableTypeValue) isValue_Value() {} + +func (*Value_TonneauTentModeValue) isValue_Value() {} + +func (*Value_TonneauPositionValue) isValue_Value() {} + +func (*Value_PowershareTypeValue) isValue_Value() {} + +func (*Value_PowershareStateValue) isValue_Value() {} + +func (*Value_PowershareStopReasonValue) isValue_Value() {} + +func (*Value_DisplayStateValue) isValue_Value() {} + // Datum represents a single field and its value type Datum struct { state protoimpl.MessageState @@ -2567,7 +3842,7 @@ type Datum struct { func (x *Datum) Reset() { *x = Datum{} if protoimpl.UnsafeEnabled { - mi := &file_protos_vehicle_data_proto_msgTypes[4] + mi := &file_protos_vehicle_data_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2580,7 +3855,7 @@ func (x *Datum) String() string { func (*Datum) ProtoMessage() {} func (x *Datum) ProtoReflect() protoreflect.Message { - mi := &file_protos_vehicle_data_proto_msgTypes[4] + mi := &file_protos_vehicle_data_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2593,7 +3868,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{4} + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{5} } func (x *Datum) GetKey() Field { @@ -2624,7 +3899,7 @@ type Payload struct { func (x *Payload) Reset() { *x = Payload{} if protoimpl.UnsafeEnabled { - mi := &file_protos_vehicle_data_proto_msgTypes[5] + mi := &file_protos_vehicle_data_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2637,7 +3912,7 @@ func (x *Payload) String() string { func (*Payload) ProtoMessage() {} func (x *Payload) ProtoReflect() protoreflect.Message { - mi := &file_protos_vehicle_data_proto_msgTypes[5] + mi := &file_protos_vehicle_data_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2650,7 +3925,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{5} + return file_protos_vehicle_data_proto_rawDescGZIP(), []int{6} } func (x *Payload) GetData() []*Datum { @@ -2700,716 +3975,1098 @@ var file_protos_vehicle_data_proto_rawDesc = []byte{ 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, 0xd6, 0x13, 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, 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, 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, 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, + 0x75, 0x6e, 0x6b, 0x52, 0x65, 0x61, 0x72, 0x22, 0xbe, 0x03, 0x0a, 0x0c, 0x54, 0x69, 0x72, 0x65, + 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6e, + 0x74, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x66, 0x72, + 0x6f, 0x6e, 0x74, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6e, 0x74, + 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x72, + 0x6f, 0x6e, 0x74, 0x52, 0x69, 0x67, 0x68, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x65, 0x61, 0x72, + 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x61, + 0x72, 0x4c, 0x65, 0x66, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x61, 0x72, 0x5f, 0x72, 0x69, + 0x67, 0x68, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x72, 0x65, 0x61, 0x72, 0x52, + 0x69, 0x67, 0x68, 0x74, 0x12, 0x34, 0x0a, 0x17, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x6d, 0x69, 0x64, + 0x64, 0x6c, 0x65, 0x5f, 0x61, 0x78, 0x6c, 0x65, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x32, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x73, 0x65, 0x6d, 0x69, 0x4d, 0x69, 0x64, 0x64, 0x6c, + 0x65, 0x41, 0x78, 0x6c, 0x65, 0x4c, 0x65, 0x66, 0x74, 0x32, 0x12, 0x36, 0x0a, 0x18, 0x73, 0x65, + 0x6d, 0x69, 0x5f, 0x6d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x5f, 0x61, 0x78, 0x6c, 0x65, 0x5f, 0x72, + 0x69, 0x67, 0x68, 0x74, 0x5f, 0x32, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x73, 0x65, + 0x6d, 0x69, 0x4d, 0x69, 0x64, 0x64, 0x6c, 0x65, 0x41, 0x78, 0x6c, 0x65, 0x52, 0x69, 0x67, 0x68, + 0x74, 0x32, 0x12, 0x2d, 0x0a, 0x13, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x72, 0x65, 0x61, 0x72, 0x5f, + 0x61, 0x78, 0x6c, 0x65, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x10, 0x73, 0x65, 0x6d, 0x69, 0x52, 0x65, 0x61, 0x72, 0x41, 0x78, 0x6c, 0x65, 0x4c, 0x65, 0x66, + 0x74, 0x12, 0x2f, 0x0a, 0x14, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x72, 0x65, 0x61, 0x72, 0x5f, 0x61, + 0x78, 0x6c, 0x65, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x11, 0x73, 0x65, 0x6d, 0x69, 0x52, 0x65, 0x61, 0x72, 0x41, 0x78, 0x6c, 0x65, 0x52, 0x69, 0x67, + 0x68, 0x74, 0x12, 0x30, 0x0a, 0x15, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x72, 0x65, 0x61, 0x72, 0x5f, + 0x61, 0x78, 0x6c, 0x65, 0x5f, 0x6c, 0x65, 0x66, 0x74, 0x5f, 0x32, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x11, 0x73, 0x65, 0x6d, 0x69, 0x52, 0x65, 0x61, 0x72, 0x41, 0x78, 0x6c, 0x65, 0x4c, + 0x65, 0x66, 0x74, 0x32, 0x12, 0x32, 0x0a, 0x16, 0x73, 0x65, 0x6d, 0x69, 0x5f, 0x72, 0x65, 0x61, + 0x72, 0x5f, 0x61, 0x78, 0x6c, 0x65, 0x5f, 0x72, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x32, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x73, 0x65, 0x6d, 0x69, 0x52, 0x65, 0x61, 0x72, 0x41, 0x78, + 0x6c, 0x65, 0x52, 0x69, 0x67, 0x68, 0x74, 0x32, 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, 0xe1, 0x1f, 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, 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, + 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, 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, + 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, 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, 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, + 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, 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, + 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, 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, 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, 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, + 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, 0x12, 0x5c, 0x0a, 0x14, 0x68, 0x76, 0x61, 0x63, 0x5f, 0x61, 0x75, 0x74, + 0x6f, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x21, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x29, 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, 0x61, 0x63, + 0x41, 0x75, 0x74, 0x6f, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, + 0x11, 0x68, 0x76, 0x61, 0x63, 0x41, 0x75, 0x74, 0x6f, 0x4d, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x24, 0x63, 0x61, 0x62, 0x69, 0x6e, 0x5f, 0x6f, 0x76, 0x65, + 0x72, 0x68, 0x65, 0x61, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x38, 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, 0x62, 0x69, 0x6e, + 0x4f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x20, 0x63, + 0x61, 0x62, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x74, 0x50, 0x72, 0x6f, 0x74, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0xa5, 0x01, 0x0a, 0x31, 0x63, 0x61, 0x62, 0x69, 0x6e, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x68, 0x65, + 0x61, 0x74, 0x5f, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x65, + 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x5f, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, 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, 0x6c, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x4f, 0x76, 0x65, 0x72, + 0x68, 0x65, 0x61, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, + 0x6d, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x48, 0x00, 0x52, 0x2c, 0x63, 0x61, 0x62, 0x69, 0x6e, + 0x4f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4c, 0x69, 0x6d, + 0x69, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x58, 0x0a, 0x12, 0x64, 0x65, 0x66, 0x72, 0x6f, + 0x73, 0x74, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x24, 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, 0x44, 0x65, 0x66, + 0x72, 0x6f, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, + 0x10, 0x64, 0x65, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, + 0x65, 0x12, 0x6b, 0x0a, 0x19, 0x63, 0x6c, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x65, + 0x70, 0x65, 0x72, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x25, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2e, 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, 0x6c, + 0x69, 0x6d, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x65, 0x70, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x16, 0x63, 0x6c, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x4b, + 0x65, 0x65, 0x70, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x52, + 0x0a, 0x10, 0x68, 0x76, 0x61, 0x63, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x26, 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, 0x48, 0x76, 0x61, 0x63, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x48, 0x00, 0x52, 0x0e, 0x68, 0x76, 0x61, 0x63, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x74, 0x69, 0x72, 0x65, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 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, 0x54, 0x69, 0x72, 0x65, 0x4c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x48, 0x00, 0x52, 0x11, 0x74, 0x69, 0x72, 0x65, 0x4c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x53, 0x0a, 0x12, 0x66, 0x61, + 0x73, 0x74, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x72, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x28, 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, + 0x46, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x72, 0x48, 0x00, 0x52, 0x10, 0x66, + 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x72, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x4d, 0x0a, 0x10, 0x63, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, + 0x6c, 0x75, 0x65, 0x18, 0x29, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 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, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x0e, + 0x63, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x65, + 0x0a, 0x17, 0x74, 0x6f, 0x6e, 0x6e, 0x65, 0x61, 0x75, 0x5f, 0x74, 0x65, 0x6e, 0x74, 0x5f, 0x6d, + 0x6f, 0x64, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x2a, 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, 0x54, 0x6f, 0x6e, 0x6e, 0x65, 0x61, 0x75, + 0x54, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, + 0x14, 0x74, 0x6f, 0x6e, 0x6e, 0x65, 0x61, 0x75, 0x54, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x64, 0x0a, 0x16, 0x74, 0x6f, 0x6e, 0x6e, 0x65, 0x61, 0x75, + 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x2b, 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, 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, 0x82, 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, + 0x6f, 0x6e, 0x6e, 0x65, 0x61, 0x75, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x14, 0x74, 0x6f, 0x6e, 0x6e, 0x65, 0x61, 0x75, 0x50, 0x6f, + 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x62, 0x0a, 0x15, 0x70, + 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, + 0x61, 0x6c, 0x75, 0x65, 0x18, 0x2c, 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, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x13, 0x70, 0x6f, 0x77, 0x65, + 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, + 0x5f, 0x0a, 0x16, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x73, 0x74, + 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x2d, 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, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, + 0x61, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x14, 0x70, 0x6f, 0x77, 0x65, + 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, + 0x12, 0x75, 0x0a, 0x1c, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x5f, 0x73, + 0x74, 0x6f, 0x70, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x2e, 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, + 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x00, 0x52, 0x19, 0x70, 0x6f, + 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x56, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x2f, + 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, 0x44, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x11, 0x64, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 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, 0xa4, 0x29, 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, 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, 0x10, 0x0a, 0x0c, 0x44, 0x65, - 0x70, 0x72, 0x65, 0x63, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x32, 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, + 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, 0x10, 0x0a, 0x0c, 0x44, 0x65, 0x70, 0x72, 0x65, 0x63, + 0x61, 0x74, 0x65, 0x64, 0x5f, 0x32, 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, 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, + 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, 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, + 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, 0x12, 0x20, 0x0a, 0x1b, 0x43, 0x61, 0x62, 0x69, + 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x10, 0xb4, 0x01, 0x12, 0x2c, 0x0a, 0x27, 0x43, 0x61, + 0x62, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x10, 0xb5, 0x01, 0x12, 0x12, 0x0a, 0x0d, 0x43, 0x65, 0x6e, 0x74, + 0x65, 0x72, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x10, 0xb6, 0x01, 0x12, 0x17, 0x0a, 0x12, + 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x50, 0x6f, 0x72, 0x74, 0x44, 0x6f, 0x6f, 0x72, 0x4f, 0x70, + 0x65, 0x6e, 0x10, 0xb7, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x43, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, + 0x67, 0x43, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x10, 0xb9, 0x01, 0x12, 0x16, 0x0a, + 0x11, 0x43, 0x6c, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x65, 0x70, 0x65, 0x72, 0x4d, 0x6f, + 0x64, 0x65, 0x10, 0xba, 0x01, 0x12, 0x1e, 0x0a, 0x19, 0x44, 0x65, 0x66, 0x72, 0x6f, 0x73, 0x74, + 0x46, 0x6f, 0x72, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x69, + 0x6e, 0x67, 0x10, 0xbb, 0x01, 0x12, 0x10, 0x0a, 0x0b, 0x44, 0x65, 0x66, 0x72, 0x6f, 0x73, 0x74, + 0x4d, 0x6f, 0x64, 0x65, 0x10, 0xbc, 0x01, 0x12, 0x16, 0x0a, 0x11, 0x45, 0x66, 0x66, 0x69, 0x63, + 0x69, 0x65, 0x6e, 0x63, 0x79, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x10, 0xbd, 0x01, 0x12, + 0x26, 0x0a, 0x21, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x64, 0x48, 0x6f, 0x75, 0x72, + 0x73, 0x54, 0x6f, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x54, 0x65, 0x72, 0x6d, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xbe, 0x01, 0x12, 0x12, 0x0a, 0x0d, 0x45, 0x75, 0x72, 0x6f, 0x70, + 0x65, 0x56, 0x65, 0x68, 0x69, 0x63, 0x6c, 0x65, 0x10, 0xbf, 0x01, 0x12, 0x27, 0x0a, 0x22, 0x45, + 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x45, 0x6e, 0x65, 0x72, 0x67, 0x79, 0x50, 0x65, 0x72, + 0x63, 0x65, 0x6e, 0x74, 0x41, 0x74, 0x54, 0x72, 0x69, 0x70, 0x41, 0x72, 0x72, 0x69, 0x76, 0x61, + 0x6c, 0x10, 0xc0, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x46, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x72, + 0x67, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x10, 0xc1, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x48, 0x6f, + 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x6b, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x10, 0xc2, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x48, 0x6f, 0x6d, 0x65, 0x6c, 0x69, 0x6e, 0x6b, + 0x4e, 0x65, 0x61, 0x72, 0x62, 0x79, 0x10, 0xc3, 0x01, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x76, 0x61, + 0x63, 0x41, 0x43, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x10, 0xc4, 0x01, 0x12, 0x11, 0x0a, + 0x0c, 0x48, 0x76, 0x61, 0x63, 0x41, 0x75, 0x74, 0x6f, 0x4d, 0x6f, 0x64, 0x65, 0x10, 0xc5, 0x01, + 0x12, 0x11, 0x0a, 0x0c, 0x48, 0x76, 0x61, 0x63, 0x46, 0x61, 0x6e, 0x53, 0x70, 0x65, 0x65, 0x64, + 0x10, 0xc6, 0x01, 0x12, 0x12, 0x0a, 0x0d, 0x48, 0x76, 0x61, 0x63, 0x46, 0x61, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x10, 0xc7, 0x01, 0x12, 0x1f, 0x0a, 0x1a, 0x48, 0x76, 0x61, 0x63, 0x4c, + 0x65, 0x66, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0xc8, 0x01, 0x12, 0x0e, 0x0a, 0x09, 0x48, 0x76, 0x61, 0x63, + 0x50, 0x6f, 0x77, 0x65, 0x72, 0x10, 0xc9, 0x01, 0x12, 0x20, 0x0a, 0x1b, 0x48, 0x76, 0x61, 0x63, + 0x52, 0x69, 0x67, 0x68, 0x74, 0x54, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x10, 0xca, 0x01, 0x12, 0x1e, 0x0a, 0x19, 0x48, 0x76, + 0x61, 0x63, 0x53, 0x74, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x48, + 0x65, 0x61, 0x74, 0x41, 0x75, 0x74, 0x6f, 0x10, 0xcb, 0x01, 0x12, 0x1f, 0x0a, 0x1a, 0x48, 0x76, + 0x61, 0x63, 0x53, 0x74, 0x65, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x48, + 0x65, 0x61, 0x74, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x10, 0xcc, 0x01, 0x12, 0x1b, 0x0a, 0x16, 0x4f, + 0x66, 0x66, 0x72, 0x6f, 0x61, 0x64, 0x4c, 0x69, 0x67, 0x68, 0x74, 0x62, 0x61, 0x72, 0x50, 0x72, + 0x65, 0x73, 0x65, 0x6e, 0x74, 0x10, 0xcd, 0x01, 0x12, 0x18, 0x0a, 0x13, 0x50, 0x6f, 0x77, 0x65, + 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x48, 0x6f, 0x75, 0x72, 0x73, 0x4c, 0x65, 0x66, 0x74, 0x10, + 0xce, 0x01, 0x12, 0x23, 0x0a, 0x1e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x61, 0x6e, 0x65, 0x6f, 0x75, 0x73, 0x50, 0x6f, 0x77, + 0x65, 0x72, 0x4b, 0x57, 0x10, 0xcf, 0x01, 0x12, 0x15, 0x0a, 0x10, 0x50, 0x6f, 0x77, 0x65, 0x72, + 0x73, 0x68, 0x61, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x10, 0xd0, 0x01, 0x12, 0x19, + 0x0a, 0x14, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x53, 0x74, 0x6f, 0x70, + 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x10, 0xd1, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x50, 0x6f, 0x77, + 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x10, 0xd2, 0x01, 0x12, 0x1b, + 0x0a, 0x16, 0x52, 0x65, 0x61, 0x72, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x48, 0x76, 0x61, + 0x63, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x10, 0xd3, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x52, + 0x65, 0x61, 0x72, 0x53, 0x65, 0x61, 0x74, 0x48, 0x65, 0x61, 0x74, 0x65, 0x72, 0x73, 0x10, 0xd4, + 0x01, 0x12, 0x17, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x10, 0xd5, 0x01, 0x12, 0x13, 0x0a, 0x0e, 0x52, 0x69, + 0x67, 0x68, 0x74, 0x48, 0x61, 0x6e, 0x64, 0x44, 0x72, 0x69, 0x76, 0x65, 0x10, 0xd6, 0x01, 0x12, + 0x1d, 0x0a, 0x18, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x54, 0x72, 0x61, 0x66, 0x66, 0x69, 0x63, 0x4d, + 0x69, 0x6e, 0x75, 0x74, 0x65, 0x73, 0x44, 0x65, 0x6c, 0x61, 0x79, 0x10, 0xd7, 0x01, 0x12, 0x2a, + 0x0a, 0x25, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x43, + 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x10, 0xd8, 0x01, 0x12, 0x2a, 0x0a, 0x25, 0x53, 0x6f, + 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x45, 0x78, 0x70, 0x65, + 0x63, 0x74, 0x65, 0x64, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x69, 0x6e, 0x75, + 0x74, 0x65, 0x73, 0x10, 0xd9, 0x01, 0x12, 0x2e, 0x0a, 0x29, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, + 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x6c, + 0x65, 0x74, 0x65, 0x10, 0xda, 0x01, 0x12, 0x25, 0x0a, 0x20, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, + 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x64, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x10, 0xdb, 0x01, 0x12, 0x1a, 0x0a, + 0x15, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x10, 0xdc, 0x01, 0x12, 0x17, 0x0a, 0x12, 0x54, 0x6f, 0x6e, + 0x6e, 0x65, 0x61, 0x75, 0x4f, 0x70, 0x65, 0x6e, 0x50, 0x65, 0x72, 0x63, 0x65, 0x6e, 0x74, 0x10, + 0xdd, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x54, 0x6f, 0x6e, 0x6e, 0x65, 0x61, 0x75, 0x50, 0x6f, 0x73, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0xde, 0x01, 0x12, 0x14, 0x0a, 0x0f, 0x54, 0x6f, 0x6e, 0x6e, + 0x65, 0x61, 0x75, 0x54, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x10, 0xdf, 0x01, 0x12, 0x15, + 0x0a, 0x10, 0x54, 0x70, 0x6d, 0x73, 0x48, 0x61, 0x72, 0x64, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, + 0x67, 0x73, 0x10, 0xe0, 0x01, 0x12, 0x15, 0x0a, 0x10, 0x54, 0x70, 0x6d, 0x73, 0x53, 0x6f, 0x66, + 0x74, 0x57, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x10, 0xe1, 0x01, 0x12, 0x15, 0x0a, 0x10, + 0x56, 0x61, 0x6c, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, + 0x10, 0xe2, 0x01, 0x12, 0x0e, 0x0a, 0x09, 0x57, 0x68, 0x65, 0x65, 0x6c, 0x54, 0x79, 0x70, 0x65, + 0x10, 0xe3, 0x01, 0x12, 0x15, 0x0a, 0x10, 0x57, 0x69, 0x70, 0x65, 0x72, 0x48, 0x65, 0x61, 0x74, + 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x10, 0xe4, 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, 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, + 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, 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, + 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, 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, + 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, 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, + 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, 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, + 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, 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, + 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, 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, + 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, 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, + 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, 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, 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, + 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, 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, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x21, 0x0a, 0x1d, 0x44, 0x72, + 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, - 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, + 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, 0x2a, 0x69, 0x0a, 0x11, 0x48, 0x76, 0x61, 0x63, 0x41, 0x75, 0x74, 0x6f, 0x4d, 0x6f, + 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x18, 0x48, 0x76, 0x61, 0x63, 0x41, + 0x75, 0x74, 0x6f, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x6b, 0x6e, + 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x48, 0x76, 0x61, 0x63, 0x41, 0x75, 0x74, + 0x6f, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x10, 0x01, 0x12, 0x1d, + 0x0a, 0x19, 0x48, 0x76, 0x61, 0x63, 0x41, 0x75, 0x74, 0x6f, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x10, 0x02, 0x2a, 0xcd, 0x01, + 0x0a, 0x20, 0x43, 0x61, 0x62, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x74, 0x50, + 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x2b, 0x0a, 0x27, 0x43, 0x61, 0x62, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, + 0x65, 0x61, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, + 0x27, 0x0a, 0x23, 0x43, 0x61, 0x62, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x74, + 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x4f, 0x66, 0x66, 0x10, 0x01, 0x12, 0x26, 0x0a, 0x22, 0x43, 0x61, 0x62, 0x69, + 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x10, 0x02, + 0x12, 0x2b, 0x0a, 0x27, 0x43, 0x61, 0x62, 0x69, 0x6e, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, + 0x74, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x6f, 0x64, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x46, 0x61, 0x6e, 0x4f, 0x6e, 0x6c, 0x79, 0x10, 0x03, 0x2a, 0xd8, 0x01, + 0x0a, 0x22, 0x43, 0x6c, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, + 0x74, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x4c, + 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2d, 0x0a, 0x29, 0x43, 0x6c, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x4f, + 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x10, 0x00, 0x12, 0x2a, 0x0a, 0x26, 0x43, 0x6c, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x4f, 0x76, + 0x65, 0x72, 0x68, 0x65, 0x61, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x65, 0x6d, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x48, 0x69, 0x67, 0x68, 0x10, 0x01, 0x12, + 0x2c, 0x0a, 0x28, 0x43, 0x6c, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x65, + 0x61, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, + 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x4d, 0x65, 0x64, 0x69, 0x75, 0x6d, 0x10, 0x02, 0x12, 0x29, 0x0a, + 0x25, 0x43, 0x6c, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x4f, 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x74, + 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x6d, 0x70, 0x4c, 0x69, + 0x6d, 0x69, 0x74, 0x4c, 0x6f, 0x77, 0x10, 0x03, 0x2a, 0x9c, 0x01, 0x0a, 0x10, 0x44, 0x65, 0x66, + 0x72, 0x6f, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1b, 0x0a, + 0x17, 0x44, 0x65, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x44, 0x65, + 0x66, 0x72, 0x6f, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x66, + 0x66, 0x10, 0x01, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x65, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x4d, 0x6f, + 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x10, 0x02, 0x12, + 0x17, 0x0a, 0x13, 0x44, 0x65, 0x66, 0x72, 0x6f, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x4d, 0x61, 0x78, 0x10, 0x03, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x65, 0x66, 0x72, + 0x6f, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x41, 0x75, 0x74, 0x6f, + 0x44, 0x65, 0x66, 0x6f, 0x67, 0x10, 0x04, 0x2a, 0xb8, 0x01, 0x0a, 0x16, 0x43, 0x6c, 0x69, 0x6d, + 0x61, 0x74, 0x65, 0x4b, 0x65, 0x65, 0x70, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x43, 0x6c, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x65, + 0x70, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x6b, 0x6e, + 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x6c, 0x69, 0x6d, 0x61, 0x74, 0x65, + 0x4b, 0x65, 0x65, 0x70, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, + 0x66, 0x66, 0x10, 0x01, 0x12, 0x1c, 0x0a, 0x18, 0x43, 0x6c, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x4b, + 0x65, 0x65, 0x70, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x6e, + 0x10, 0x02, 0x12, 0x1d, 0x0a, 0x19, 0x43, 0x6c, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x65, + 0x70, 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x44, 0x6f, 0x67, 0x10, + 0x03, 0x12, 0x1f, 0x0a, 0x1b, 0x43, 0x6c, 0x69, 0x6d, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x65, 0x70, + 0x65, 0x72, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, 0x61, 0x72, 0x74, 0x79, + 0x10, 0x04, 0x2a, 0x9b, 0x01, 0x0a, 0x0e, 0x48, 0x76, 0x61, 0x63, 0x50, 0x6f, 0x77, 0x65, 0x72, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x76, 0x61, 0x63, 0x50, 0x6f, 0x77, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, + 0x12, 0x15, 0x0a, 0x11, 0x48, 0x76, 0x61, 0x63, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x4f, 0x66, 0x66, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x48, 0x76, 0x61, 0x63, 0x50, + 0x6f, 0x77, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x10, 0x02, 0x12, 0x1e, 0x0a, + 0x1a, 0x48, 0x76, 0x61, 0x63, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x50, + 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x03, 0x12, 0x21, 0x0a, + 0x1d, 0x48, 0x76, 0x61, 0x63, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, + 0x76, 0x65, 0x72, 0x68, 0x65, 0x61, 0x74, 0x50, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x10, 0x04, + 0x2a, 0xed, 0x01, 0x0a, 0x0b, 0x46, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x72, + 0x12, 0x16, 0x0a, 0x12, 0x46, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x72, 0x55, + 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x46, 0x61, 0x73, 0x74, + 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x72, 0x53, 0x75, 0x70, 0x65, 0x72, 0x63, 0x68, 0x61, 0x72, + 0x67, 0x65, 0x72, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x46, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, + 0x72, 0x67, 0x65, 0x72, 0x43, 0x48, 0x41, 0x64, 0x65, 0x4d, 0x4f, 0x10, 0x02, 0x12, 0x11, 0x0a, + 0x0d, 0x46, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x72, 0x47, 0x42, 0x10, 0x03, + 0x12, 0x1e, 0x0a, 0x1a, 0x46, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x72, 0x41, + 0x43, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x57, 0x69, 0x72, 0x65, 0x43, 0x41, 0x4e, 0x10, 0x04, + 0x12, 0x14, 0x0a, 0x10, 0x46, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x72, 0x43, + 0x6f, 0x6d, 0x62, 0x6f, 0x10, 0x05, 0x12, 0x1e, 0x0a, 0x1a, 0x46, 0x61, 0x73, 0x74, 0x43, 0x68, + 0x61, 0x72, 0x67, 0x65, 0x72, 0x4d, 0x43, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x57, 0x69, 0x72, + 0x65, 0x43, 0x41, 0x4e, 0x10, 0x06, 0x12, 0x14, 0x0a, 0x10, 0x46, 0x61, 0x73, 0x74, 0x43, 0x68, + 0x61, 0x72, 0x67, 0x65, 0x72, 0x4f, 0x74, 0x68, 0x65, 0x72, 0x10, 0x07, 0x12, 0x12, 0x0a, 0x0e, + 0x46, 0x61, 0x73, 0x74, 0x43, 0x68, 0x61, 0x72, 0x67, 0x65, 0x72, 0x53, 0x4e, 0x41, 0x10, 0x08, + 0x2a, 0x7f, 0x0a, 0x09, 0x43, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, + 0x10, 0x43, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, + 0x6e, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, + 0x49, 0x45, 0x43, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x43, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x53, 0x41, 0x45, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e, 0x43, 0x61, 0x62, 0x6c, 0x65, + 0x54, 0x79, 0x70, 0x65, 0x47, 0x42, 0x5f, 0x41, 0x43, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x43, + 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x47, 0x42, 0x5f, 0x44, 0x43, 0x10, 0x04, 0x12, + 0x10, 0x0a, 0x0c, 0x43, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x53, 0x4e, 0x41, 0x10, + 0x05, 0x2a, 0xb9, 0x01, 0x0a, 0x14, 0x54, 0x6f, 0x6e, 0x6e, 0x65, 0x61, 0x75, 0x54, 0x65, 0x6e, + 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x6f, + 0x6e, 0x6e, 0x65, 0x61, 0x75, 0x54, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x20, 0x0a, 0x1c, 0x54, + 0x6f, 0x6e, 0x6e, 0x65, 0x61, 0x75, 0x54, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x01, 0x12, 0x1e, 0x0a, + 0x1a, 0x54, 0x6f, 0x6e, 0x6e, 0x65, 0x61, 0x75, 0x54, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x4d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, 0x1e, 0x0a, + 0x1a, 0x54, 0x6f, 0x6e, 0x6e, 0x65, 0x61, 0x75, 0x54, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x10, 0x03, 0x12, 0x1e, 0x0a, + 0x1a, 0x54, 0x6f, 0x6e, 0x6e, 0x65, 0x61, 0x75, 0x54, 0x65, 0x6e, 0x74, 0x4d, 0x6f, 0x64, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x04, 0x2a, 0xc2, 0x01, + 0x0a, 0x14, 0x54, 0x6f, 0x6e, 0x6e, 0x65, 0x61, 0x75, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x6f, 0x6e, 0x6e, 0x65, 0x61, + 0x75, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x55, 0x6e, + 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x1f, 0x0a, 0x1b, 0x54, 0x6f, 0x6e, 0x6e, 0x65, + 0x61, 0x75, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x49, + 0x6e, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x54, 0x6f, 0x6e, 0x6e, + 0x65, 0x61, 0x75, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x43, 0x6c, 0x6f, 0x73, 0x65, 0x64, 0x10, 0x02, 0x12, 0x25, 0x0a, 0x21, 0x54, 0x6f, 0x6e, 0x6e, + 0x65, 0x61, 0x75, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x50, 0x61, 0x72, 0x74, 0x69, 0x61, 0x6c, 0x6c, 0x79, 0x4f, 0x70, 0x65, 0x6e, 0x10, 0x03, 0x12, + 0x21, 0x0a, 0x1d, 0x54, 0x6f, 0x6e, 0x6e, 0x65, 0x61, 0x75, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x46, 0x75, 0x6c, 0x6c, 0x79, 0x4f, 0x70, 0x65, 0x6e, + 0x10, 0x04, 0x2a, 0xe7, 0x01, 0x0a, 0x0f, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, + 0x10, 0x00, 0x12, 0x1b, 0x0a, 0x17, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x10, 0x01, 0x12, + 0x1e, 0x0a, 0x1a, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x48, 0x61, 0x6e, 0x64, 0x73, 0x68, 0x61, 0x6b, 0x69, 0x6e, 0x67, 0x10, 0x02, 0x12, + 0x17, 0x0a, 0x13, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x10, 0x03, 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x6f, 0x77, 0x65, + 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, + 0x65, 0x64, 0x10, 0x04, 0x12, 0x2a, 0x0a, 0x26, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x52, 0x65, + 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x53, 0x6f, 0x6f, 0x6e, 0x10, 0x05, + 0x12, 0x1a, 0x0a, 0x16, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x70, 0x65, 0x64, 0x10, 0x06, 0x2a, 0xd8, 0x02, 0x0a, + 0x1a, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x52, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x21, 0x50, + 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, + 0x10, 0x00, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x01, 0x12, 0x27, 0x0a, 0x23, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, + 0x68, 0x61, 0x72, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x53, 0x4f, 0x43, 0x54, 0x6f, 0x6f, 0x4c, 0x6f, 0x77, 0x10, 0x02, 0x12, + 0x23, 0x0a, 0x1f, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x53, 0x74, 0x6f, + 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x74, + 0x72, 0x79, 0x10, 0x03, 0x12, 0x23, 0x0a, 0x1f, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, + 0x72, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x46, 0x61, 0x75, 0x6c, 0x74, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e, 0x50, 0x6f, 0x77, + 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x73, 0x65, 0x72, 0x10, 0x05, 0x12, 0x2a, 0x0a, + 0x26, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x52, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x63, 0x6f, 0x6e, + 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6e, 0x67, 0x10, 0x06, 0x12, 0x2c, 0x0a, 0x28, 0x50, 0x6f, 0x77, + 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x10, 0x07, 0x2a, 0x91, 0x01, 0x0a, 0x14, 0x50, 0x6f, 0x77, 0x65, + 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1f, 0x0a, 0x1b, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x54, 0x79, + 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x55, 0x6e, 0x6b, 0x6e, 0x6f, 0x77, 0x6e, 0x10, + 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4e, 0x6f, 0x6e, 0x65, 0x10, 0x01, 0x12, + 0x1c, 0x0a, 0x18, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x4c, 0x6f, 0x61, 0x64, 0x10, 0x02, 0x12, 0x1c, 0x0a, + 0x18, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x73, 0x68, 0x61, 0x72, 0x65, 0x54, 0x79, 0x70, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x48, 0x6f, 0x6d, 0x65, 0x10, 0x03, 0x2a, 0x95, 0x02, 0x0a, 0x0c, + 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a, 0x13, + 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x55, 0x6e, 0x6b, 0x6e, + 0x6f, 0x77, 0x6e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x66, 0x66, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x44, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x44, 0x69, 0x6d, 0x10, 0x02, 0x12, + 0x19, 0x0a, 0x15, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x6f, 0x72, 0x79, 0x10, 0x03, 0x12, 0x12, 0x0a, 0x0e, 0x44, 0x69, + 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x6e, 0x10, 0x04, 0x12, 0x17, + 0x0a, 0x13, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x44, 0x72, + 0x69, 0x76, 0x69, 0x6e, 0x67, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x72, 0x67, 0x69, 0x6e, 0x67, 0x10, + 0x06, 0x12, 0x14, 0x0a, 0x10, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x4c, 0x6f, 0x63, 0x6b, 0x10, 0x07, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x69, 0x73, 0x70, 0x6c, + 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x53, 0x65, 0x6e, 0x74, 0x72, 0x79, 0x10, 0x08, 0x12, + 0x13, 0x0a, 0x0f, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x44, + 0x6f, 0x67, 0x10, 0x09, 0x12, 0x1d, 0x0a, 0x19, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x6d, 0x65, 0x6e, + 0x74, 0x10, 0x0a, 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 ( @@ -3424,41 +5081,56 @@ 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, 22) -var file_protos_vehicle_data_proto_msgTypes = make([]protoimpl.MessageInfo, 6) +var file_protos_vehicle_data_proto_enumTypes = make([]protoimpl.EnumInfo, 36) +var file_protos_vehicle_data_proto_msgTypes = make([]protoimpl.MessageInfo, 7) var file_protos_vehicle_data_proto_goTypes = []interface{}{ - (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 - (DriveInverterState)(0), // 16: telemetry.vehicle_data.DriveInverterState - (HvilStatus)(0), // 17: telemetry.vehicle_data.HvilStatus - (WindowState)(0), // 18: telemetry.vehicle_data.WindowState - (SeatFoldPosition)(0), // 19: telemetry.vehicle_data.SeatFoldPosition - (TractorAirStatus)(0), // 20: telemetry.vehicle_data.TractorAirStatus - (TrailerAirStatus)(0), // 21: telemetry.vehicle_data.TrailerAirStatus - (*LocationValue)(nil), // 22: telemetry.vehicle_data.LocationValue - (*Doors)(nil), // 23: telemetry.vehicle_data.Doors - (*Time)(nil), // 24: telemetry.vehicle_data.Time - (*Value)(nil), // 25: telemetry.vehicle_data.Value - (*Datum)(nil), // 26: telemetry.vehicle_data.Datum - (*Payload)(nil), // 27: telemetry.vehicle_data.Payload - (*timestamppb.Timestamp)(nil), // 28: 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 + (DriveInverterState)(0), // 16: telemetry.vehicle_data.DriveInverterState + (HvilStatus)(0), // 17: telemetry.vehicle_data.HvilStatus + (WindowState)(0), // 18: telemetry.vehicle_data.WindowState + (SeatFoldPosition)(0), // 19: telemetry.vehicle_data.SeatFoldPosition + (TractorAirStatus)(0), // 20: telemetry.vehicle_data.TractorAirStatus + (TrailerAirStatus)(0), // 21: telemetry.vehicle_data.TrailerAirStatus + (HvacAutoModeState)(0), // 22: telemetry.vehicle_data.HvacAutoModeState + (CabinOverheatProtectionModeState)(0), // 23: telemetry.vehicle_data.CabinOverheatProtectionModeState + (ClimateOverheatProtectionTempLimit)(0), // 24: telemetry.vehicle_data.ClimateOverheatProtectionTempLimit + (DefrostModeState)(0), // 25: telemetry.vehicle_data.DefrostModeState + (ClimateKeeperModeState)(0), // 26: telemetry.vehicle_data.ClimateKeeperModeState + (HvacPowerState)(0), // 27: telemetry.vehicle_data.HvacPowerState + (FastCharger)(0), // 28: telemetry.vehicle_data.FastCharger + (CableType)(0), // 29: telemetry.vehicle_data.CableType + (TonneauTentModeState)(0), // 30: telemetry.vehicle_data.TonneauTentModeState + (TonneauPositionState)(0), // 31: telemetry.vehicle_data.TonneauPositionState + (PowershareState)(0), // 32: telemetry.vehicle_data.PowershareState + (PowershareStopReasonStatus)(0), // 33: telemetry.vehicle_data.PowershareStopReasonStatus + (PowershareTypeStatus)(0), // 34: telemetry.vehicle_data.PowershareTypeStatus + (DisplayState)(0), // 35: telemetry.vehicle_data.DisplayState + (*LocationValue)(nil), // 36: telemetry.vehicle_data.LocationValue + (*Doors)(nil), // 37: telemetry.vehicle_data.Doors + (*TireLocation)(nil), // 38: telemetry.vehicle_data.TireLocation + (*Time)(nil), // 39: telemetry.vehicle_data.Time + (*Value)(nil), // 40: telemetry.vehicle_data.Value + (*Datum)(nil), // 41: telemetry.vehicle_data.Datum + (*Payload)(nil), // 42: telemetry.vehicle_data.Payload + (*timestamppb.Timestamp)(nil), // 43: google.protobuf.Timestamp } var file_protos_vehicle_data_proto_depIdxs = []int32{ - 22, // 0: telemetry.vehicle_data.Value.location_value:type_name -> telemetry.vehicle_data.LocationValue + 36, // 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 @@ -3470,7 +5142,7 @@ var file_protos_vehicle_data_proto_depIdxs = []int32{ 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 - 23, // 12: telemetry.vehicle_data.Value.door_value:type_name -> telemetry.vehicle_data.Doors + 37, // 12: telemetry.vehicle_data.Value.door_value:type_name -> telemetry.vehicle_data.Doors 16, // 13: telemetry.vehicle_data.Value.drive_inverter_state_value:type_name -> telemetry.vehicle_data.DriveInverterState 17, // 14: telemetry.vehicle_data.Value.hvil_status_value:type_name -> telemetry.vehicle_data.HvilStatus 18, // 15: telemetry.vehicle_data.Value.window_state_value:type_name -> telemetry.vehicle_data.WindowState @@ -3480,17 +5152,32 @@ var file_protos_vehicle_data_proto_depIdxs = []int32{ 5, // 19: telemetry.vehicle_data.Value.forward_collision_sensitivity_value:type_name -> telemetry.vehicle_data.ForwardCollisionSensitivity 6, // 20: telemetry.vehicle_data.Value.guest_mode_mobile_access_value:type_name -> telemetry.vehicle_data.GuestModeMobileAccess 21, // 21: telemetry.vehicle_data.Value.trailer_air_status_value:type_name -> telemetry.vehicle_data.TrailerAirStatus - 24, // 22: telemetry.vehicle_data.Value.time_value:type_name -> telemetry.vehicle_data.Time + 39, // 22: telemetry.vehicle_data.Value.time_value:type_name -> telemetry.vehicle_data.Time 2, // 23: telemetry.vehicle_data.Value.detailed_charge_state_value:type_name -> telemetry.vehicle_data.DetailedChargeStateValue - 0, // 24: telemetry.vehicle_data.Datum.key:type_name -> telemetry.vehicle_data.Field - 25, // 25: telemetry.vehicle_data.Datum.value:type_name -> telemetry.vehicle_data.Value - 26, // 26: telemetry.vehicle_data.Payload.data:type_name -> telemetry.vehicle_data.Datum - 28, // 27: telemetry.vehicle_data.Payload.created_at:type_name -> google.protobuf.Timestamp - 28, // [28:28] is the sub-list for method output_type - 28, // [28:28] is the sub-list for method input_type - 28, // [28:28] is the sub-list for extension type_name - 28, // [28:28] is the sub-list for extension extendee - 0, // [0:28] is the sub-list for field type_name + 22, // 24: telemetry.vehicle_data.Value.hvac_auto_mode_value:type_name -> telemetry.vehicle_data.HvacAutoModeState + 23, // 25: telemetry.vehicle_data.Value.cabin_overheat_protection_mode_value:type_name -> telemetry.vehicle_data.CabinOverheatProtectionModeState + 24, // 26: telemetry.vehicle_data.Value.cabin_overheat_protection_temperature_limit_value:type_name -> telemetry.vehicle_data.ClimateOverheatProtectionTempLimit + 25, // 27: telemetry.vehicle_data.Value.defrost_mode_value:type_name -> telemetry.vehicle_data.DefrostModeState + 26, // 28: telemetry.vehicle_data.Value.climate_keeper_mode_value:type_name -> telemetry.vehicle_data.ClimateKeeperModeState + 27, // 29: telemetry.vehicle_data.Value.hvac_power_value:type_name -> telemetry.vehicle_data.HvacPowerState + 38, // 30: telemetry.vehicle_data.Value.tire_location_value:type_name -> telemetry.vehicle_data.TireLocation + 28, // 31: telemetry.vehicle_data.Value.fast_charger_value:type_name -> telemetry.vehicle_data.FastCharger + 29, // 32: telemetry.vehicle_data.Value.cable_type_value:type_name -> telemetry.vehicle_data.CableType + 30, // 33: telemetry.vehicle_data.Value.tonneau_tent_mode_value:type_name -> telemetry.vehicle_data.TonneauTentModeState + 31, // 34: telemetry.vehicle_data.Value.tonneau_position_value:type_name -> telemetry.vehicle_data.TonneauPositionState + 34, // 35: telemetry.vehicle_data.Value.powershare_type_value:type_name -> telemetry.vehicle_data.PowershareTypeStatus + 32, // 36: telemetry.vehicle_data.Value.powershare_state_value:type_name -> telemetry.vehicle_data.PowershareState + 33, // 37: telemetry.vehicle_data.Value.powershare_stop_reason_value:type_name -> telemetry.vehicle_data.PowershareStopReasonStatus + 35, // 38: telemetry.vehicle_data.Value.display_state_value:type_name -> telemetry.vehicle_data.DisplayState + 0, // 39: telemetry.vehicle_data.Datum.key:type_name -> telemetry.vehicle_data.Field + 40, // 40: telemetry.vehicle_data.Datum.value:type_name -> telemetry.vehicle_data.Value + 41, // 41: telemetry.vehicle_data.Payload.data:type_name -> telemetry.vehicle_data.Datum + 43, // 42: telemetry.vehicle_data.Payload.created_at:type_name -> google.protobuf.Timestamp + 43, // [43:43] is the sub-list for method output_type + 43, // [43:43] is the sub-list for method input_type + 43, // [43:43] is the sub-list for extension type_name + 43, // [43:43] is the sub-list for extension extendee + 0, // [0:43] is the sub-list for field type_name } func init() { file_protos_vehicle_data_proto_init() } @@ -3524,7 +5211,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.(*Time); i { + switch v := v.(*TireLocation); i { case 0: return &v.state case 1: @@ -3536,7 +5223,7 @@ 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 { + switch v := v.(*Time); i { case 0: return &v.state case 1: @@ -3548,7 +5235,7 @@ func file_protos_vehicle_data_proto_init() { } } file_protos_vehicle_data_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Datum); i { + switch v := v.(*Value); i { case 0: return &v.state case 1: @@ -3560,6 +5247,18 @@ func file_protos_vehicle_data_proto_init() { } } file_protos_vehicle_data_proto_msgTypes[5].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[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Payload); i { case 0: return &v.state @@ -3572,7 +5271,7 @@ func file_protos_vehicle_data_proto_init() { } } } - file_protos_vehicle_data_proto_msgTypes[3].OneofWrappers = []interface{}{ + file_protos_vehicle_data_proto_msgTypes[4].OneofWrappers = []interface{}{ (*Value_StringValue)(nil), (*Value_IntValue)(nil), (*Value_LongValue)(nil), @@ -3604,14 +5303,29 @@ func file_protos_vehicle_data_proto_init() { (*Value_TrailerAirStatusValue)(nil), (*Value_TimeValue)(nil), (*Value_DetailedChargeStateValue)(nil), + (*Value_HvacAutoModeValue)(nil), + (*Value_CabinOverheatProtectionModeValue)(nil), + (*Value_CabinOverheatProtectionTemperatureLimitValue)(nil), + (*Value_DefrostModeValue)(nil), + (*Value_ClimateKeeperModeValue)(nil), + (*Value_HvacPowerValue)(nil), + (*Value_TireLocationValue)(nil), + (*Value_FastChargerValue)(nil), + (*Value_CableTypeValue)(nil), + (*Value_TonneauTentModeValue)(nil), + (*Value_TonneauPositionValue)(nil), + (*Value_PowershareTypeValue)(nil), + (*Value_PowershareStateValue)(nil), + (*Value_PowershareStopReasonValue)(nil), + (*Value_DisplayStateValue)(nil), } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_protos_vehicle_data_proto_rawDesc, - NumEnums: 22, - NumMessages: 6, + NumEnums: 36, + NumMessages: 7, NumExtensions: 0, NumServices: 0, }, diff --git a/protos/vehicle_data.proto b/protos/vehicle_data.proto index abef65f..855db4d 100644 --- a/protos/vehicle_data.proto +++ b/protos/vehicle_data.proto @@ -188,7 +188,60 @@ enum Field { Experimental_15 = 178; // fields below here are always returned typed + // field 179 is first available in firmware version 2024.38 + DetailedChargeState = 179; + + // fields 180-228 is first available in firmware version 2024.44.25 + + CabinOverheatProtectionMode = 180; + CabinOverheatProtectionTemperatureLimit = 181; + CenterDisplay = 182; + ChargePortDoorOpen = 183; + ChargingCableType = 185; + ClimateKeeperMode = 186; + DefrostForPreconditioning = 187; + DefrostMode = 188; + EfficiencyPackage = 189; + EstimatedHoursToChargeTermination = 190; + EuropeVehicle = 191; + ExpectedEnergyPercentAtTripArrival = 192; + FastChargerType = 193; + HomelinkDeviceCount = 194; + HomelinkNearby = 195; + HvacACEnabled = 196; + HvacAutoMode = 197; + HvacFanSpeed = 198; + HvacFanStatus = 199; + HvacLeftTemperatureRequest = 200; + HvacPower = 201; + HvacRightTemperatureRequest = 202; + HvacSteeringWheelHeatAuto = 203; + HvacSteeringWheelHeatLevel = 204; + OffroadLightbarPresent = 205; + PowershareHoursLeft = 206; + PowershareInstantaneousPowerKW = 207; + PowershareStatus = 208; + PowershareStopReason = 209; + PowershareType = 210; + RearDisplayHvacEnabled = 211; + RearSeatHeaters = 212; + RemoteStartEnabled = 213; + RightHandDrive = 214; + RouteTrafficMinutesDelay = 215; + SoftwareUpdateDownloadPercentComplete = 216; + SoftwareUpdateExpectedDurationMinutes = 217; + SoftwareUpdateInstallationPercentComplete = 218; + SoftwareUpdateScheduledStartTime = 219; + SoftwareUpdateVersion = 220; + TonneauOpenPercent = 221; + TonneauPosition = 222; + TonneauTentMode = 223; + TpmsHardWarnings = 224; + TpmsSoftWarnings = 225; + ValetModeEnabled = 226; + WheelType = 227; + WiperHeatEnabled = 228; } // ChargingState is deprecated and not used @@ -409,6 +462,142 @@ enum TrailerAirStatus { TrailerAirStatusExhausted = 7; } +enum HvacAutoModeState { + HvacAutoModeStateUnknown = 0; + HvacAutoModeStateOn = 1; + HvacAutoModeStateOverride = 2; +} + +enum CabinOverheatProtectionModeState { + CabinOverheatProtectionModeStateUnknown = 0; + CabinOverheatProtectionModeStateOff = 1; + CabinOverheatProtectionModeStateOn = 2; + CabinOverheatProtectionModeStateFanOnly = 3; +} + +enum ClimateOverheatProtectionTempLimit { + ClimateOverheatProtectionTempLimitUnknown = 0; + ClimateOverheatProtectionTempLimitHigh = 1; + ClimateOverheatProtectionTempLimitMedium = 2; + ClimateOverheatProtectionTempLimitLow = 3; +} + +enum DefrostModeState { + DefrostModeStateUnknown = 0; + DefrostModeStateOff = 1; + DefrostModeStateNormal = 2; + DefrostModeStateMax = 3; + DefrostModeStateAutoDefog = 4; +} + +enum ClimateKeeperModeState { + ClimateKeeperModeStateUnknown = 0; + ClimateKeeperModeStateOff = 1; + ClimateKeeperModeStateOn = 2; + ClimateKeeperModeStateDog = 3; + ClimateKeeperModeStateParty = 4; +} + +enum HvacPowerState { + HvacPowerStateUnknown = 0; + HvacPowerStateOff = 1; + HvacPowerStateOn = 2; + HvacPowerStatePrecondition = 3; + HvacPowerStateOverheatProtect = 4; +} + +enum FastCharger { + FastChargerUnknown = 0; + FastChargerSupercharger = 1; + FastChargerCHAdeMO = 2; + FastChargerGB = 3; + FastChargerACSingleWireCAN = 4; + FastChargerCombo = 5; + FastChargerMCSingleWireCAN = 6; + FastChargerOther = 7; + FastChargerSNA = 8; +} + +enum CableType { + CableTypeUnknown = 0; + CableTypeIEC = 1; + CableTypeSAE = 2; + CableTypeGB_AC = 3; + CableTypeGB_DC = 4; + CableTypeSNA = 5; +} + +enum TonneauTentModeState { + TonneauTentModeStateUnknown = 0; + TonneauTentModeStateInactive = 1; + TonneauTentModeStateMoving = 2; + TonneauTentModeStateFailed = 3; + TonneauTentModeStateActive = 4; +} + +enum TonneauPositionState { + TonneauPositionStateUnknown = 0; + TonneauPositionStateInvalid = 1; + TonneauPositionStateClosed = 2; + TonneauPositionStatePartiallyOpen = 3; + TonneauPositionStateFullyOpen = 4; +} + +enum PowershareState { + PowershareStateUnknown = 0; + PowershareStateInactive = 1; + PowershareStateHandshaking = 2; + PowershareStateInit = 3; + PowershareStateEnabled = 4; + PowershareStateEnabledReconnectingSoon = 5; + PowershareStateStopped = 6; +} +enum PowershareStopReasonStatus { + PowershareStopReasonStatusUnknown = 0; + PowershareStopReasonStatusNone = 1; + PowershareStopReasonStatusSOCTooLow = 2; + PowershareStopReasonStatusRetry = 3; + PowershareStopReasonStatusFault = 4; + PowershareStopReasonStatusUser = 5; + PowershareStopReasonStatusReconnecting = 6; + PowershareStopReasonStatusAuthentication = 7; +} + +enum PowershareTypeStatus { + PowershareTypeStatusUnknown = 0; + PowershareTypeStatusNone = 1; + PowershareTypeStatusLoad = 2; + PowershareTypeStatusHome = 3; +} + +enum DisplayState { + DisplayStateUnknown = 0; + DisplayStateOff = 1; + DisplayStateDim = 2; + DisplayStateAccessory = 3; + DisplayStateOn = 4; + DisplayStateDriving = 5; + DisplayStateCharging = 6; + DisplayStateLock = 7; + DisplayStateSentry = 8; + DisplayStateDog = 9; + DisplayStateEntertainment = 10; +} + +message TireLocation { + bool front_left = 1; + bool front_right = 2; + bool rear_left = 3; + bool rear_right = 4; + + bool semi_middle_axle_left_2 = 5; + bool semi_middle_axle_right_2 = 6; + bool semi_rear_axle_left = 7; + bool semi_rear_axle_right = 8; + bool semi_rear_axle_left_2 = 9; + bool semi_rear_axle_right_2 = 10; +} + message Time { int32 hour = 1; int32 minute = 2; @@ -451,6 +640,21 @@ message Value { TrailerAirStatus trailer_air_status_value = 30; Time time_value = 31; DetailedChargeStateValue detailed_charge_state_value = 32; + HvacAutoModeState hvac_auto_mode_value = 33; + CabinOverheatProtectionModeState cabin_overheat_protection_mode_value = 34; + ClimateOverheatProtectionTempLimit cabin_overheat_protection_temperature_limit_value = 35; + DefrostModeState defrost_mode_value = 36; + ClimateKeeperModeState climate_keeper_mode_value = 37; + HvacPowerState hvac_power_value = 38; + TireLocation tire_location_value = 39; + FastCharger fast_charger_value = 40; + CableType cable_type_value = 41; + TonneauTentModeState tonneau_tent_mode_value = 42; + TonneauPositionState tonneau_position_value = 43; + PowershareTypeStatus powershare_type_value = 44; + PowershareState powershare_state_value = 45; + PowershareStopReasonStatus powershare_stop_reason_value = 46; + DisplayState display_state_value = 47; } }