// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.34.2
// 	protoc        v3.21.12
// source: spacex_api/device/dish.proto

package device

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	account_shard "github.com/clarkzjw/starlink-grpc-golang/pkg/spacex.com/api/device/account_shard"
	ut_disablement_codes "github.com/clarkzjw/starlink-grpc-golang/pkg/spacex.com/api/satellites/network/ut_disablement_codes"
	ratelimitreason "github.com/clarkzjw/starlink-grpc-golang/pkg/spacex.com/api/telemetron/public/integrations/ratelimitreason"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

type UserMobilityClass int32

const (
	UserMobilityClass_STATIONARY UserMobilityClass = 0
	UserMobilityClass_NOMADIC    UserMobilityClass = 1
	UserMobilityClass_MOBILE     UserMobilityClass = 2
)

// Enum value maps for UserMobilityClass.
var (
	UserMobilityClass_name = map[int32]string{
		0: "STATIONARY",
		1: "NOMADIC",
		2: "MOBILE",
	}
	UserMobilityClass_value = map[string]int32{
		"STATIONARY": 0,
		"NOMADIC":    1,
		"MOBILE":     2,
	}
)

func (x UserMobilityClass) Enum() *UserMobilityClass {
	p := new(UserMobilityClass)
	*p = x
	return p
}

func (x UserMobilityClass) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (UserMobilityClass) Descriptor() protoreflect.EnumDescriptor {
	return file_spacex_api_device_dish_proto_enumTypes[0].Descriptor()
}

func (UserMobilityClass) Type() protoreflect.EnumType {
	return &file_spacex_api_device_dish_proto_enumTypes[0]
}

func (x UserMobilityClass) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use UserMobilityClass.Descriptor instead.
func (UserMobilityClass) EnumDescriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{0}
}

type ObstructionMapReferenceFrame int32

const (
	ObstructionMapReferenceFrame_FRAME_UNKNOWN ObstructionMapReferenceFrame = 0
	ObstructionMapReferenceFrame_FRAME_EARTH   ObstructionMapReferenceFrame = 1
	ObstructionMapReferenceFrame_FRAME_UT      ObstructionMapReferenceFrame = 2
)

// Enum value maps for ObstructionMapReferenceFrame.
var (
	ObstructionMapReferenceFrame_name = map[int32]string{
		0: "FRAME_UNKNOWN",
		1: "FRAME_EARTH",
		2: "FRAME_UT",
	}
	ObstructionMapReferenceFrame_value = map[string]int32{
		"FRAME_UNKNOWN": 0,
		"FRAME_EARTH":   1,
		"FRAME_UT":      2,
	}
)

func (x ObstructionMapReferenceFrame) Enum() *ObstructionMapReferenceFrame {
	p := new(ObstructionMapReferenceFrame)
	*p = x
	return p
}

func (x ObstructionMapReferenceFrame) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ObstructionMapReferenceFrame) Descriptor() protoreflect.EnumDescriptor {
	return file_spacex_api_device_dish_proto_enumTypes[1].Descriptor()
}

func (ObstructionMapReferenceFrame) Type() protoreflect.EnumType {
	return &file_spacex_api_device_dish_proto_enumTypes[1]
}

func (x ObstructionMapReferenceFrame) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ObstructionMapReferenceFrame.Descriptor instead.
func (ObstructionMapReferenceFrame) EnumDescriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{1}
}

type SoftwareUpdateState int32

const (
	SoftwareUpdateState_SOFTWARE_UPDATE_STATE_UNKNOWN SoftwareUpdateState = 0
	SoftwareUpdateState_IDLE                          SoftwareUpdateState = 1
	SoftwareUpdateState_FETCHING                      SoftwareUpdateState = 2
	SoftwareUpdateState_PRE_CHECK                     SoftwareUpdateState = 3
	SoftwareUpdateState_WRITING                       SoftwareUpdateState = 4
	SoftwareUpdateState_POST_CHECK                    SoftwareUpdateState = 5
	SoftwareUpdateState_REBOOT_REQUIRED               SoftwareUpdateState = 6
	SoftwareUpdateState_DISABLED                      SoftwareUpdateState = 7
	SoftwareUpdateState_FAULTED                       SoftwareUpdateState = 8
)

// Enum value maps for SoftwareUpdateState.
var (
	SoftwareUpdateState_name = map[int32]string{
		0: "SOFTWARE_UPDATE_STATE_UNKNOWN",
		1: "IDLE",
		2: "FETCHING",
		3: "PRE_CHECK",
		4: "WRITING",
		5: "POST_CHECK",
		6: "REBOOT_REQUIRED",
		7: "DISABLED",
		8: "FAULTED",
	}
	SoftwareUpdateState_value = map[string]int32{
		"SOFTWARE_UPDATE_STATE_UNKNOWN": 0,
		"IDLE":                          1,
		"FETCHING":                      2,
		"PRE_CHECK":                     3,
		"WRITING":                       4,
		"POST_CHECK":                    5,
		"REBOOT_REQUIRED":               6,
		"DISABLED":                      7,
		"FAULTED":                       8,
	}
)

func (x SoftwareUpdateState) Enum() *SoftwareUpdateState {
	p := new(SoftwareUpdateState)
	*p = x
	return p
}

func (x SoftwareUpdateState) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (SoftwareUpdateState) Descriptor() protoreflect.EnumDescriptor {
	return file_spacex_api_device_dish_proto_enumTypes[2].Descriptor()
}

func (SoftwareUpdateState) Type() protoreflect.EnumType {
	return &file_spacex_api_device_dish_proto_enumTypes[2]
}

func (x SoftwareUpdateState) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use SoftwareUpdateState.Descriptor instead.
func (SoftwareUpdateState) EnumDescriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{2}
}

type UserClassOfService int32

const (
	UserClassOfService_UNKNOWN_USER_CLASS_OF_SERVICE UserClassOfService = 0
	UserClassOfService_CONSUMER                      UserClassOfService = 1
	UserClassOfService_BUSINESS                      UserClassOfService = 2
	UserClassOfService_BUSINESS_PLUS                 UserClassOfService = 3
	UserClassOfService_COMMERCIAL_AVIATION           UserClassOfService = 4
)

// Enum value maps for UserClassOfService.
var (
	UserClassOfService_name = map[int32]string{
		0: "UNKNOWN_USER_CLASS_OF_SERVICE",
		1: "CONSUMER",
		2: "BUSINESS",
		3: "BUSINESS_PLUS",
		4: "COMMERCIAL_AVIATION",
	}
	UserClassOfService_value = map[string]int32{
		"UNKNOWN_USER_CLASS_OF_SERVICE": 0,
		"CONSUMER":                      1,
		"BUSINESS":                      2,
		"BUSINESS_PLUS":                 3,
		"COMMERCIAL_AVIATION":           4,
	}
)

func (x UserClassOfService) Enum() *UserClassOfService {
	p := new(UserClassOfService)
	*p = x
	return p
}

func (x UserClassOfService) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (UserClassOfService) Descriptor() protoreflect.EnumDescriptor {
	return file_spacex_api_device_dish_proto_enumTypes[3].Descriptor()
}

func (UserClassOfService) Type() protoreflect.EnumType {
	return &file_spacex_api_device_dish_proto_enumTypes[3]
}

func (x UserClassOfService) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use UserClassOfService.Descriptor instead.
func (UserClassOfService) EnumDescriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{3}
}

type HasActuators int32

const (
	HasActuators_HAS_ACTUATORS_UNKNOWN HasActuators = 0
	HasActuators_HAS_ACTUATORS_YES     HasActuators = 1
	HasActuators_HAS_ACTUATORS_NO      HasActuators = 2
)

// Enum value maps for HasActuators.
var (
	HasActuators_name = map[int32]string{
		0: "HAS_ACTUATORS_UNKNOWN",
		1: "HAS_ACTUATORS_YES",
		2: "HAS_ACTUATORS_NO",
	}
	HasActuators_value = map[string]int32{
		"HAS_ACTUATORS_UNKNOWN": 0,
		"HAS_ACTUATORS_YES":     1,
		"HAS_ACTUATORS_NO":      2,
	}
)

func (x HasActuators) Enum() *HasActuators {
	p := new(HasActuators)
	*p = x
	return p
}

func (x HasActuators) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (HasActuators) Descriptor() protoreflect.EnumDescriptor {
	return file_spacex_api_device_dish_proto_enumTypes[4].Descriptor()
}

func (HasActuators) Type() protoreflect.EnumType {
	return &file_spacex_api_device_dish_proto_enumTypes[4]
}

func (x HasActuators) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use HasActuators.Descriptor instead.
func (HasActuators) EnumDescriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{4}
}

type ActuatorState int32

const (
	ActuatorState_ACTUATOR_STATE_IDLE                     ActuatorState = 0
	ActuatorState_ACTUATOR_STATE_FULL_TILT                ActuatorState = 1
	ActuatorState_ACTUATOR_STATE_ROTATE                   ActuatorState = 2
	ActuatorState_ACTUATOR_STATE_TILT                     ActuatorState = 3
	ActuatorState_ACTUATOR_STATE_UNWRAP_POSITIVE          ActuatorState = 4
	ActuatorState_ACTUATOR_STATE_UNWRAP_NEGATIVE          ActuatorState = 5
	ActuatorState_ACTUATOR_STATE_TILT_TO_STOWED           ActuatorState = 6
	ActuatorState_ACTUATOR_STATE_FAULTED                  ActuatorState = 7
	ActuatorState_ACTUATOR_STATE_WAIT_TIL_STATIC          ActuatorState = 8
	ActuatorState_ACTUATOR_STATE_DRIVE_TO_MOBILE_POSITION ActuatorState = 9
	ActuatorState_ACTUATOR_STATE_MOBILE_WAIT              ActuatorState = 10
)

// Enum value maps for ActuatorState.
var (
	ActuatorState_name = map[int32]string{
		0:  "ACTUATOR_STATE_IDLE",
		1:  "ACTUATOR_STATE_FULL_TILT",
		2:  "ACTUATOR_STATE_ROTATE",
		3:  "ACTUATOR_STATE_TILT",
		4:  "ACTUATOR_STATE_UNWRAP_POSITIVE",
		5:  "ACTUATOR_STATE_UNWRAP_NEGATIVE",
		6:  "ACTUATOR_STATE_TILT_TO_STOWED",
		7:  "ACTUATOR_STATE_FAULTED",
		8:  "ACTUATOR_STATE_WAIT_TIL_STATIC",
		9:  "ACTUATOR_STATE_DRIVE_TO_MOBILE_POSITION",
		10: "ACTUATOR_STATE_MOBILE_WAIT",
	}
	ActuatorState_value = map[string]int32{
		"ACTUATOR_STATE_IDLE":                     0,
		"ACTUATOR_STATE_FULL_TILT":                1,
		"ACTUATOR_STATE_ROTATE":                   2,
		"ACTUATOR_STATE_TILT":                     3,
		"ACTUATOR_STATE_UNWRAP_POSITIVE":          4,
		"ACTUATOR_STATE_UNWRAP_NEGATIVE":          5,
		"ACTUATOR_STATE_TILT_TO_STOWED":           6,
		"ACTUATOR_STATE_FAULTED":                  7,
		"ACTUATOR_STATE_WAIT_TIL_STATIC":          8,
		"ACTUATOR_STATE_DRIVE_TO_MOBILE_POSITION": 9,
		"ACTUATOR_STATE_MOBILE_WAIT":              10,
	}
)

func (x ActuatorState) Enum() *ActuatorState {
	p := new(ActuatorState)
	*p = x
	return p
}

func (x ActuatorState) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (ActuatorState) Descriptor() protoreflect.EnumDescriptor {
	return file_spacex_api_device_dish_proto_enumTypes[5].Descriptor()
}

func (ActuatorState) Type() protoreflect.EnumType {
	return &file_spacex_api_device_dish_proto_enumTypes[5]
}

func (x ActuatorState) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use ActuatorState.Descriptor instead.
func (ActuatorState) EnumDescriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{5}
}

type AttitudeEstimationState int32

const (
	AttitudeEstimationState_FILTER_RESET       AttitudeEstimationState = 0
	AttitudeEstimationState_FILTER_UNCONVERGED AttitudeEstimationState = 1
	AttitudeEstimationState_FILTER_CONVERGED   AttitudeEstimationState = 2
	AttitudeEstimationState_FILTER_FAULTED     AttitudeEstimationState = 3
	AttitudeEstimationState_FILTER_INVALID     AttitudeEstimationState = 4
)

// Enum value maps for AttitudeEstimationState.
var (
	AttitudeEstimationState_name = map[int32]string{
		0: "FILTER_RESET",
		1: "FILTER_UNCONVERGED",
		2: "FILTER_CONVERGED",
		3: "FILTER_FAULTED",
		4: "FILTER_INVALID",
	}
	AttitudeEstimationState_value = map[string]int32{
		"FILTER_RESET":       0,
		"FILTER_UNCONVERGED": 1,
		"FILTER_CONVERGED":   2,
		"FILTER_FAULTED":     3,
		"FILTER_INVALID":     4,
	}
)

func (x AttitudeEstimationState) Enum() *AttitudeEstimationState {
	p := new(AttitudeEstimationState)
	*p = x
	return p
}

func (x AttitudeEstimationState) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (AttitudeEstimationState) Descriptor() protoreflect.EnumDescriptor {
	return file_spacex_api_device_dish_proto_enumTypes[6].Descriptor()
}

func (AttitudeEstimationState) Type() protoreflect.EnumType {
	return &file_spacex_api_device_dish_proto_enumTypes[6]
}

func (x AttitudeEstimationState) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use AttitudeEstimationState.Descriptor instead.
func (AttitudeEstimationState) EnumDescriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{6}
}

type RebootReason int32

const (
	RebootReason_REBOOT_REASON_NONE                   RebootReason = 0
	RebootReason_REBOOT_REASON_MANUAL                 RebootReason = 1
	RebootReason_REBOOT_REASON_LOSS_OF_COMM           RebootReason = 2
	RebootReason_REBOOT_REASON_SWUPDATE_NOW           RebootReason = 3
	RebootReason_REBOOT_REASON_SWUPDATE_SCHEDULED     RebootReason = 4
	RebootReason_REBOOT_REASON_APP                    RebootReason = 5
	RebootReason_REBOOT_REASON_EMC                    RebootReason = 6
	RebootReason_REBOOT_REASON_FACTORY_RESET          RebootReason = 7
	RebootReason_REBOOT_REASON_TEST_CASE              RebootReason = 8
	RebootReason_REBOOT_REASON_THERMAL_POWER_CUT      RebootReason = 9
	RebootReason_REBOOT_REASON_CRITICAL_PROCESS_DIED  RebootReason = 10
	RebootReason_REBOOT_REASON_NO_RF_READY            RebootReason = 11
	RebootReason_REBOOT_REASON_POSTPONED_LOSS_OF_COMM RebootReason = 12
	RebootReason_REBOOT_REASON_SWUPDATE_STATIONARY    RebootReason = 13
	RebootReason_REBOOT_REASON_AAP_CRASH              RebootReason = 14
	RebootReason_REBOOT_REASON_XP70_SACS              RebootReason = 15
	RebootReason_REBOOT_REASON_INE_FAILED             RebootReason = 16
	RebootReason_REBOOT_REASON_KERNEL_TAINTED         RebootReason = 17
)

// Enum value maps for RebootReason.
var (
	RebootReason_name = map[int32]string{
		0:  "REBOOT_REASON_NONE",
		1:  "REBOOT_REASON_MANUAL",
		2:  "REBOOT_REASON_LOSS_OF_COMM",
		3:  "REBOOT_REASON_SWUPDATE_NOW",
		4:  "REBOOT_REASON_SWUPDATE_SCHEDULED",
		5:  "REBOOT_REASON_APP",
		6:  "REBOOT_REASON_EMC",
		7:  "REBOOT_REASON_FACTORY_RESET",
		8:  "REBOOT_REASON_TEST_CASE",
		9:  "REBOOT_REASON_THERMAL_POWER_CUT",
		10: "REBOOT_REASON_CRITICAL_PROCESS_DIED",
		11: "REBOOT_REASON_NO_RF_READY",
		12: "REBOOT_REASON_POSTPONED_LOSS_OF_COMM",
		13: "REBOOT_REASON_SWUPDATE_STATIONARY",
		14: "REBOOT_REASON_AAP_CRASH",
		15: "REBOOT_REASON_XP70_SACS",
		16: "REBOOT_REASON_INE_FAILED",
		17: "REBOOT_REASON_KERNEL_TAINTED",
	}
	RebootReason_value = map[string]int32{
		"REBOOT_REASON_NONE":                   0,
		"REBOOT_REASON_MANUAL":                 1,
		"REBOOT_REASON_LOSS_OF_COMM":           2,
		"REBOOT_REASON_SWUPDATE_NOW":           3,
		"REBOOT_REASON_SWUPDATE_SCHEDULED":     4,
		"REBOOT_REASON_APP":                    5,
		"REBOOT_REASON_EMC":                    6,
		"REBOOT_REASON_FACTORY_RESET":          7,
		"REBOOT_REASON_TEST_CASE":              8,
		"REBOOT_REASON_THERMAL_POWER_CUT":      9,
		"REBOOT_REASON_CRITICAL_PROCESS_DIED":  10,
		"REBOOT_REASON_NO_RF_READY":            11,
		"REBOOT_REASON_POSTPONED_LOSS_OF_COMM": 12,
		"REBOOT_REASON_SWUPDATE_STATIONARY":    13,
		"REBOOT_REASON_AAP_CRASH":              14,
		"REBOOT_REASON_XP70_SACS":              15,
		"REBOOT_REASON_INE_FAILED":             16,
		"REBOOT_REASON_KERNEL_TAINTED":         17,
	}
)

func (x RebootReason) Enum() *RebootReason {
	p := new(RebootReason)
	*p = x
	return p
}

func (x RebootReason) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (RebootReason) Descriptor() protoreflect.EnumDescriptor {
	return file_spacex_api_device_dish_proto_enumTypes[7].Descriptor()
}

func (RebootReason) Type() protoreflect.EnumType {
	return &file_spacex_api_device_dish_proto_enumTypes[7]
}

func (x RebootReason) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use RebootReason.Descriptor instead.
func (RebootReason) EnumDescriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{7}
}

type RouterRole int32

const (
	RouterRole_UNSPECIFIED RouterRole = 0
	RouterRole_CONTROLLER  RouterRole = 1
	RouterRole_REPEATER    RouterRole = 2
	RouterRole_BYPASSED    RouterRole = 3
)

// Enum value maps for RouterRole.
var (
	RouterRole_name = map[int32]string{
		0: "UNSPECIFIED",
		1: "CONTROLLER",
		2: "REPEATER",
		3: "BYPASSED",
	}
	RouterRole_value = map[string]int32{
		"UNSPECIFIED": 0,
		"CONTROLLER":  1,
		"REPEATER":    2,
		"BYPASSED":    3,
	}
)

func (x RouterRole) Enum() *RouterRole {
	p := new(RouterRole)
	*p = x
	return p
}

func (x RouterRole) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (RouterRole) Descriptor() protoreflect.EnumDescriptor {
	return file_spacex_api_device_dish_proto_enumTypes[8].Descriptor()
}

func (RouterRole) Type() protoreflect.EnumType {
	return &file_spacex_api_device_dish_proto_enumTypes[8]
}

func (x RouterRole) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use RouterRole.Descriptor instead.
func (RouterRole) EnumDescriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{8}
}

type DishState int32

const (
	DishState_UNKNOWN   DishState = 0
	DishState_CONNECTED DishState = 1
	DishState_SEARCHING DishState = 2
	DishState_BOOTING   DishState = 3
)

// Enum value maps for DishState.
var (
	DishState_name = map[int32]string{
		0: "UNKNOWN",
		1: "CONNECTED",
		2: "SEARCHING",
		3: "BOOTING",
	}
	DishState_value = map[string]int32{
		"UNKNOWN":   0,
		"CONNECTED": 1,
		"SEARCHING": 2,
		"BOOTING":   3,
	}
)

func (x DishState) Enum() *DishState {
	p := new(DishState)
	*p = x
	return p
}

func (x DishState) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (DishState) Descriptor() protoreflect.EnumDescriptor {
	return file_spacex_api_device_dish_proto_enumTypes[9].Descriptor()
}

func (DishState) Type() protoreflect.EnumType {
	return &file_spacex_api_device_dish_proto_enumTypes[9]
}

func (x DishState) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use DishState.Descriptor instead.
func (DishState) EnumDescriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{9}
}

type DishAviationTestRequest_EthSpeed int32

const (
	DishAviationTestRequest_ETH_SPEED_100_MBPS  DishAviationTestRequest_EthSpeed = 0
	DishAviationTestRequest_ETH_SPEED_1000_MBPS DishAviationTestRequest_EthSpeed = 1
)

// Enum value maps for DishAviationTestRequest_EthSpeed.
var (
	DishAviationTestRequest_EthSpeed_name = map[int32]string{
		0: "ETH_SPEED_100_MBPS",
		1: "ETH_SPEED_1000_MBPS",
	}
	DishAviationTestRequest_EthSpeed_value = map[string]int32{
		"ETH_SPEED_100_MBPS":  0,
		"ETH_SPEED_1000_MBPS": 1,
	}
)

func (x DishAviationTestRequest_EthSpeed) Enum() *DishAviationTestRequest_EthSpeed {
	p := new(DishAviationTestRequest_EthSpeed)
	*p = x
	return p
}

func (x DishAviationTestRequest_EthSpeed) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (DishAviationTestRequest_EthSpeed) Descriptor() protoreflect.EnumDescriptor {
	return file_spacex_api_device_dish_proto_enumTypes[10].Descriptor()
}

func (DishAviationTestRequest_EthSpeed) Type() protoreflect.EnumType {
	return &file_spacex_api_device_dish_proto_enumTypes[10]
}

func (x DishAviationTestRequest_EthSpeed) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use DishAviationTestRequest_EthSpeed.Descriptor instead.
func (DishAviationTestRequest_EthSpeed) EnumDescriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{2, 0}
}

type DishOutage_Cause int32

const (
	DishOutage_UNKNOWN           DishOutage_Cause = 0
	DishOutage_BOOTING           DishOutage_Cause = 1
	DishOutage_STOWED            DishOutage_Cause = 2
	DishOutage_THERMAL_SHUTDOWN  DishOutage_Cause = 3
	DishOutage_NO_SCHEDULE       DishOutage_Cause = 4
	DishOutage_NO_SATS           DishOutage_Cause = 5
	DishOutage_OBSTRUCTED        DishOutage_Cause = 6
	DishOutage_NO_DOWNLINK       DishOutage_Cause = 7
	DishOutage_NO_PINGS          DishOutage_Cause = 8
	DishOutage_ACTUATOR_ACTIVITY DishOutage_Cause = 9
	DishOutage_CABLE_TEST        DishOutage_Cause = 10
	DishOutage_SLEEPING          DishOutage_Cause = 11
	DishOutage_SKY_SEARCH        DishOutage_Cause = 13
)

// Enum value maps for DishOutage_Cause.
var (
	DishOutage_Cause_name = map[int32]string{
		0:  "UNKNOWN",
		1:  "BOOTING",
		2:  "STOWED",
		3:  "THERMAL_SHUTDOWN",
		4:  "NO_SCHEDULE",
		5:  "NO_SATS",
		6:  "OBSTRUCTED",
		7:  "NO_DOWNLINK",
		8:  "NO_PINGS",
		9:  "ACTUATOR_ACTIVITY",
		10: "CABLE_TEST",
		11: "SLEEPING",
		13: "SKY_SEARCH",
	}
	DishOutage_Cause_value = map[string]int32{
		"UNKNOWN":           0,
		"BOOTING":           1,
		"STOWED":            2,
		"THERMAL_SHUTDOWN":  3,
		"NO_SCHEDULE":       4,
		"NO_SATS":           5,
		"OBSTRUCTED":        6,
		"NO_DOWNLINK":       7,
		"NO_PINGS":          8,
		"ACTUATOR_ACTIVITY": 9,
		"CABLE_TEST":        10,
		"SLEEPING":          11,
		"SKY_SEARCH":        13,
	}
)

func (x DishOutage_Cause) Enum() *DishOutage_Cause {
	p := new(DishOutage_Cause)
	*p = x
	return p
}

func (x DishOutage_Cause) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (DishOutage_Cause) Descriptor() protoreflect.EnumDescriptor {
	return file_spacex_api_device_dish_proto_enumTypes[11].Descriptor()
}

func (DishOutage_Cause) Type() protoreflect.EnumType {
	return &file_spacex_api_device_dish_proto_enumTypes[11]
}

func (x DishOutage_Cause) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use DishOutage_Cause.Descriptor instead.
func (DishOutage_Cause) EnumDescriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{6, 0}
}

type SetTestModeRequest_RfMode int32

const (
	SetTestModeRequest_RX     SetTestModeRequest_RfMode = 0
	SetTestModeRequest_IDLE   SetTestModeRequest_RfMode = 1
	SetTestModeRequest_TX     SetTestModeRequest_RfMode = 2
	SetTestModeRequest_CAL    SetTestModeRequest_RfMode = 3
	SetTestModeRequest_USER   SetTestModeRequest_RfMode = 4
	SetTestModeRequest_NORMAL SetTestModeRequest_RfMode = 420
)

// Enum value maps for SetTestModeRequest_RfMode.
var (
	SetTestModeRequest_RfMode_name = map[int32]string{
		0:   "RX",
		1:   "IDLE",
		2:   "TX",
		3:   "CAL",
		4:   "USER",
		420: "NORMAL",
	}
	SetTestModeRequest_RfMode_value = map[string]int32{
		"RX":     0,
		"IDLE":   1,
		"TX":     2,
		"CAL":    3,
		"USER":   4,
		"NORMAL": 420,
	}
)

func (x SetTestModeRequest_RfMode) Enum() *SetTestModeRequest_RfMode {
	p := new(SetTestModeRequest_RfMode)
	*p = x
	return p
}

func (x SetTestModeRequest_RfMode) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (SetTestModeRequest_RfMode) Descriptor() protoreflect.EnumDescriptor {
	return file_spacex_api_device_dish_proto_enumTypes[12].Descriptor()
}

func (SetTestModeRequest_RfMode) Type() protoreflect.EnumType {
	return &file_spacex_api_device_dish_proto_enumTypes[12]
}

func (x SetTestModeRequest_RfMode) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use SetTestModeRequest_RfMode.Descriptor instead.
func (SetTestModeRequest_RfMode) EnumDescriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{24, 0}
}

type PLCStats_ProtocolRevision int32

const (
	PLCStats_REV_D PLCStats_ProtocolRevision = 0
)

// Enum value maps for PLCStats_ProtocolRevision.
var (
	PLCStats_ProtocolRevision_name = map[int32]string{
		0: "REV_D",
	}
	PLCStats_ProtocolRevision_value = map[string]int32{
		"REV_D": 0,
	}
)

func (x PLCStats_ProtocolRevision) Enum() *PLCStats_ProtocolRevision {
	p := new(PLCStats_ProtocolRevision)
	*p = x
	return p
}

func (x PLCStats_ProtocolRevision) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (PLCStats_ProtocolRevision) Descriptor() protoreflect.EnumDescriptor {
	return file_spacex_api_device_dish_proto_enumTypes[13].Descriptor()
}

func (PLCStats_ProtocolRevision) Type() protoreflect.EnumType {
	return &file_spacex_api_device_dish_proto_enumTypes[13]
}

func (x PLCStats_ProtocolRevision) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use PLCStats_ProtocolRevision.Descriptor instead.
func (PLCStats_ProtocolRevision) EnumDescriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{45, 0}
}

type PLCPortStats_PortStatus int32

const (
	PLCPortStats_INACTIVE          PLCPortStats_PortStatus = 0
	PLCPortStats_CHARGING          PLCPortStats_PortStatus = 1
	PLCPortStats_DISCHARGING       PLCPortStats_PortStatus = 2
	PLCPortStats_MOISTURE_DETECTED PLCPortStats_PortStatus = 3
)

// Enum value maps for PLCPortStats_PortStatus.
var (
	PLCPortStats_PortStatus_name = map[int32]string{
		0: "INACTIVE",
		1: "CHARGING",
		2: "DISCHARGING",
		3: "MOISTURE_DETECTED",
	}
	PLCPortStats_PortStatus_value = map[string]int32{
		"INACTIVE":          0,
		"CHARGING":          1,
		"DISCHARGING":       2,
		"MOISTURE_DETECTED": 3,
	}
)

func (x PLCPortStats_PortStatus) Enum() *PLCPortStats_PortStatus {
	p := new(PLCPortStats_PortStatus)
	*p = x
	return p
}

func (x PLCPortStats_PortStatus) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (PLCPortStats_PortStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_spacex_api_device_dish_proto_enumTypes[14].Descriptor()
}

func (PLCPortStats_PortStatus) Type() protoreflect.EnumType {
	return &file_spacex_api_device_dish_proto_enumTypes[14]
}

func (x PLCPortStats_PortStatus) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use PLCPortStats_PortStatus.Descriptor instead.
func (PLCPortStats_PortStatus) EnumDescriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{46, 0}
}

type DishStowRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Unstow bool `protobuf:"varint,1,opt,name=unstow,proto3" json:"unstow,omitempty"`
}

func (x *DishStowRequest) Reset() {
	*x = DishStowRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishStowRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishStowRequest) ProtoMessage() {}

func (x *DishStowRequest) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DishStowRequest.ProtoReflect.Descriptor instead.
func (*DishStowRequest) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{0}
}

func (x *DishStowRequest) GetUnstow() bool {
	if x != nil {
		return x.Unstow
	}
	return false
}

type DishStowResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DishStowResponse) Reset() {
	*x = DishStowResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishStowResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishStowResponse) ProtoMessage() {}

func (x *DishStowResponse) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use DishStowResponse.ProtoReflect.Descriptor instead.
func (*DishStowResponse) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{1}
}

type DishAviationTestRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ThermalDemandFraction      float32                          `protobuf:"fixed32,1,opt,name=thermal_demand_fraction,json=thermalDemandFraction,proto3" json:"thermal_demand_fraction,omitempty"`
	ApplyThermalDemandFraction bool                             `protobuf:"varint,2,opt,name=apply_thermal_demand_fraction,json=applyThermalDemandFraction,proto3" json:"apply_thermal_demand_fraction,omitempty"`
	EthSpeed                   DishAviationTestRequest_EthSpeed `protobuf:"varint,3,opt,name=eth_speed,json=ethSpeed,proto3,enum=SpaceX.API.Device.DishAviationTestRequest_EthSpeed" json:"eth_speed,omitempty"`
	ApplyEthSpeed              bool                             `protobuf:"varint,4,opt,name=apply_eth_speed,json=applyEthSpeed,proto3" json:"apply_eth_speed,omitempty"`
	EthAmplitudeRegisters      uint32                           `protobuf:"varint,5,opt,name=eth_amplitude_registers,json=ethAmplitudeRegisters,proto3" json:"eth_amplitude_registers,omitempty"`
	ApplyEthAmplitudeRegisters bool                             `protobuf:"varint,6,opt,name=apply_eth_amplitude_registers,json=applyEthAmplitudeRegisters,proto3" json:"apply_eth_amplitude_registers,omitempty"`
}

func (x *DishAviationTestRequest) Reset() {
	*x = DishAviationTestRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishAviationTestRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishAviationTestRequest) ProtoMessage() {}

func (x *DishAviationTestRequest) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_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 DishAviationTestRequest.ProtoReflect.Descriptor instead.
func (*DishAviationTestRequest) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{2}
}

func (x *DishAviationTestRequest) GetThermalDemandFraction() float32 {
	if x != nil {
		return x.ThermalDemandFraction
	}
	return 0
}

func (x *DishAviationTestRequest) GetApplyThermalDemandFraction() bool {
	if x != nil {
		return x.ApplyThermalDemandFraction
	}
	return false
}

func (x *DishAviationTestRequest) GetEthSpeed() DishAviationTestRequest_EthSpeed {
	if x != nil {
		return x.EthSpeed
	}
	return DishAviationTestRequest_ETH_SPEED_100_MBPS
}

func (x *DishAviationTestRequest) GetApplyEthSpeed() bool {
	if x != nil {
		return x.ApplyEthSpeed
	}
	return false
}

func (x *DishAviationTestRequest) GetEthAmplitudeRegisters() uint32 {
	if x != nil {
		return x.EthAmplitudeRegisters
	}
	return 0
}

func (x *DishAviationTestRequest) GetApplyEthAmplitudeRegisters() bool {
	if x != nil {
		return x.ApplyEthAmplitudeRegisters
	}
	return false
}

type DishAviationTestResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DishAviationTestResponse) Reset() {
	*x = DishAviationTestResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishAviationTestResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishAviationTestResponse) ProtoMessage() {}

func (x *DishAviationTestResponse) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[3]
	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 DishAviationTestResponse.ProtoReflect.Descriptor instead.
func (*DishAviationTestResponse) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{3}
}

type DishGetContextRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DishGetContextRequest) Reset() {
	*x = DishGetContextRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishGetContextRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishGetContextRequest) ProtoMessage() {}

func (x *DishGetContextRequest) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[4]
	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 DishGetContextRequest.ProtoReflect.Descriptor instead.
func (*DishGetContextRequest) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{4}
}

type DishGetContextResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DeviceInfo                 *DeviceInfo                            `protobuf:"bytes,1,opt,name=device_info,json=deviceInfo,proto3" json:"device_info,omitempty"`
	DeviceState                *DeviceState                           `protobuf:"bytes,7,opt,name=device_state,json=deviceState,proto3" json:"device_state,omitempty"`
	ObstructionFraction        float32                                `protobuf:"fixed32,2,opt,name=obstruction_fraction,json=obstructionFraction,proto3" json:"obstruction_fraction,omitempty"`
	ObstructionTime            float32                                `protobuf:"fixed32,20,opt,name=obstruction_time,json=obstructionTime,proto3" json:"obstruction_time,omitempty"`
	ObstructionValidS          float32                                `protobuf:"fixed32,3,opt,name=obstruction_valid_s,json=obstructionValidS,proto3" json:"obstruction_valid_s,omitempty"`
	ObstructionCurrent         bool                                   `protobuf:"varint,12,opt,name=obstruction_current,json=obstructionCurrent,proto3" json:"obstruction_current,omitempty"`
	CellId                     uint32                                 `protobuf:"varint,4,opt,name=cell_id,json=cellId,proto3" json:"cell_id,omitempty"`
	PopRackId                  uint32                                 `protobuf:"varint,5,opt,name=pop_rack_id,json=popRackId,proto3" json:"pop_rack_id,omitempty"`
	InitialSatelliteId         uint32                                 `protobuf:"varint,8,opt,name=initial_satellite_id,json=initialSatelliteId,proto3" json:"initial_satellite_id,omitempty"`
	InitialGatewayId           uint32                                 `protobuf:"varint,9,opt,name=initial_gateway_id,json=initialGatewayId,proto3" json:"initial_gateway_id,omitempty"`
	OnBackupBeam               bool                                   `protobuf:"varint,10,opt,name=on_backup_beam,json=onBackupBeam,proto3" json:"on_backup_beam,omitempty"`
	SecondsToSlotEnd           float32                                `protobuf:"fixed32,6,opt,name=seconds_to_slot_end,json=secondsToSlotEnd,proto3" json:"seconds_to_slot_end,omitempty"`
	DebugTelemetryEnabled      bool                                   `protobuf:"varint,11,opt,name=debug_telemetry_enabled,json=debugTelemetryEnabled,proto3" json:"debug_telemetry_enabled,omitempty"`
	PopPingDropRate_15SMean    float32                                `protobuf:"fixed32,13,opt,name=pop_ping_drop_rate_15s_mean,json=popPingDropRate15sMean,proto3" json:"pop_ping_drop_rate_15s_mean,omitempty"`
	PopPingLatencyMs_15SMean   float32                                `protobuf:"fixed32,14,opt,name=pop_ping_latency_ms_15s_mean,json=popPingLatencyMs15sMean,proto3" json:"pop_ping_latency_ms_15s_mean,omitempty"`
	SecondsSinceLast_1SOutage  float32                                `protobuf:"fixed32,15,opt,name=seconds_since_last_1s_outage,json=secondsSinceLast1sOutage,proto3" json:"seconds_since_last_1s_outage,omitempty"`
	SecondsSinceLast_2SOutage  float32                                `protobuf:"fixed32,16,opt,name=seconds_since_last_2s_outage,json=secondsSinceLast2sOutage,proto3" json:"seconds_since_last_2s_outage,omitempty"`
	SecondsSinceLast_5SOutage  float32                                `protobuf:"fixed32,17,opt,name=seconds_since_last_5s_outage,json=secondsSinceLast5sOutage,proto3" json:"seconds_since_last_5s_outage,omitempty"`
	SecondsSinceLast_15SOutage float32                                `protobuf:"fixed32,18,opt,name=seconds_since_last_15s_outage,json=secondsSinceLast15sOutage,proto3" json:"seconds_since_last_15s_outage,omitempty"`
	SecondsSinceLast_60SOutage float32                                `protobuf:"fixed32,19,opt,name=seconds_since_last_60s_outage,json=secondsSinceLast60sOutage,proto3" json:"seconds_since_last_60s_outage,omitempty"`
	Outage_1SWithin_1H         bool                                   `protobuf:"varint,23,opt,name=outage_1s_within_1h,json=outage1sWithin1h,proto3" json:"outage_1s_within_1h,omitempty"`
	Outage_2SWithin_1H         bool                                   `protobuf:"varint,24,opt,name=outage_2s_within_1h,json=outage2sWithin1h,proto3" json:"outage_2s_within_1h,omitempty"`
	Outage_5SWithin_1H         bool                                   `protobuf:"varint,25,opt,name=outage_5s_within_1h,json=outage5sWithin1h,proto3" json:"outage_5s_within_1h,omitempty"`
	DisablementCode            ut_disablement_codes.UtDisablementCode `protobuf:"varint,21,opt,name=disablement_code,json=disablementCode,proto3,enum=SpaceX.API.Satellites.Network.UtDisablementCode" json:"disablement_code,omitempty"`
	KuMacActiveRatio           float32                                `protobuf:"fixed32,22,opt,name=ku_mac_active_ratio,json=kuMacActiveRatio,proto3" json:"ku_mac_active_ratio,omitempty"`
}

func (x *DishGetContextResponse) Reset() {
	*x = DishGetContextResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishGetContextResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishGetContextResponse) ProtoMessage() {}

func (x *DishGetContextResponse) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[5]
	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 DishGetContextResponse.ProtoReflect.Descriptor instead.
func (*DishGetContextResponse) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{5}
}

func (x *DishGetContextResponse) GetDeviceInfo() *DeviceInfo {
	if x != nil {
		return x.DeviceInfo
	}
	return nil
}

func (x *DishGetContextResponse) GetDeviceState() *DeviceState {
	if x != nil {
		return x.DeviceState
	}
	return nil
}

func (x *DishGetContextResponse) GetObstructionFraction() float32 {
	if x != nil {
		return x.ObstructionFraction
	}
	return 0
}

func (x *DishGetContextResponse) GetObstructionTime() float32 {
	if x != nil {
		return x.ObstructionTime
	}
	return 0
}

func (x *DishGetContextResponse) GetObstructionValidS() float32 {
	if x != nil {
		return x.ObstructionValidS
	}
	return 0
}

func (x *DishGetContextResponse) GetObstructionCurrent() bool {
	if x != nil {
		return x.ObstructionCurrent
	}
	return false
}

func (x *DishGetContextResponse) GetCellId() uint32 {
	if x != nil {
		return x.CellId
	}
	return 0
}

func (x *DishGetContextResponse) GetPopRackId() uint32 {
	if x != nil {
		return x.PopRackId
	}
	return 0
}

func (x *DishGetContextResponse) GetInitialSatelliteId() uint32 {
	if x != nil {
		return x.InitialSatelliteId
	}
	return 0
}

func (x *DishGetContextResponse) GetInitialGatewayId() uint32 {
	if x != nil {
		return x.InitialGatewayId
	}
	return 0
}

func (x *DishGetContextResponse) GetOnBackupBeam() bool {
	if x != nil {
		return x.OnBackupBeam
	}
	return false
}

func (x *DishGetContextResponse) GetSecondsToSlotEnd() float32 {
	if x != nil {
		return x.SecondsToSlotEnd
	}
	return 0
}

func (x *DishGetContextResponse) GetDebugTelemetryEnabled() bool {
	if x != nil {
		return x.DebugTelemetryEnabled
	}
	return false
}

func (x *DishGetContextResponse) GetPopPingDropRate_15SMean() float32 {
	if x != nil {
		return x.PopPingDropRate_15SMean
	}
	return 0
}

func (x *DishGetContextResponse) GetPopPingLatencyMs_15SMean() float32 {
	if x != nil {
		return x.PopPingLatencyMs_15SMean
	}
	return 0
}

func (x *DishGetContextResponse) GetSecondsSinceLast_1SOutage() float32 {
	if x != nil {
		return x.SecondsSinceLast_1SOutage
	}
	return 0
}

func (x *DishGetContextResponse) GetSecondsSinceLast_2SOutage() float32 {
	if x != nil {
		return x.SecondsSinceLast_2SOutage
	}
	return 0
}

func (x *DishGetContextResponse) GetSecondsSinceLast_5SOutage() float32 {
	if x != nil {
		return x.SecondsSinceLast_5SOutage
	}
	return 0
}

func (x *DishGetContextResponse) GetSecondsSinceLast_15SOutage() float32 {
	if x != nil {
		return x.SecondsSinceLast_15SOutage
	}
	return 0
}

func (x *DishGetContextResponse) GetSecondsSinceLast_60SOutage() float32 {
	if x != nil {
		return x.SecondsSinceLast_60SOutage
	}
	return 0
}

func (x *DishGetContextResponse) GetOutage_1SWithin_1H() bool {
	if x != nil {
		return x.Outage_1SWithin_1H
	}
	return false
}

func (x *DishGetContextResponse) GetOutage_2SWithin_1H() bool {
	if x != nil {
		return x.Outage_2SWithin_1H
	}
	return false
}

func (x *DishGetContextResponse) GetOutage_5SWithin_1H() bool {
	if x != nil {
		return x.Outage_5SWithin_1H
	}
	return false
}

func (x *DishGetContextResponse) GetDisablementCode() ut_disablement_codes.UtDisablementCode {
	if x != nil {
		return x.DisablementCode
	}
	return ut_disablement_codes.UtDisablementCode(0)
}

func (x *DishGetContextResponse) GetKuMacActiveRatio() float32 {
	if x != nil {
		return x.KuMacActiveRatio
	}
	return 0
}

type DishOutage struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Cause            DishOutage_Cause `protobuf:"varint,1,opt,name=cause,proto3,enum=SpaceX.API.Device.DishOutage_Cause" json:"cause,omitempty"`
	StartTimestampNs int64            `protobuf:"varint,2,opt,name=start_timestamp_ns,json=startTimestampNs,proto3" json:"start_timestamp_ns,omitempty"`
	DurationNs       uint64           `protobuf:"varint,3,opt,name=duration_ns,json=durationNs,proto3" json:"duration_ns,omitempty"`
	DidSwitch        bool             `protobuf:"varint,4,opt,name=did_switch,json=didSwitch,proto3" json:"did_switch,omitempty"`
}

func (x *DishOutage) Reset() {
	*x = DishOutage{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishOutage) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishOutage) ProtoMessage() {}

func (x *DishOutage) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[6]
	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 DishOutage.ProtoReflect.Descriptor instead.
func (*DishOutage) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{6}
}

func (x *DishOutage) GetCause() DishOutage_Cause {
	if x != nil {
		return x.Cause
	}
	return DishOutage_UNKNOWN
}

func (x *DishOutage) GetStartTimestampNs() int64 {
	if x != nil {
		return x.StartTimestampNs
	}
	return 0
}

func (x *DishOutage) GetDurationNs() uint64 {
	if x != nil {
		return x.DurationNs
	}
	return 0
}

func (x *DishOutage) GetDidSwitch() bool {
	if x != nil {
		return x.DidSwitch
	}
	return false
}

type DishGetHistoryResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Current               uint64        `protobuf:"varint,1,opt,name=current,proto3" json:"current,omitempty"`
	PopPingDropRate       []float32     `protobuf:"fixed32,1001,rep,packed,name=pop_ping_drop_rate,json=popPingDropRate,proto3" json:"pop_ping_drop_rate,omitempty"`
	PopPingLatencyMs      []float32     `protobuf:"fixed32,1002,rep,packed,name=pop_ping_latency_ms,json=popPingLatencyMs,proto3" json:"pop_ping_latency_ms,omitempty"`
	DownlinkThroughputBps []float32     `protobuf:"fixed32,1003,rep,packed,name=downlink_throughput_bps,json=downlinkThroughputBps,proto3" json:"downlink_throughput_bps,omitempty"`
	UplinkThroughputBps   []float32     `protobuf:"fixed32,1004,rep,packed,name=uplink_throughput_bps,json=uplinkThroughputBps,proto3" json:"uplink_throughput_bps,omitempty"`
	Outages               []*DishOutage `protobuf:"bytes,1009,rep,name=outages,proto3" json:"outages,omitempty"`
	PowerIn               []float32     `protobuf:"fixed32,1010,rep,packed,name=power_in,json=powerIn,proto3" json:"power_in,omitempty"`
	EventLog              *EventLog     `protobuf:"bytes,1011,opt,name=event_log,json=eventLog,proto3" json:"event_log,omitempty"`
}

func (x *DishGetHistoryResponse) Reset() {
	*x = DishGetHistoryResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishGetHistoryResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishGetHistoryResponse) ProtoMessage() {}

func (x *DishGetHistoryResponse) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[7]
	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 DishGetHistoryResponse.ProtoReflect.Descriptor instead.
func (*DishGetHistoryResponse) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{7}
}

func (x *DishGetHistoryResponse) GetCurrent() uint64 {
	if x != nil {
		return x.Current
	}
	return 0
}

func (x *DishGetHistoryResponse) GetPopPingDropRate() []float32 {
	if x != nil {
		return x.PopPingDropRate
	}
	return nil
}

func (x *DishGetHistoryResponse) GetPopPingLatencyMs() []float32 {
	if x != nil {
		return x.PopPingLatencyMs
	}
	return nil
}

func (x *DishGetHistoryResponse) GetDownlinkThroughputBps() []float32 {
	if x != nil {
		return x.DownlinkThroughputBps
	}
	return nil
}

func (x *DishGetHistoryResponse) GetUplinkThroughputBps() []float32 {
	if x != nil {
		return x.UplinkThroughputBps
	}
	return nil
}

func (x *DishGetHistoryResponse) GetOutages() []*DishOutage {
	if x != nil {
		return x.Outages
	}
	return nil
}

func (x *DishGetHistoryResponse) GetPowerIn() []float32 {
	if x != nil {
		return x.PowerIn
	}
	return nil
}

func (x *DishGetHistoryResponse) GetEventLog() *EventLog {
	if x != nil {
		return x.EventLog
	}
	return nil
}

type RouterInfo struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Role     RouterRole `protobuf:"varint,1,opt,name=role,proto3,enum=SpaceX.API.Device.RouterRole" json:"role,omitempty"`
	LastSeen int64      `protobuf:"varint,2,opt,name=last_seen,json=lastSeen,proto3" json:"last_seen,omitempty"`
}

func (x *RouterInfo) Reset() {
	*x = RouterInfo{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *RouterInfo) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*RouterInfo) ProtoMessage() {}

func (x *RouterInfo) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[8]
	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 RouterInfo.ProtoReflect.Descriptor instead.
func (*RouterInfo) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{8}
}

func (x *RouterInfo) GetRole() RouterRole {
	if x != nil {
		return x.Role
	}
	return RouterRole_UNSPECIFIED
}

func (x *RouterInfo) GetLastSeen() int64 {
	if x != nil {
		return x.LastSeen
	}
	return 0
}

type DishGetStatusResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DeviceInfo                         *DeviceInfo                            `protobuf:"bytes,1,opt,name=device_info,json=deviceInfo,proto3" json:"device_info,omitempty"`
	DeviceState                        *DeviceState                           `protobuf:"bytes,2,opt,name=device_state,json=deviceState,proto3" json:"device_state,omitempty"`
	Alerts                             *DishAlerts                            `protobuf:"bytes,1005,opt,name=alerts,proto3" json:"alerts,omitempty"`
	Outage                             *DishOutage                            `protobuf:"bytes,1014,opt,name=outage,proto3" json:"outage,omitempty"`
	GpsStats                           *DishGpsStats                          `protobuf:"bytes,1015,opt,name=gps_stats,json=gpsStats,proto3" json:"gps_stats,omitempty"`
	SecondsToFirstNonemptySlot         float32                                `protobuf:"fixed32,1002,opt,name=seconds_to_first_nonempty_slot,json=secondsToFirstNonemptySlot,proto3" json:"seconds_to_first_nonempty_slot,omitempty"`
	PopPingDropRate                    float32                                `protobuf:"fixed32,1003,opt,name=pop_ping_drop_rate,json=popPingDropRate,proto3" json:"pop_ping_drop_rate,omitempty"`
	DownlinkThroughputBps              float32                                `protobuf:"fixed32,1007,opt,name=downlink_throughput_bps,json=downlinkThroughputBps,proto3" json:"downlink_throughput_bps,omitempty"`
	UplinkThroughputBps                float32                                `protobuf:"fixed32,1008,opt,name=uplink_throughput_bps,json=uplinkThroughputBps,proto3" json:"uplink_throughput_bps,omitempty"`
	PopPingLatencyMs                   float32                                `protobuf:"fixed32,1009,opt,name=pop_ping_latency_ms,json=popPingLatencyMs,proto3" json:"pop_ping_latency_ms,omitempty"`
	ObstructionStats                   *DishObstructionStats                  `protobuf:"bytes,1004,opt,name=obstruction_stats,json=obstructionStats,proto3" json:"obstruction_stats,omitempty"`
	StowRequested                      bool                                   `protobuf:"varint,1010,opt,name=stow_requested,json=stowRequested,proto3" json:"stow_requested,omitempty"`
	BoresightAzimuthDeg                float32                                `protobuf:"fixed32,1011,opt,name=boresight_azimuth_deg,json=boresightAzimuthDeg,proto3" json:"boresight_azimuth_deg,omitempty"`
	BoresightElevationDeg              float32                                `protobuf:"fixed32,1012,opt,name=boresight_elevation_deg,json=boresightElevationDeg,proto3" json:"boresight_elevation_deg,omitempty"`
	EthSpeedMbps                       int32                                  `protobuf:"varint,1016,opt,name=eth_speed_mbps,json=ethSpeedMbps,proto3" json:"eth_speed_mbps,omitempty"`
	MobilityClass                      UserMobilityClass                      `protobuf:"varint,1017,opt,name=mobility_class,json=mobilityClass,proto3,enum=SpaceX.API.Device.UserMobilityClass" json:"mobility_class,omitempty"`
	IsSnrAboveNoiseFloor               bool                                   `protobuf:"varint,1018,opt,name=is_snr_above_noise_floor,json=isSnrAboveNoiseFloor,proto3" json:"is_snr_above_noise_floor,omitempty"`
	ReadyStates                        *DishReadyStates                       `protobuf:"bytes,1019,opt,name=ready_states,json=readyStates,proto3" json:"ready_states,omitempty"`
	ClassOfService                     UserClassOfService                     `protobuf:"varint,1020,opt,name=class_of_service,json=classOfService,proto3,enum=SpaceX.API.Device.UserClassOfService" json:"class_of_service,omitempty"`
	SoftwareUpdateState                SoftwareUpdateState                    `protobuf:"varint,1021,opt,name=software_update_state,json=softwareUpdateState,proto3,enum=SpaceX.API.Device.SoftwareUpdateState" json:"software_update_state,omitempty"`
	SwupdateRebootReady                bool                                   `protobuf:"varint,1030,opt,name=swupdate_reboot_ready,json=swupdateRebootReady,proto3" json:"swupdate_reboot_ready,omitempty"`
	RebootReason                       RebootReason                           `protobuf:"varint,1032,opt,name=reboot_reason,json=rebootReason,proto3,enum=SpaceX.API.Device.RebootReason" json:"reboot_reason,omitempty"`
	SoftwareUpdateStats                *SoftwareUpdateStats                   `protobuf:"bytes,1026,opt,name=software_update_stats,json=softwareUpdateStats,proto3" json:"software_update_stats,omitempty"`
	AlignmentStats                     *AlignmentStats                        `protobuf:"bytes,1027,opt,name=alignment_stats,json=alignmentStats,proto3" json:"alignment_stats,omitempty"`
	IsSnrPersistentlyLow               bool                                   `protobuf:"varint,1022,opt,name=is_snr_persistently_low,json=isSnrPersistentlyLow,proto3" json:"is_snr_persistently_low,omitempty"`
	HasActuators                       HasActuators                           `protobuf:"varint,1023,opt,name=has_actuators,json=hasActuators,proto3,enum=SpaceX.API.Device.HasActuators" json:"has_actuators,omitempty"`
	DisablementCode                    ut_disablement_codes.UtDisablementCode `protobuf:"varint,1024,opt,name=disablement_code,json=disablementCode,proto3,enum=SpaceX.API.Satellites.Network.UtDisablementCode" json:"disablement_code,omitempty"`
	DlBandwidthRestrictedReason        ratelimitreason.RateLimitReason        `protobuf:"varint,1044,opt,name=dl_bandwidth_restricted_reason,json=dlBandwidthRestrictedReason,proto3,enum=SpaceX.API.Telemetron.Public.Integrations.RateLimitReason" json:"dl_bandwidth_restricted_reason,omitempty"`
	UlBandwidthRestrictedReason        ratelimitreason.RateLimitReason        `protobuf:"varint,1045,opt,name=ul_bandwidth_restricted_reason,json=ulBandwidthRestrictedReason,proto3,enum=SpaceX.API.Telemetron.Public.Integrations.RateLimitReason" json:"ul_bandwidth_restricted_reason,omitempty"`
	HasSignedCals                      bool                                   `protobuf:"varint,1025,opt,name=has_signed_cals,json=hasSignedCals,proto3" json:"has_signed_cals,omitempty"`
	Config                             *DishConfig                            `protobuf:"bytes,2000,opt,name=config,proto3" json:"config,omitempty"`
	InitializationDurationSeconds      *InitializationDurationSeconds         `protobuf:"bytes,1028,opt,name=initialization_duration_seconds,json=initializationDurationSeconds,proto3" json:"initialization_duration_seconds,omitempty"`
	IsCellDisabled                     bool                                   `protobuf:"varint,1029,opt,name=is_cell_disabled,json=isCellDisabled,proto3" json:"is_cell_disabled,omitempty"`
	SecondsUntilSwupdateRebootPossible int32                                  `protobuf:"varint,1031,opt,name=seconds_until_swupdate_reboot_possible,json=secondsUntilSwupdateRebootPossible,proto3" json:"seconds_until_swupdate_reboot_possible,omitempty"`
	HighPowerTestMode                  bool                                   `protobuf:"varint,1033,opt,name=high_power_test_mode,json=highPowerTestMode,proto3" json:"high_power_test_mode,omitempty"`
	ConnectedRouters                   []string                               `protobuf:"bytes,1040,rep,name=connected_routers,json=connectedRouters,proto3" json:"connected_routers,omitempty"`
	PlcStats                           *PLCStats                              `protobuf:"bytes,1041,opt,name=plc_stats,json=plcStats,proto3" json:"plc_stats,omitempty"`
	IsMovingFastPersisted              bool                                   `protobuf:"varint,1042,opt,name=is_moving_fast_persisted,json=isMovingFastPersisted,proto3" json:"is_moving_fast_persisted,omitempty"`
	UpsuStats                          *DishUpsuStats                         `protobuf:"bytes,1043,opt,name=upsu_stats,json=upsuStats,proto3" json:"upsu_stats,omitempty"`
	ApsStats                           *DishApsStats                          `protobuf:"bytes,1048,opt,name=aps_stats,json=apsStats,proto3" json:"aps_stats,omitempty"`
	Ned2DishQuaternion                 *Quaternion                            `protobuf:"bytes,1049,opt,name=ned2dish_quaternion,json=ned2dishQuaternion,proto3" json:"ned2dish_quaternion,omitempty"`
	DownstreamRouters                  map[string]*RouterInfo                 `protobuf:"bytes,1050,rep,name=downstream_routers,json=downstreamRouters,proto3" json:"downstream_routers,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	AccountShard                       account_shard.AccountShard             `protobuf:"varint,1051,opt,name=account_shard,json=accountShard,proto3,enum=SpaceX.API.Device.AccountShard" json:"account_shard,omitempty"`
	MacFlag                            bool                                   `protobuf:"varint,1052,opt,name=mac_flag,json=macFlag,proto3" json:"mac_flag,omitempty"`
}

func (x *DishGetStatusResponse) Reset() {
	*x = DishGetStatusResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishGetStatusResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishGetStatusResponse) ProtoMessage() {}

func (x *DishGetStatusResponse) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[9]
	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 DishGetStatusResponse.ProtoReflect.Descriptor instead.
func (*DishGetStatusResponse) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{9}
}

func (x *DishGetStatusResponse) GetDeviceInfo() *DeviceInfo {
	if x != nil {
		return x.DeviceInfo
	}
	return nil
}

func (x *DishGetStatusResponse) GetDeviceState() *DeviceState {
	if x != nil {
		return x.DeviceState
	}
	return nil
}

func (x *DishGetStatusResponse) GetAlerts() *DishAlerts {
	if x != nil {
		return x.Alerts
	}
	return nil
}

func (x *DishGetStatusResponse) GetOutage() *DishOutage {
	if x != nil {
		return x.Outage
	}
	return nil
}

func (x *DishGetStatusResponse) GetGpsStats() *DishGpsStats {
	if x != nil {
		return x.GpsStats
	}
	return nil
}

func (x *DishGetStatusResponse) GetSecondsToFirstNonemptySlot() float32 {
	if x != nil {
		return x.SecondsToFirstNonemptySlot
	}
	return 0
}

func (x *DishGetStatusResponse) GetPopPingDropRate() float32 {
	if x != nil {
		return x.PopPingDropRate
	}
	return 0
}

func (x *DishGetStatusResponse) GetDownlinkThroughputBps() float32 {
	if x != nil {
		return x.DownlinkThroughputBps
	}
	return 0
}

func (x *DishGetStatusResponse) GetUplinkThroughputBps() float32 {
	if x != nil {
		return x.UplinkThroughputBps
	}
	return 0
}

func (x *DishGetStatusResponse) GetPopPingLatencyMs() float32 {
	if x != nil {
		return x.PopPingLatencyMs
	}
	return 0
}

func (x *DishGetStatusResponse) GetObstructionStats() *DishObstructionStats {
	if x != nil {
		return x.ObstructionStats
	}
	return nil
}

func (x *DishGetStatusResponse) GetStowRequested() bool {
	if x != nil {
		return x.StowRequested
	}
	return false
}

func (x *DishGetStatusResponse) GetBoresightAzimuthDeg() float32 {
	if x != nil {
		return x.BoresightAzimuthDeg
	}
	return 0
}

func (x *DishGetStatusResponse) GetBoresightElevationDeg() float32 {
	if x != nil {
		return x.BoresightElevationDeg
	}
	return 0
}

func (x *DishGetStatusResponse) GetEthSpeedMbps() int32 {
	if x != nil {
		return x.EthSpeedMbps
	}
	return 0
}

func (x *DishGetStatusResponse) GetMobilityClass() UserMobilityClass {
	if x != nil {
		return x.MobilityClass
	}
	return UserMobilityClass_STATIONARY
}

func (x *DishGetStatusResponse) GetIsSnrAboveNoiseFloor() bool {
	if x != nil {
		return x.IsSnrAboveNoiseFloor
	}
	return false
}

func (x *DishGetStatusResponse) GetReadyStates() *DishReadyStates {
	if x != nil {
		return x.ReadyStates
	}
	return nil
}

func (x *DishGetStatusResponse) GetClassOfService() UserClassOfService {
	if x != nil {
		return x.ClassOfService
	}
	return UserClassOfService_UNKNOWN_USER_CLASS_OF_SERVICE
}

func (x *DishGetStatusResponse) GetSoftwareUpdateState() SoftwareUpdateState {
	if x != nil {
		return x.SoftwareUpdateState
	}
	return SoftwareUpdateState_SOFTWARE_UPDATE_STATE_UNKNOWN
}

func (x *DishGetStatusResponse) GetSwupdateRebootReady() bool {
	if x != nil {
		return x.SwupdateRebootReady
	}
	return false
}

func (x *DishGetStatusResponse) GetRebootReason() RebootReason {
	if x != nil {
		return x.RebootReason
	}
	return RebootReason_REBOOT_REASON_NONE
}

func (x *DishGetStatusResponse) GetSoftwareUpdateStats() *SoftwareUpdateStats {
	if x != nil {
		return x.SoftwareUpdateStats
	}
	return nil
}

func (x *DishGetStatusResponse) GetAlignmentStats() *AlignmentStats {
	if x != nil {
		return x.AlignmentStats
	}
	return nil
}

func (x *DishGetStatusResponse) GetIsSnrPersistentlyLow() bool {
	if x != nil {
		return x.IsSnrPersistentlyLow
	}
	return false
}

func (x *DishGetStatusResponse) GetHasActuators() HasActuators {
	if x != nil {
		return x.HasActuators
	}
	return HasActuators_HAS_ACTUATORS_UNKNOWN
}

func (x *DishGetStatusResponse) GetDisablementCode() ut_disablement_codes.UtDisablementCode {
	if x != nil {
		return x.DisablementCode
	}
	return ut_disablement_codes.UtDisablementCode(0)
}

func (x *DishGetStatusResponse) GetDlBandwidthRestrictedReason() ratelimitreason.RateLimitReason {
	if x != nil {
		return x.DlBandwidthRestrictedReason
	}
	return ratelimitreason.RateLimitReason(0)
}

func (x *DishGetStatusResponse) GetUlBandwidthRestrictedReason() ratelimitreason.RateLimitReason {
	if x != nil {
		return x.UlBandwidthRestrictedReason
	}
	return ratelimitreason.RateLimitReason(0)
}

func (x *DishGetStatusResponse) GetHasSignedCals() bool {
	if x != nil {
		return x.HasSignedCals
	}
	return false
}

func (x *DishGetStatusResponse) GetConfig() *DishConfig {
	if x != nil {
		return x.Config
	}
	return nil
}

func (x *DishGetStatusResponse) GetInitializationDurationSeconds() *InitializationDurationSeconds {
	if x != nil {
		return x.InitializationDurationSeconds
	}
	return nil
}

func (x *DishGetStatusResponse) GetIsCellDisabled() bool {
	if x != nil {
		return x.IsCellDisabled
	}
	return false
}

func (x *DishGetStatusResponse) GetSecondsUntilSwupdateRebootPossible() int32 {
	if x != nil {
		return x.SecondsUntilSwupdateRebootPossible
	}
	return 0
}

func (x *DishGetStatusResponse) GetHighPowerTestMode() bool {
	if x != nil {
		return x.HighPowerTestMode
	}
	return false
}

func (x *DishGetStatusResponse) GetConnectedRouters() []string {
	if x != nil {
		return x.ConnectedRouters
	}
	return nil
}

func (x *DishGetStatusResponse) GetPlcStats() *PLCStats {
	if x != nil {
		return x.PlcStats
	}
	return nil
}

func (x *DishGetStatusResponse) GetIsMovingFastPersisted() bool {
	if x != nil {
		return x.IsMovingFastPersisted
	}
	return false
}

func (x *DishGetStatusResponse) GetUpsuStats() *DishUpsuStats {
	if x != nil {
		return x.UpsuStats
	}
	return nil
}

func (x *DishGetStatusResponse) GetApsStats() *DishApsStats {
	if x != nil {
		return x.ApsStats
	}
	return nil
}

func (x *DishGetStatusResponse) GetNed2DishQuaternion() *Quaternion {
	if x != nil {
		return x.Ned2DishQuaternion
	}
	return nil
}

func (x *DishGetStatusResponse) GetDownstreamRouters() map[string]*RouterInfo {
	if x != nil {
		return x.DownstreamRouters
	}
	return nil
}

func (x *DishGetStatusResponse) GetAccountShard() account_shard.AccountShard {
	if x != nil {
		return x.AccountShard
	}
	return account_shard.AccountShard(0)
}

func (x *DishGetStatusResponse) GetMacFlag() bool {
	if x != nil {
		return x.MacFlag
	}
	return false
}

type DishGetObstructionMapRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DishGetObstructionMapRequest) Reset() {
	*x = DishGetObstructionMapRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishGetObstructionMapRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishGetObstructionMapRequest) ProtoMessage() {}

func (x *DishGetObstructionMapRequest) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[10]
	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 DishGetObstructionMapRequest.ProtoReflect.Descriptor instead.
func (*DishGetObstructionMapRequest) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{10}
}

type DishGetObstructionMapResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	NumRows uint32    `protobuf:"varint,1,opt,name=num_rows,json=numRows,proto3" json:"num_rows,omitempty"`
	NumCols uint32    `protobuf:"varint,2,opt,name=num_cols,json=numCols,proto3" json:"num_cols,omitempty"`
	Snr     []float32 `protobuf:"fixed32,3,rep,packed,name=snr,proto3" json:"snr,omitempty"`
	// Deprecated: Marked as deprecated in spacex_api/device/dish.proto.
	MinElevationDeg   float32                      `protobuf:"fixed32,4,opt,name=min_elevation_deg,json=minElevationDeg,proto3" json:"min_elevation_deg,omitempty"`
	MaxThetaDeg       float32                      `protobuf:"fixed32,5,opt,name=max_theta_deg,json=maxThetaDeg,proto3" json:"max_theta_deg,omitempty"`
	MapReferenceFrame ObstructionMapReferenceFrame `protobuf:"varint,6,opt,name=map_reference_frame,json=mapReferenceFrame,proto3,enum=SpaceX.API.Device.ObstructionMapReferenceFrame" json:"map_reference_frame,omitempty"`
}

func (x *DishGetObstructionMapResponse) Reset() {
	*x = DishGetObstructionMapResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishGetObstructionMapResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishGetObstructionMapResponse) ProtoMessage() {}

func (x *DishGetObstructionMapResponse) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[11]
	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 DishGetObstructionMapResponse.ProtoReflect.Descriptor instead.
func (*DishGetObstructionMapResponse) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{11}
}

func (x *DishGetObstructionMapResponse) GetNumRows() uint32 {
	if x != nil {
		return x.NumRows
	}
	return 0
}

func (x *DishGetObstructionMapResponse) GetNumCols() uint32 {
	if x != nil {
		return x.NumCols
	}
	return 0
}

func (x *DishGetObstructionMapResponse) GetSnr() []float32 {
	if x != nil {
		return x.Snr
	}
	return nil
}

// Deprecated: Marked as deprecated in spacex_api/device/dish.proto.
func (x *DishGetObstructionMapResponse) GetMinElevationDeg() float32 {
	if x != nil {
		return x.MinElevationDeg
	}
	return 0
}

func (x *DishGetObstructionMapResponse) GetMaxThetaDeg() float32 {
	if x != nil {
		return x.MaxThetaDeg
	}
	return 0
}

func (x *DishGetObstructionMapResponse) GetMapReferenceFrame() ObstructionMapReferenceFrame {
	if x != nil {
		return x.MapReferenceFrame
	}
	return ObstructionMapReferenceFrame_FRAME_UNKNOWN
}

type DishAlerts struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	MotorsStuck                bool `protobuf:"varint,1,opt,name=motors_stuck,json=motorsStuck,proto3" json:"motors_stuck,omitempty"`
	ThermalThrottle            bool `protobuf:"varint,3,opt,name=thermal_throttle,json=thermalThrottle,proto3" json:"thermal_throttle,omitempty"`
	ThermalShutdown            bool `protobuf:"varint,2,opt,name=thermal_shutdown,json=thermalShutdown,proto3" json:"thermal_shutdown,omitempty"`
	MastNotNearVertical        bool `protobuf:"varint,5,opt,name=mast_not_near_vertical,json=mastNotNearVertical,proto3" json:"mast_not_near_vertical,omitempty"`
	UnexpectedLocation         bool `protobuf:"varint,4,opt,name=unexpected_location,json=unexpectedLocation,proto3" json:"unexpected_location,omitempty"`
	SlowEthernetSpeeds         bool `protobuf:"varint,6,opt,name=slow_ethernet_speeds,json=slowEthernetSpeeds,proto3" json:"slow_ethernet_speeds,omitempty"`
	SlowEthernetSpeeds_100     bool `protobuf:"varint,18,opt,name=slow_ethernet_speeds_100,json=slowEthernetSpeeds100,proto3" json:"slow_ethernet_speeds_100,omitempty"`
	Roaming                    bool `protobuf:"varint,7,opt,name=roaming,proto3" json:"roaming,omitempty"`
	InstallPending             bool `protobuf:"varint,8,opt,name=install_pending,json=installPending,proto3" json:"install_pending,omitempty"`
	IsHeating                  bool `protobuf:"varint,9,opt,name=is_heating,json=isHeating,proto3" json:"is_heating,omitempty"`
	PowerSupplyThermalThrottle bool `protobuf:"varint,10,opt,name=power_supply_thermal_throttle,json=powerSupplyThermalThrottle,proto3" json:"power_supply_thermal_throttle,omitempty"`
	IsPowerSaveIdle            bool `protobuf:"varint,11,opt,name=is_power_save_idle,json=isPowerSaveIdle,proto3" json:"is_power_save_idle,omitempty"`
	DbfTelemStale              bool `protobuf:"varint,14,opt,name=dbf_telem_stale,json=dbfTelemStale,proto3" json:"dbf_telem_stale,omitempty"`
	LowMotorCurrent            bool `protobuf:"varint,16,opt,name=low_motor_current,json=lowMotorCurrent,proto3" json:"low_motor_current,omitempty"`
	LowerSignalThanPredicted   bool `protobuf:"varint,17,opt,name=lower_signal_than_predicted,json=lowerSignalThanPredicted,proto3" json:"lower_signal_than_predicted,omitempty"`
	ObstructionMapReset        bool `protobuf:"varint,19,opt,name=obstruction_map_reset,json=obstructionMapReset,proto3" json:"obstruction_map_reset,omitempty"`
	DishWaterDetected          bool `protobuf:"varint,20,opt,name=dish_water_detected,json=dishWaterDetected,proto3" json:"dish_water_detected,omitempty"`
	RouterWaterDetected        bool `protobuf:"varint,21,opt,name=router_water_detected,json=routerWaterDetected,proto3" json:"router_water_detected,omitempty"`
	UpsuRouterPortSlow         bool `protobuf:"varint,22,opt,name=upsu_router_port_slow,json=upsuRouterPortSlow,proto3" json:"upsu_router_port_slow,omitempty"`
	NoEthernetLink             bool `protobuf:"varint,23,opt,name=no_ethernet_link,json=noEthernetLink,proto3" json:"no_ethernet_link,omitempty"`
}

func (x *DishAlerts) Reset() {
	*x = DishAlerts{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishAlerts) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishAlerts) ProtoMessage() {}

func (x *DishAlerts) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[12]
	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 DishAlerts.ProtoReflect.Descriptor instead.
func (*DishAlerts) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{12}
}

func (x *DishAlerts) GetMotorsStuck() bool {
	if x != nil {
		return x.MotorsStuck
	}
	return false
}

func (x *DishAlerts) GetThermalThrottle() bool {
	if x != nil {
		return x.ThermalThrottle
	}
	return false
}

func (x *DishAlerts) GetThermalShutdown() bool {
	if x != nil {
		return x.ThermalShutdown
	}
	return false
}

func (x *DishAlerts) GetMastNotNearVertical() bool {
	if x != nil {
		return x.MastNotNearVertical
	}
	return false
}

func (x *DishAlerts) GetUnexpectedLocation() bool {
	if x != nil {
		return x.UnexpectedLocation
	}
	return false
}

func (x *DishAlerts) GetSlowEthernetSpeeds() bool {
	if x != nil {
		return x.SlowEthernetSpeeds
	}
	return false
}

func (x *DishAlerts) GetSlowEthernetSpeeds_100() bool {
	if x != nil {
		return x.SlowEthernetSpeeds_100
	}
	return false
}

func (x *DishAlerts) GetRoaming() bool {
	if x != nil {
		return x.Roaming
	}
	return false
}

func (x *DishAlerts) GetInstallPending() bool {
	if x != nil {
		return x.InstallPending
	}
	return false
}

func (x *DishAlerts) GetIsHeating() bool {
	if x != nil {
		return x.IsHeating
	}
	return false
}

func (x *DishAlerts) GetPowerSupplyThermalThrottle() bool {
	if x != nil {
		return x.PowerSupplyThermalThrottle
	}
	return false
}

func (x *DishAlerts) GetIsPowerSaveIdle() bool {
	if x != nil {
		return x.IsPowerSaveIdle
	}
	return false
}

func (x *DishAlerts) GetDbfTelemStale() bool {
	if x != nil {
		return x.DbfTelemStale
	}
	return false
}

func (x *DishAlerts) GetLowMotorCurrent() bool {
	if x != nil {
		return x.LowMotorCurrent
	}
	return false
}

func (x *DishAlerts) GetLowerSignalThanPredicted() bool {
	if x != nil {
		return x.LowerSignalThanPredicted
	}
	return false
}

func (x *DishAlerts) GetObstructionMapReset() bool {
	if x != nil {
		return x.ObstructionMapReset
	}
	return false
}

func (x *DishAlerts) GetDishWaterDetected() bool {
	if x != nil {
		return x.DishWaterDetected
	}
	return false
}

func (x *DishAlerts) GetRouterWaterDetected() bool {
	if x != nil {
		return x.RouterWaterDetected
	}
	return false
}

func (x *DishAlerts) GetUpsuRouterPortSlow() bool {
	if x != nil {
		return x.UpsuRouterPortSlow
	}
	return false
}

func (x *DishAlerts) GetNoEthernetLink() bool {
	if x != nil {
		return x.NoEthernetLink
	}
	return false
}

type DishReadyStates struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Cady bool `protobuf:"varint,1,opt,name=cady,proto3" json:"cady,omitempty"`
	Scp  bool `protobuf:"varint,2,opt,name=scp,proto3" json:"scp,omitempty"`
	L1L2 bool `protobuf:"varint,3,opt,name=l1l2,proto3" json:"l1l2,omitempty"`
	Xphy bool `protobuf:"varint,4,opt,name=xphy,proto3" json:"xphy,omitempty"`
	Aap  bool `protobuf:"varint,5,opt,name=aap,proto3" json:"aap,omitempty"`
	Rf   bool `protobuf:"varint,6,opt,name=rf,proto3" json:"rf,omitempty"`
}

func (x *DishReadyStates) Reset() {
	*x = DishReadyStates{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishReadyStates) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishReadyStates) ProtoMessage() {}

func (x *DishReadyStates) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[13]
	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 DishReadyStates.ProtoReflect.Descriptor instead.
func (*DishReadyStates) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{13}
}

func (x *DishReadyStates) GetCady() bool {
	if x != nil {
		return x.Cady
	}
	return false
}

func (x *DishReadyStates) GetScp() bool {
	if x != nil {
		return x.Scp
	}
	return false
}

func (x *DishReadyStates) GetL1L2() bool {
	if x != nil {
		return x.L1L2
	}
	return false
}

func (x *DishReadyStates) GetXphy() bool {
	if x != nil {
		return x.Xphy
	}
	return false
}

func (x *DishReadyStates) GetAap() bool {
	if x != nil {
		return x.Aap
	}
	return false
}

func (x *DishReadyStates) GetRf() bool {
	if x != nil {
		return x.Rf
	}
	return false
}

type DishGpsStats struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	GpsValid        bool   `protobuf:"varint,1,opt,name=gps_valid,json=gpsValid,proto3" json:"gps_valid,omitempty"`
	GpsSats         uint32 `protobuf:"varint,2,opt,name=gps_sats,json=gpsSats,proto3" json:"gps_sats,omitempty"`
	NoSatsAfterTtff bool   `protobuf:"varint,3,opt,name=no_sats_after_ttff,json=noSatsAfterTtff,proto3" json:"no_sats_after_ttff,omitempty"`
	InhibitGps      bool   `protobuf:"varint,4,opt,name=inhibit_gps,json=inhibitGps,proto3" json:"inhibit_gps,omitempty"`
}

func (x *DishGpsStats) Reset() {
	*x = DishGpsStats{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishGpsStats) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishGpsStats) ProtoMessage() {}

func (x *DishGpsStats) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[14]
	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 DishGpsStats.ProtoReflect.Descriptor instead.
func (*DishGpsStats) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{14}
}

func (x *DishGpsStats) GetGpsValid() bool {
	if x != nil {
		return x.GpsValid
	}
	return false
}

func (x *DishGpsStats) GetGpsSats() uint32 {
	if x != nil {
		return x.GpsSats
	}
	return 0
}

func (x *DishGpsStats) GetNoSatsAfterTtff() bool {
	if x != nil {
		return x.NoSatsAfterTtff
	}
	return false
}

func (x *DishGpsStats) GetInhibitGps() bool {
	if x != nil {
		return x.InhibitGps
	}
	return false
}

type SoftwareUpdateStats struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	SoftwareUpdateState    SoftwareUpdateState `protobuf:"varint,1,opt,name=software_update_state,json=softwareUpdateState,proto3,enum=SpaceX.API.Device.SoftwareUpdateState" json:"software_update_state,omitempty"`
	SoftwareUpdateProgress float32             `protobuf:"fixed32,2,opt,name=software_update_progress,json=softwareUpdateProgress,proto3" json:"software_update_progress,omitempty"`
	UpdateRequiresReboot   bool                `protobuf:"varint,3,opt,name=update_requires_reboot,json=updateRequiresReboot,proto3" json:"update_requires_reboot,omitempty"`
	RebootScheduledUtcTime int64               `protobuf:"varint,4,opt,name=reboot_scheduled_utc_time,json=rebootScheduledUtcTime,proto3" json:"reboot_scheduled_utc_time,omitempty"`
}

func (x *SoftwareUpdateStats) Reset() {
	*x = SoftwareUpdateStats{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SoftwareUpdateStats) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SoftwareUpdateStats) ProtoMessage() {}

func (x *SoftwareUpdateStats) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[15]
	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 SoftwareUpdateStats.ProtoReflect.Descriptor instead.
func (*SoftwareUpdateStats) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{15}
}

func (x *SoftwareUpdateStats) GetSoftwareUpdateState() SoftwareUpdateState {
	if x != nil {
		return x.SoftwareUpdateState
	}
	return SoftwareUpdateState_SOFTWARE_UPDATE_STATE_UNKNOWN
}

func (x *SoftwareUpdateStats) GetSoftwareUpdateProgress() float32 {
	if x != nil {
		return x.SoftwareUpdateProgress
	}
	return 0
}

func (x *SoftwareUpdateStats) GetUpdateRequiresReboot() bool {
	if x != nil {
		return x.UpdateRequiresReboot
	}
	return false
}

func (x *SoftwareUpdateStats) GetRebootScheduledUtcTime() int64 {
	if x != nil {
		return x.RebootScheduledUtcTime
	}
	return 0
}

type AlignmentStats struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	HasActuators                 HasActuators            `protobuf:"varint,1,opt,name=has_actuators,json=hasActuators,proto3,enum=SpaceX.API.Device.HasActuators" json:"has_actuators,omitempty"`
	ActuatorState                ActuatorState           `protobuf:"varint,2,opt,name=actuator_state,json=actuatorState,proto3,enum=SpaceX.API.Device.ActuatorState" json:"actuator_state,omitempty"`
	TiltAngleDeg                 float32                 `protobuf:"fixed32,3,opt,name=tilt_angle_deg,json=tiltAngleDeg,proto3" json:"tilt_angle_deg,omitempty"`
	BoresightAzimuthDeg          float32                 `protobuf:"fixed32,4,opt,name=boresight_azimuth_deg,json=boresightAzimuthDeg,proto3" json:"boresight_azimuth_deg,omitempty"`
	BoresightElevationDeg        float32                 `protobuf:"fixed32,5,opt,name=boresight_elevation_deg,json=boresightElevationDeg,proto3" json:"boresight_elevation_deg,omitempty"`
	DesiredBoresightAzimuthDeg   float32                 `protobuf:"fixed32,8,opt,name=desired_boresight_azimuth_deg,json=desiredBoresightAzimuthDeg,proto3" json:"desired_boresight_azimuth_deg,omitempty"`
	DesiredBoresightElevationDeg float32                 `protobuf:"fixed32,9,opt,name=desired_boresight_elevation_deg,json=desiredBoresightElevationDeg,proto3" json:"desired_boresight_elevation_deg,omitempty"`
	AttitudeEstimationState      AttitudeEstimationState `protobuf:"varint,6,opt,name=attitude_estimation_state,json=attitudeEstimationState,proto3,enum=SpaceX.API.Device.AttitudeEstimationState" json:"attitude_estimation_state,omitempty"`
	AttitudeUncertaintyDeg       float32                 `protobuf:"fixed32,7,opt,name=attitude_uncertainty_deg,json=attitudeUncertaintyDeg,proto3" json:"attitude_uncertainty_deg,omitempty"`
}

func (x *AlignmentStats) Reset() {
	*x = AlignmentStats{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *AlignmentStats) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*AlignmentStats) ProtoMessage() {}

func (x *AlignmentStats) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[16]
	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 AlignmentStats.ProtoReflect.Descriptor instead.
func (*AlignmentStats) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{16}
}

func (x *AlignmentStats) GetHasActuators() HasActuators {
	if x != nil {
		return x.HasActuators
	}
	return HasActuators_HAS_ACTUATORS_UNKNOWN
}

func (x *AlignmentStats) GetActuatorState() ActuatorState {
	if x != nil {
		return x.ActuatorState
	}
	return ActuatorState_ACTUATOR_STATE_IDLE
}

func (x *AlignmentStats) GetTiltAngleDeg() float32 {
	if x != nil {
		return x.TiltAngleDeg
	}
	return 0
}

func (x *AlignmentStats) GetBoresightAzimuthDeg() float32 {
	if x != nil {
		return x.BoresightAzimuthDeg
	}
	return 0
}

func (x *AlignmentStats) GetBoresightElevationDeg() float32 {
	if x != nil {
		return x.BoresightElevationDeg
	}
	return 0
}

func (x *AlignmentStats) GetDesiredBoresightAzimuthDeg() float32 {
	if x != nil {
		return x.DesiredBoresightAzimuthDeg
	}
	return 0
}

func (x *AlignmentStats) GetDesiredBoresightElevationDeg() float32 {
	if x != nil {
		return x.DesiredBoresightElevationDeg
	}
	return 0
}

func (x *AlignmentStats) GetAttitudeEstimationState() AttitudeEstimationState {
	if x != nil {
		return x.AttitudeEstimationState
	}
	return AttitudeEstimationState_FILTER_RESET
}

func (x *AlignmentStats) GetAttitudeUncertaintyDeg() float32 {
	if x != nil {
		return x.AttitudeUncertaintyDeg
	}
	return 0
}

type DishObstructionStats struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	CurrentlyObstructed              bool    `protobuf:"varint,5,opt,name=currently_obstructed,json=currentlyObstructed,proto3" json:"currently_obstructed,omitempty"`
	FractionObstructed               float32 `protobuf:"fixed32,1,opt,name=fraction_obstructed,json=fractionObstructed,proto3" json:"fraction_obstructed,omitempty"`
	TimeObstructed                   float32 `protobuf:"fixed32,9,opt,name=time_obstructed,json=timeObstructed,proto3" json:"time_obstructed,omitempty"`
	ValidS                           float32 `protobuf:"fixed32,4,opt,name=valid_s,json=validS,proto3" json:"valid_s,omitempty"`
	PatchesValid                     uint32  `protobuf:"varint,10,opt,name=patches_valid,json=patchesValid,proto3" json:"patches_valid,omitempty"`
	AvgProlongedObstructionDurationS float32 `protobuf:"fixed32,6,opt,name=avg_prolonged_obstruction_duration_s,json=avgProlongedObstructionDurationS,proto3" json:"avg_prolonged_obstruction_duration_s,omitempty"`
	AvgProlongedObstructionIntervalS float32 `protobuf:"fixed32,7,opt,name=avg_prolonged_obstruction_interval_s,json=avgProlongedObstructionIntervalS,proto3" json:"avg_prolonged_obstruction_interval_s,omitempty"`
	AvgProlongedObstructionValid     bool    `protobuf:"varint,8,opt,name=avg_prolonged_obstruction_valid,json=avgProlongedObstructionValid,proto3" json:"avg_prolonged_obstruction_valid,omitempty"`
}

func (x *DishObstructionStats) Reset() {
	*x = DishObstructionStats{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishObstructionStats) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishObstructionStats) ProtoMessage() {}

func (x *DishObstructionStats) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[17]
	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 DishObstructionStats.ProtoReflect.Descriptor instead.
func (*DishObstructionStats) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{17}
}

func (x *DishObstructionStats) GetCurrentlyObstructed() bool {
	if x != nil {
		return x.CurrentlyObstructed
	}
	return false
}

func (x *DishObstructionStats) GetFractionObstructed() float32 {
	if x != nil {
		return x.FractionObstructed
	}
	return 0
}

func (x *DishObstructionStats) GetTimeObstructed() float32 {
	if x != nil {
		return x.TimeObstructed
	}
	return 0
}

func (x *DishObstructionStats) GetValidS() float32 {
	if x != nil {
		return x.ValidS
	}
	return 0
}

func (x *DishObstructionStats) GetPatchesValid() uint32 {
	if x != nil {
		return x.PatchesValid
	}
	return 0
}

func (x *DishObstructionStats) GetAvgProlongedObstructionDurationS() float32 {
	if x != nil {
		return x.AvgProlongedObstructionDurationS
	}
	return 0
}

func (x *DishObstructionStats) GetAvgProlongedObstructionIntervalS() float32 {
	if x != nil {
		return x.AvgProlongedObstructionIntervalS
	}
	return 0
}

func (x *DishObstructionStats) GetAvgProlongedObstructionValid() bool {
	if x != nil {
		return x.AvgProlongedObstructionValid
	}
	return false
}

type DishUpsuStats struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AppVersion            uint64  `protobuf:"varint,2,opt,name=app_version,json=appVersion,proto3" json:"app_version,omitempty"`
	BootVersion           uint64  `protobuf:"varint,3,opt,name=boot_version,json=bootVersion,proto3" json:"boot_version,omitempty"`
	RomVersion            uint64  `protobuf:"varint,4,opt,name=rom_version,json=romVersion,proto3" json:"rom_version,omitempty"`
	Uptime                int64   `protobuf:"varint,5,opt,name=uptime,proto3" json:"uptime,omitempty"`
	DishPower             float32 `protobuf:"fixed32,6,opt,name=dish_power,json=dishPower,proto3" json:"dish_power,omitempty"`
	RouterPower           float32 `protobuf:"fixed32,7,opt,name=router_power,json=routerPower,proto3" json:"router_power,omitempty"`
	ForceDevSignedAllowed bool    `protobuf:"varint,8,opt,name=force_dev_signed_allowed,json=forceDevSignedAllowed,proto3" json:"force_dev_signed_allowed,omitempty"`
	DebugPortLocked       bool    `protobuf:"varint,9,opt,name=debug_port_locked,json=debugPortLocked,proto3" json:"debug_port_locked,omitempty"`
	StsafeCertsLocked     bool    `protobuf:"varint,10,opt,name=stsafe_certs_locked,json=stsafeCertsLocked,proto3" json:"stsafe_certs_locked,omitempty"`
	StsafeKeysLocked      bool    `protobuf:"varint,11,opt,name=stsafe_keys_locked,json=stsafeKeysLocked,proto3" json:"stsafe_keys_locked,omitempty"`
	G0Locked              uint32  `protobuf:"varint,12,opt,name=g0_locked,json=g0Locked,proto3" json:"g0_locked,omitempty"`
	G0FirmwareVersion     uint32  `protobuf:"varint,13,opt,name=g0_firmware_version,json=g0FirmwareVersion,proto3" json:"g0_firmware_version,omitempty"`
	BoardRev              int32   `protobuf:"varint,14,opt,name=board_rev,json=boardRev,proto3" json:"board_rev,omitempty"`
	G0BoardId             uint32  `protobuf:"varint,15,opt,name=g0_board_id,json=g0BoardId,proto3" json:"g0_board_id,omitempty"`
}

func (x *DishUpsuStats) Reset() {
	*x = DishUpsuStats{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishUpsuStats) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishUpsuStats) ProtoMessage() {}

func (x *DishUpsuStats) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[18]
	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 DishUpsuStats.ProtoReflect.Descriptor instead.
func (*DishUpsuStats) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{18}
}

func (x *DishUpsuStats) GetAppVersion() uint64 {
	if x != nil {
		return x.AppVersion
	}
	return 0
}

func (x *DishUpsuStats) GetBootVersion() uint64 {
	if x != nil {
		return x.BootVersion
	}
	return 0
}

func (x *DishUpsuStats) GetRomVersion() uint64 {
	if x != nil {
		return x.RomVersion
	}
	return 0
}

func (x *DishUpsuStats) GetUptime() int64 {
	if x != nil {
		return x.Uptime
	}
	return 0
}

func (x *DishUpsuStats) GetDishPower() float32 {
	if x != nil {
		return x.DishPower
	}
	return 0
}

func (x *DishUpsuStats) GetRouterPower() float32 {
	if x != nil {
		return x.RouterPower
	}
	return 0
}

func (x *DishUpsuStats) GetForceDevSignedAllowed() bool {
	if x != nil {
		return x.ForceDevSignedAllowed
	}
	return false
}

func (x *DishUpsuStats) GetDebugPortLocked() bool {
	if x != nil {
		return x.DebugPortLocked
	}
	return false
}

func (x *DishUpsuStats) GetStsafeCertsLocked() bool {
	if x != nil {
		return x.StsafeCertsLocked
	}
	return false
}

func (x *DishUpsuStats) GetStsafeKeysLocked() bool {
	if x != nil {
		return x.StsafeKeysLocked
	}
	return false
}

func (x *DishUpsuStats) GetG0Locked() uint32 {
	if x != nil {
		return x.G0Locked
	}
	return 0
}

func (x *DishUpsuStats) GetG0FirmwareVersion() uint32 {
	if x != nil {
		return x.G0FirmwareVersion
	}
	return 0
}

func (x *DishUpsuStats) GetBoardRev() int32 {
	if x != nil {
		return x.BoardRev
	}
	return 0
}

func (x *DishUpsuStats) GetG0BoardId() uint32 {
	if x != nil {
		return x.G0BoardId
	}
	return 0
}

type DishApsStats struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AppVersion            uint64  `protobuf:"varint,2,opt,name=app_version,json=appVersion,proto3" json:"app_version,omitempty"`
	BootVersion           uint64  `protobuf:"varint,3,opt,name=boot_version,json=bootVersion,proto3" json:"boot_version,omitempty"`
	RomVersion            uint64  `protobuf:"varint,4,opt,name=rom_version,json=romVersion,proto3" json:"rom_version,omitempty"`
	Uptime                int64   `protobuf:"varint,5,opt,name=uptime,proto3" json:"uptime,omitempty"`
	DishPower             float32 `protobuf:"fixed32,6,opt,name=dish_power,json=dishPower,proto3" json:"dish_power,omitempty"`
	ForceDevSignedAllowed bool    `protobuf:"varint,7,opt,name=force_dev_signed_allowed,json=forceDevSignedAllowed,proto3" json:"force_dev_signed_allowed,omitempty"`
	DebugPortLocked       bool    `protobuf:"varint,8,opt,name=debug_port_locked,json=debugPortLocked,proto3" json:"debug_port_locked,omitempty"`
	BoardRev              int32   `protobuf:"varint,9,opt,name=board_rev,json=boardRev,proto3" json:"board_rev,omitempty"`
}

func (x *DishApsStats) Reset() {
	*x = DishApsStats{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishApsStats) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishApsStats) ProtoMessage() {}

func (x *DishApsStats) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[19]
	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 DishApsStats.ProtoReflect.Descriptor instead.
func (*DishApsStats) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{19}
}

func (x *DishApsStats) GetAppVersion() uint64 {
	if x != nil {
		return x.AppVersion
	}
	return 0
}

func (x *DishApsStats) GetBootVersion() uint64 {
	if x != nil {
		return x.BootVersion
	}
	return 0
}

func (x *DishApsStats) GetRomVersion() uint64 {
	if x != nil {
		return x.RomVersion
	}
	return 0
}

func (x *DishApsStats) GetUptime() int64 {
	if x != nil {
		return x.Uptime
	}
	return 0
}

func (x *DishApsStats) GetDishPower() float32 {
	if x != nil {
		return x.DishPower
	}
	return 0
}

func (x *DishApsStats) GetForceDevSignedAllowed() bool {
	if x != nil {
		return x.ForceDevSignedAllowed
	}
	return false
}

func (x *DishApsStats) GetDebugPortLocked() bool {
	if x != nil {
		return x.DebugPortLocked
	}
	return false
}

func (x *DishApsStats) GetBoardRev() int32 {
	if x != nil {
		return x.BoardRev
	}
	return 0
}

type InitializationDurationSeconds struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AttitudeInitialization int32 `protobuf:"varint,1,opt,name=attitude_initialization,json=attitudeInitialization,proto3" json:"attitude_initialization,omitempty"`
	BurstDetected          int32 `protobuf:"varint,2,opt,name=burst_detected,json=burstDetected,proto3" json:"burst_detected,omitempty"`
	EkfConverged           int32 `protobuf:"varint,3,opt,name=ekf_converged,json=ekfConverged,proto3" json:"ekf_converged,omitempty"`
	FirstCplane            int32 `protobuf:"varint,4,opt,name=first_cplane,json=firstCplane,proto3" json:"first_cplane,omitempty"`
	FirstPopPing           int32 `protobuf:"varint,5,opt,name=first_pop_ping,json=firstPopPing,proto3" json:"first_pop_ping,omitempty"`
	GpsValid               int32 `protobuf:"varint,6,opt,name=gps_valid,json=gpsValid,proto3" json:"gps_valid,omitempty"`
	InitialNetworkEntry    int32 `protobuf:"varint,7,opt,name=initial_network_entry,json=initialNetworkEntry,proto3" json:"initial_network_entry,omitempty"`
	NetworkSchedule        int32 `protobuf:"varint,8,opt,name=network_schedule,json=networkSchedule,proto3" json:"network_schedule,omitempty"`
	RfReady                int32 `protobuf:"varint,9,opt,name=rf_ready,json=rfReady,proto3" json:"rf_ready,omitempty"`
	StableConnection       int32 `protobuf:"varint,10,opt,name=stable_connection,json=stableConnection,proto3" json:"stable_connection,omitempty"`
}

func (x *InitializationDurationSeconds) Reset() {
	*x = InitializationDurationSeconds{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *InitializationDurationSeconds) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*InitializationDurationSeconds) ProtoMessage() {}

func (x *InitializationDurationSeconds) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[20]
	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 InitializationDurationSeconds.ProtoReflect.Descriptor instead.
func (*InitializationDurationSeconds) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{20}
}

func (x *InitializationDurationSeconds) GetAttitudeInitialization() int32 {
	if x != nil {
		return x.AttitudeInitialization
	}
	return 0
}

func (x *InitializationDurationSeconds) GetBurstDetected() int32 {
	if x != nil {
		return x.BurstDetected
	}
	return 0
}

func (x *InitializationDurationSeconds) GetEkfConverged() int32 {
	if x != nil {
		return x.EkfConverged
	}
	return 0
}

func (x *InitializationDurationSeconds) GetFirstCplane() int32 {
	if x != nil {
		return x.FirstCplane
	}
	return 0
}

func (x *InitializationDurationSeconds) GetFirstPopPing() int32 {
	if x != nil {
		return x.FirstPopPing
	}
	return 0
}

func (x *InitializationDurationSeconds) GetGpsValid() int32 {
	if x != nil {
		return x.GpsValid
	}
	return 0
}

func (x *InitializationDurationSeconds) GetInitialNetworkEntry() int32 {
	if x != nil {
		return x.InitialNetworkEntry
	}
	return 0
}

func (x *InitializationDurationSeconds) GetNetworkSchedule() int32 {
	if x != nil {
		return x.NetworkSchedule
	}
	return 0
}

func (x *InitializationDurationSeconds) GetRfReady() int32 {
	if x != nil {
		return x.RfReady
	}
	return 0
}

func (x *InitializationDurationSeconds) GetStableConnection() int32 {
	if x != nil {
		return x.StableConnection
	}
	return 0
}

type DishAuthenticateResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Dish *ChallengeResponse `protobuf:"bytes,2,opt,name=dish,proto3" json:"dish,omitempty"`
}

func (x *DishAuthenticateResponse) Reset() {
	*x = DishAuthenticateResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishAuthenticateResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishAuthenticateResponse) ProtoMessage() {}

func (x *DishAuthenticateResponse) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[21]
	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 DishAuthenticateResponse.ProtoReflect.Descriptor instead.
func (*DishAuthenticateResponse) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{21}
}

func (x *DishAuthenticateResponse) GetDish() *ChallengeResponse {
	if x != nil {
		return x.Dish
	}
	return nil
}

type SelfTestRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Detailed bool `protobuf:"varint,1,opt,name=detailed,proto3" json:"detailed,omitempty"`
}

func (x *SelfTestRequest) Reset() {
	*x = SelfTestRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SelfTestRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SelfTestRequest) ProtoMessage() {}

func (x *SelfTestRequest) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[22]
	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 SelfTestRequest.ProtoReflect.Descriptor instead.
func (*SelfTestRequest) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{22}
}

func (x *SelfTestRequest) GetDetailed() bool {
	if x != nil {
		return x.Detailed
	}
	return false
}

type SelfTestResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Passed bool   `protobuf:"varint,1,opt,name=passed,proto3" json:"passed,omitempty"`
	Report string `protobuf:"bytes,2,opt,name=report,proto3" json:"report,omitempty"`
}

func (x *SelfTestResponse) Reset() {
	*x = SelfTestResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SelfTestResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SelfTestResponse) ProtoMessage() {}

func (x *SelfTestResponse) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[23]
	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 SelfTestResponse.ProtoReflect.Descriptor instead.
func (*SelfTestResponse) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{23}
}

func (x *SelfTestResponse) GetPassed() bool {
	if x != nil {
		return x.Passed
	}
	return false
}

func (x *SelfTestResponse) GetReport() string {
	if x != nil {
		return x.Report
	}
	return ""
}

type SetTestModeRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	RfMode                SetTestModeRequest_RfMode `protobuf:"varint,1,opt,name=rf_mode,json=rfMode,proto3,enum=SpaceX.API.Device.SetTestModeRequest_RfMode" json:"rf_mode,omitempty"`
	DisableLossOfCommFdir bool                      `protobuf:"varint,1001,opt,name=disable_loss_of_comm_fdir,json=disableLossOfCommFdir,proto3" json:"disable_loss_of_comm_fdir,omitempty"`
	EnableRulesOverride   bool                      `protobuf:"varint,1002,opt,name=enable_rules_override,json=enableRulesOverride,proto3" json:"enable_rules_override,omitempty"`
}

func (x *SetTestModeRequest) Reset() {
	*x = SetTestModeRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SetTestModeRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SetTestModeRequest) ProtoMessage() {}

func (x *SetTestModeRequest) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[24]
	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 SetTestModeRequest.ProtoReflect.Descriptor instead.
func (*SetTestModeRequest) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{24}
}

func (x *SetTestModeRequest) GetRfMode() SetTestModeRequest_RfMode {
	if x != nil {
		return x.RfMode
	}
	return SetTestModeRequest_RX
}

func (x *SetTestModeRequest) GetDisableLossOfCommFdir() bool {
	if x != nil {
		return x.DisableLossOfCommFdir
	}
	return false
}

func (x *SetTestModeRequest) GetEnableRulesOverride() bool {
	if x != nil {
		return x.EnableRulesOverride
	}
	return false
}

type SetTestModeResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *SetTestModeResponse) Reset() {
	*x = SetTestModeResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *SetTestModeResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*SetTestModeResponse) ProtoMessage() {}

func (x *SetTestModeResponse) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[25]
	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 SetTestModeResponse.ProtoReflect.Descriptor instead.
func (*SetTestModeResponse) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{25}
}

type DishSetConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DishConfig *DishConfig `protobuf:"bytes,1,opt,name=dish_config,json=dishConfig,proto3" json:"dish_config,omitempty"`
}

func (x *DishSetConfigRequest) Reset() {
	*x = DishSetConfigRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishSetConfigRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishSetConfigRequest) ProtoMessage() {}

func (x *DishSetConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[26]
	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 DishSetConfigRequest.ProtoReflect.Descriptor instead.
func (*DishSetConfigRequest) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{26}
}

func (x *DishSetConfigRequest) GetDishConfig() *DishConfig {
	if x != nil {
		return x.DishConfig
	}
	return nil
}

type DishSetConfigResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	UpdatedDishConfig *DishConfig `protobuf:"bytes,1,opt,name=updated_dish_config,json=updatedDishConfig,proto3" json:"updated_dish_config,omitempty"`
	Error             string      `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
}

func (x *DishSetConfigResponse) Reset() {
	*x = DishSetConfigResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishSetConfigResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishSetConfigResponse) ProtoMessage() {}

func (x *DishSetConfigResponse) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[27]
	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 DishSetConfigResponse.ProtoReflect.Descriptor instead.
func (*DishSetConfigResponse) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{27}
}

func (x *DishSetConfigResponse) GetUpdatedDishConfig() *DishConfig {
	if x != nil {
		return x.UpdatedDishConfig
	}
	return nil
}

func (x *DishSetConfigResponse) GetError() string {
	if x != nil {
		return x.Error
	}
	return ""
}

type DishGetConfigRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DishGetConfigRequest) Reset() {
	*x = DishGetConfigRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishGetConfigRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishGetConfigRequest) ProtoMessage() {}

func (x *DishGetConfigRequest) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[28]
	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 DishGetConfigRequest.ProtoReflect.Descriptor instead.
func (*DishGetConfigRequest) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{28}
}

type DishGetConfigResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DishConfig *DishConfig `protobuf:"bytes,1,opt,name=dish_config,json=dishConfig,proto3" json:"dish_config,omitempty"`
}

func (x *DishGetConfigResponse) Reset() {
	*x = DishGetConfigResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishGetConfigResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishGetConfigResponse) ProtoMessage() {}

func (x *DishGetConfigResponse) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[29]
	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 DishGetConfigResponse.ProtoReflect.Descriptor instead.
func (*DishGetConfigResponse) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{29}
}

func (x *DishGetConfigResponse) GetDishConfig() *DishConfig {
	if x != nil {
		return x.DishConfig
	}
	return nil
}

type DishInhibitRfRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	InhibitRf bool `protobuf:"varint,1,opt,name=inhibit_rf,json=inhibitRf,proto3" json:"inhibit_rf,omitempty"`
}

func (x *DishInhibitRfRequest) Reset() {
	*x = DishInhibitRfRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[30]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishInhibitRfRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishInhibitRfRequest) ProtoMessage() {}

func (x *DishInhibitRfRequest) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[30]
	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 DishInhibitRfRequest.ProtoReflect.Descriptor instead.
func (*DishInhibitRfRequest) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{30}
}

func (x *DishInhibitRfRequest) GetInhibitRf() bool {
	if x != nil {
		return x.InhibitRf
	}
	return false
}

type DishInhibitRfResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	InhibitRf bool `protobuf:"varint,1,opt,name=inhibit_rf,json=inhibitRf,proto3" json:"inhibit_rf,omitempty"`
}

func (x *DishInhibitRfResponse) Reset() {
	*x = DishInhibitRfResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[31]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishInhibitRfResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishInhibitRfResponse) ProtoMessage() {}

func (x *DishInhibitRfResponse) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[31]
	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 DishInhibitRfResponse.ProtoReflect.Descriptor instead.
func (*DishInhibitRfResponse) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{31}
}

func (x *DishInhibitRfResponse) GetInhibitRf() bool {
	if x != nil {
		return x.InhibitRf
	}
	return false
}

type DishInhibitGpsRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	InhibitGps bool `protobuf:"varint,1,opt,name=inhibit_gps,json=inhibitGps,proto3" json:"inhibit_gps,omitempty"`
}

func (x *DishInhibitGpsRequest) Reset() {
	*x = DishInhibitGpsRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[32]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishInhibitGpsRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishInhibitGpsRequest) ProtoMessage() {}

func (x *DishInhibitGpsRequest) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[32]
	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 DishInhibitGpsRequest.ProtoReflect.Descriptor instead.
func (*DishInhibitGpsRequest) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{32}
}

func (x *DishInhibitGpsRequest) GetInhibitGps() bool {
	if x != nil {
		return x.InhibitGps
	}
	return false
}

type DishInhibitGpsResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	InhibitGps bool `protobuf:"varint,1,opt,name=inhibit_gps,json=inhibitGps,proto3" json:"inhibit_gps,omitempty"`
}

func (x *DishInhibitGpsResponse) Reset() {
	*x = DishInhibitGpsResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[33]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishInhibitGpsResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishInhibitGpsResponse) ProtoMessage() {}

func (x *DishInhibitGpsResponse) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[33]
	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 DishInhibitGpsResponse.ProtoReflect.Descriptor instead.
func (*DishInhibitGpsResponse) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{33}
}

func (x *DishInhibitGpsResponse) GetInhibitGps() bool {
	if x != nil {
		return x.InhibitGps
	}
	return false
}

type DishGetDataRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"`
}

func (x *DishGetDataRequest) Reset() {
	*x = DishGetDataRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[34]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishGetDataRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishGetDataRequest) ProtoMessage() {}

func (x *DishGetDataRequest) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[34]
	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 DishGetDataRequest.ProtoReflect.Descriptor instead.
func (*DishGetDataRequest) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{34}
}

func (x *DishGetDataRequest) GetId() uint32 {
	if x != nil {
		return x.Id
	}
	return 0
}

type DishClearObstructionMapRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DishClearObstructionMapRequest) Reset() {
	*x = DishClearObstructionMapRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[35]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishClearObstructionMapRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishClearObstructionMapRequest) ProtoMessage() {}

func (x *DishClearObstructionMapRequest) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[35]
	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 DishClearObstructionMapRequest.ProtoReflect.Descriptor instead.
func (*DishClearObstructionMapRequest) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{35}
}

type DishClearObstructionMapResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DishClearObstructionMapResponse) Reset() {
	*x = DishClearObstructionMapResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[36]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishClearObstructionMapResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishClearObstructionMapResponse) ProtoMessage() {}

func (x *DishClearObstructionMapResponse) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[36]
	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 DishClearObstructionMapResponse.ProtoReflect.Descriptor instead.
func (*DishClearObstructionMapResponse) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{36}
}

type DishActivateRssiScanRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ScanQuery *DishActivateRssiScan `protobuf:"bytes,1,opt,name=scan_query,json=scanQuery,proto3" json:"scan_query,omitempty"`
}

func (x *DishActivateRssiScanRequest) Reset() {
	*x = DishActivateRssiScanRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[37]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishActivateRssiScanRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishActivateRssiScanRequest) ProtoMessage() {}

func (x *DishActivateRssiScanRequest) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[37]
	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 DishActivateRssiScanRequest.ProtoReflect.Descriptor instead.
func (*DishActivateRssiScanRequest) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{37}
}

func (x *DishActivateRssiScanRequest) GetScanQuery() *DishActivateRssiScan {
	if x != nil {
		return x.ScanQuery
	}
	return nil
}

type DishActivateRssiScanResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"`
}

func (x *DishActivateRssiScanResponse) Reset() {
	*x = DishActivateRssiScanResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[38]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishActivateRssiScanResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishActivateRssiScanResponse) ProtoMessage() {}

func (x *DishActivateRssiScanResponse) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[38]
	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 DishActivateRssiScanResponse.ProtoReflect.Descriptor instead.
func (*DishActivateRssiScanResponse) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{38}
}

func (x *DishActivateRssiScanResponse) GetSuccess() bool {
	if x != nil {
		return x.Success
	}
	return false
}

type DishGetRssiScanResultRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DishGetRssiScanResultRequest) Reset() {
	*x = DishGetRssiScanResultRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[39]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishGetRssiScanResultRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishGetRssiScanResultRequest) ProtoMessage() {}

func (x *DishGetRssiScanResultRequest) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[39]
	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 DishGetRssiScanResultRequest.ProtoReflect.Descriptor instead.
func (*DishGetRssiScanResultRequest) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{39}
}

type DishGetRssiScanResultResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Result *DishGetRssiScanResult `protobuf:"bytes,1,opt,name=result,proto3" json:"result,omitempty"`
}

func (x *DishGetRssiScanResultResponse) Reset() {
	*x = DishGetRssiScanResultResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[40]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishGetRssiScanResultResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishGetRssiScanResultResponse) ProtoMessage() {}

func (x *DishGetRssiScanResultResponse) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[40]
	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 DishGetRssiScanResultResponse.ProtoReflect.Descriptor instead.
func (*DishGetRssiScanResultResponse) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{40}
}

func (x *DishGetRssiScanResultResponse) GetResult() *DishGetRssiScanResult {
	if x != nil {
		return x.Result
	}
	return nil
}

type DishFactoryResetRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	AppReset bool `protobuf:"varint,1,opt,name=app_reset,json=appReset,proto3" json:"app_reset,omitempty"`
}

func (x *DishFactoryResetRequest) Reset() {
	*x = DishFactoryResetRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[41]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishFactoryResetRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishFactoryResetRequest) ProtoMessage() {}

func (x *DishFactoryResetRequest) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[41]
	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 DishFactoryResetRequest.ProtoReflect.Descriptor instead.
func (*DishFactoryResetRequest) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{41}
}

func (x *DishFactoryResetRequest) GetAppReset() bool {
	if x != nil {
		return x.AppReset
	}
	return false
}

type DishFactoryResetResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *DishFactoryResetResponse) Reset() {
	*x = DishFactoryResetResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[42]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *DishFactoryResetResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*DishFactoryResetResponse) ProtoMessage() {}

func (x *DishFactoryResetResponse) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[42]
	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 DishFactoryResetResponse.ProtoReflect.Descriptor instead.
func (*DishFactoryResetResponse) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{42}
}

type ResetButtonRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Pressed bool `protobuf:"varint,1,opt,name=pressed,proto3" json:"pressed,omitempty"`
}

func (x *ResetButtonRequest) Reset() {
	*x = ResetButtonRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[43]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResetButtonRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResetButtonRequest) ProtoMessage() {}

func (x *ResetButtonRequest) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[43]
	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 ResetButtonRequest.ProtoReflect.Descriptor instead.
func (*ResetButtonRequest) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{43}
}

func (x *ResetButtonRequest) GetPressed() bool {
	if x != nil {
		return x.Pressed
	}
	return false
}

type ResetButtonResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *ResetButtonResponse) Reset() {
	*x = ResetButtonResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[44]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *ResetButtonResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*ResetButtonResponse) ProtoMessage() {}

func (x *ResetButtonResponse) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[44]
	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 ResetButtonResponse.ProtoReflect.Descriptor instead.
func (*ResetButtonResponse) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{44}
}

type PLCStats struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ReceivingPlc         bool                      `protobuf:"varint,1,opt,name=receiving_plc,json=receivingPlc,proto3" json:"receiving_plc,omitempty"`
	AverageTimeToEmpty   uint32                    `protobuf:"varint,2,opt,name=average_time_to_empty,json=averageTimeToEmpty,proto3" json:"average_time_to_empty,omitempty"`
	AverageTimeToFull    uint32                    `protobuf:"varint,3,opt,name=average_time_to_full,json=averageTimeToFull,proto3" json:"average_time_to_full,omitempty"`
	BatteryHealth        uint32                    `protobuf:"varint,4,opt,name=battery_health,json=batteryHealth,proto3" json:"battery_health,omitempty"`
	HardwareRevisionId   uint32                    `protobuf:"varint,5,opt,name=hardware_revision_id,json=hardwareRevisionId,proto3" json:"hardware_revision_id,omitempty"`
	PermanentFailure     bool                      `protobuf:"varint,6,opt,name=permanent_failure,json=permanentFailure,proto3" json:"permanent_failure,omitempty"`
	Port_1Stats          *PLCPortStats             `protobuf:"bytes,7,opt,name=port_1_stats,json=port1Stats,proto3" json:"port_1_stats,omitempty"`
	Port_2Stats          *PLCPortStats             `protobuf:"bytes,8,opt,name=port_2_stats,json=port2Stats,proto3" json:"port_2_stats,omitempty"`
	Port_3Stats          *PLCPortStats             `protobuf:"bytes,9,opt,name=port_3_stats,json=port3Stats,proto3" json:"port_3_stats,omitempty"`
	PlcRevision          PLCStats_ProtocolRevision `protobuf:"varint,10,opt,name=plc_revision,json=plcRevision,proto3,enum=SpaceX.API.Device.PLCStats_ProtocolRevision" json:"plc_revision,omitempty"`
	SafetyModeActive     bool                      `protobuf:"varint,11,opt,name=safety_mode_active,json=safetyModeActive,proto3" json:"safety_mode_active,omitempty"`
	StateOfCharge        uint32                    `protobuf:"varint,12,opt,name=state_of_charge,json=stateOfCharge,proto3" json:"state_of_charge,omitempty"`
	ThermalThrottleLevel uint32                    `protobuf:"varint,13,opt,name=thermal_throttle_level,json=thermalThrottleLevel,proto3" json:"thermal_throttle_level,omitempty"`
}

func (x *PLCStats) Reset() {
	*x = PLCStats{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[45]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PLCStats) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PLCStats) ProtoMessage() {}

func (x *PLCStats) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[45]
	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 PLCStats.ProtoReflect.Descriptor instead.
func (*PLCStats) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{45}
}

func (x *PLCStats) GetReceivingPlc() bool {
	if x != nil {
		return x.ReceivingPlc
	}
	return false
}

func (x *PLCStats) GetAverageTimeToEmpty() uint32 {
	if x != nil {
		return x.AverageTimeToEmpty
	}
	return 0
}

func (x *PLCStats) GetAverageTimeToFull() uint32 {
	if x != nil {
		return x.AverageTimeToFull
	}
	return 0
}

func (x *PLCStats) GetBatteryHealth() uint32 {
	if x != nil {
		return x.BatteryHealth
	}
	return 0
}

func (x *PLCStats) GetHardwareRevisionId() uint32 {
	if x != nil {
		return x.HardwareRevisionId
	}
	return 0
}

func (x *PLCStats) GetPermanentFailure() bool {
	if x != nil {
		return x.PermanentFailure
	}
	return false
}

func (x *PLCStats) GetPort_1Stats() *PLCPortStats {
	if x != nil {
		return x.Port_1Stats
	}
	return nil
}

func (x *PLCStats) GetPort_2Stats() *PLCPortStats {
	if x != nil {
		return x.Port_2Stats
	}
	return nil
}

func (x *PLCStats) GetPort_3Stats() *PLCPortStats {
	if x != nil {
		return x.Port_3Stats
	}
	return nil
}

func (x *PLCStats) GetPlcRevision() PLCStats_ProtocolRevision {
	if x != nil {
		return x.PlcRevision
	}
	return PLCStats_REV_D
}

func (x *PLCStats) GetSafetyModeActive() bool {
	if x != nil {
		return x.SafetyModeActive
	}
	return false
}

func (x *PLCStats) GetStateOfCharge() uint32 {
	if x != nil {
		return x.StateOfCharge
	}
	return 0
}

func (x *PLCStats) GetThermalThrottleLevel() uint32 {
	if x != nil {
		return x.ThermalThrottleLevel
	}
	return 0
}

type PLCPortStats struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Power  uint32                  `protobuf:"varint,1,opt,name=power,proto3" json:"power,omitempty"`
	Status PLCPortStats_PortStatus `protobuf:"varint,2,opt,name=status,proto3,enum=SpaceX.API.Device.PLCPortStats_PortStatus" json:"status,omitempty"`
}

func (x *PLCPortStats) Reset() {
	*x = PLCPortStats{}
	if protoimpl.UnsafeEnabled {
		mi := &file_spacex_api_device_dish_proto_msgTypes[46]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PLCPortStats) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PLCPortStats) ProtoMessage() {}

func (x *PLCPortStats) ProtoReflect() protoreflect.Message {
	mi := &file_spacex_api_device_dish_proto_msgTypes[46]
	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 PLCPortStats.ProtoReflect.Descriptor instead.
func (*PLCPortStats) Descriptor() ([]byte, []int) {
	return file_spacex_api_device_dish_proto_rawDescGZIP(), []int{46}
}

func (x *PLCPortStats) GetPower() uint32 {
	if x != nil {
		return x.Power
	}
	return 0
}

func (x *PLCPortStats) GetStatus() PLCPortStats_PortStatus {
	if x != nil {
		return x.Status
	}
	return PLCPortStats_INACTIVE
}

var File_spacex_api_device_dish_proto protoreflect.FileDescriptor

var file_spacex_api_device_dish_proto_rawDesc = []byte{
	0x0a, 0x1c, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x5f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x2f, 0x64, 0x69, 0x73, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x11,
	0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x1a, 0x25, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x5f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x2f, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x68, 0x61,
	0x72, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78,
	0x5f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6d, 0x6d,
	0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78,
	0x5f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2f, 0x64, 0x69, 0x73, 0x68,
	0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x21, 0x73,
	0x70, 0x61, 0x63, 0x65, 0x78, 0x5f, 0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x2f, 0x72, 0x73, 0x73, 0x69, 0x5f, 0x73, 0x63, 0x61, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x1a, 0x38, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x5f, 0x61, 0x70, 0x69, 0x2f, 0x73, 0x61, 0x74,
	0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0x73, 0x2f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2f,
	0x75, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63,
	0x6f, 0x64, 0x65, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x41, 0x73, 0x70, 0x61, 0x63,
	0x65, 0x78, 0x5f, 0x61, 0x70, 0x69, 0x2f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x6f,
	0x6e, 0x2f, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x72, 0x61, 0x74, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74,
	0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x29, 0x0a,
	0x0f, 0x44, 0x69, 0x73, 0x68, 0x53, 0x74, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x73, 0x74, 0x6f, 0x77, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x06, 0x75, 0x6e, 0x73, 0x74, 0x6f, 0x77, 0x22, 0x12, 0x0a, 0x10, 0x44, 0x69, 0x73, 0x68,
	0x53, 0x74, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xc6, 0x03, 0x0a,
	0x17, 0x44, 0x69, 0x73, 0x68, 0x41, 0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x73,
	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x36, 0x0a, 0x17, 0x74, 0x68, 0x65, 0x72,
	0x6d, 0x61, 0x6c, 0x5f, 0x64, 0x65, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x74, 0x68, 0x65, 0x72, 0x6d,
	0x61, 0x6c, 0x44, 0x65, 0x6d, 0x61, 0x6e, 0x64, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x12, 0x41, 0x0a, 0x1d, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61,
	0x6c, 0x5f, 0x64, 0x65, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x68,
	0x65, 0x72, 0x6d, 0x61, 0x6c, 0x44, 0x65, 0x6d, 0x61, 0x6e, 0x64, 0x46, 0x72, 0x61, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x12, 0x50, 0x0a, 0x09, 0x65, 0x74, 0x68, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e,
	0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x41,
	0x76, 0x69, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x2e, 0x45, 0x74, 0x68, 0x53, 0x70, 0x65, 0x65, 0x64, 0x52, 0x08, 0x65, 0x74, 0x68,
	0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x65,
	0x74, 0x68, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d,
	0x61, 0x70, 0x70, 0x6c, 0x79, 0x45, 0x74, 0x68, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x36, 0x0a,
	0x17, 0x65, 0x74, 0x68, 0x5f, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x74, 0x75, 0x64, 0x65, 0x5f, 0x72,
	0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15,
	0x65, 0x74, 0x68, 0x41, 0x6d, 0x70, 0x6c, 0x69, 0x74, 0x75, 0x64, 0x65, 0x52, 0x65, 0x67, 0x69,
	0x73, 0x74, 0x65, 0x72, 0x73, 0x12, 0x41, 0x0a, 0x1d, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x65,
	0x74, 0x68, 0x5f, 0x61, 0x6d, 0x70, 0x6c, 0x69, 0x74, 0x75, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x67,
	0x69, 0x73, 0x74, 0x65, 0x72, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1a, 0x61, 0x70,
	0x70, 0x6c, 0x79, 0x45, 0x74, 0x68, 0x41, 0x6d, 0x70, 0x6c, 0x69, 0x74, 0x75, 0x64, 0x65, 0x52,
	0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x73, 0x22, 0x3b, 0x0a, 0x08, 0x45, 0x74, 0x68, 0x53,
	0x70, 0x65, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x12, 0x45, 0x54, 0x48, 0x5f, 0x53, 0x50, 0x45, 0x45,
	0x44, 0x5f, 0x31, 0x30, 0x30, 0x5f, 0x4d, 0x42, 0x50, 0x53, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13,
	0x45, 0x54, 0x48, 0x5f, 0x53, 0x50, 0x45, 0x45, 0x44, 0x5f, 0x31, 0x30, 0x30, 0x30, 0x5f, 0x4d,
	0x42, 0x50, 0x53, 0x10, 0x01, 0x22, 0x1a, 0x0a, 0x18, 0x44, 0x69, 0x73, 0x68, 0x41, 0x76, 0x69,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x22, 0x17, 0x0a, 0x15, 0x44, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74,
	0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xd9, 0x0a, 0x0a, 0x16, 0x44,
	0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f,
	0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61,
	0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x41, 0x0a, 0x0c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f,
	0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x53, 0x70,
	0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e,
	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x31, 0x0a, 0x14, 0x6f, 0x62, 0x73, 0x74,
	0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x46, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x29, 0x0a, 0x10, 0x6f,
	0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18,
	0x14, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x73, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x02, 0x52, 0x11, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x56, 0x61, 0x6c, 0x69, 0x64, 0x53, 0x12, 0x2f, 0x0a, 0x13, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x12, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x63, 0x65, 0x6c, 0x6c, 0x5f,
	0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x63, 0x65, 0x6c, 0x6c, 0x49, 0x64,
	0x12, 0x1e, 0x0a, 0x0b, 0x70, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x69, 0x64, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6f, 0x70, 0x52, 0x61, 0x63, 0x6b, 0x49, 0x64,
	0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x73, 0x61, 0x74, 0x65,
	0x6c, 0x6c, 0x69, 0x74, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12,
	0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x53, 0x61, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65,
	0x49, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x5f, 0x67, 0x61,
	0x74, 0x65, 0x77, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10,
	0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x49, 0x64,
	0x12, 0x24, 0x0a, 0x0e, 0x6f, 0x6e, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x75, 0x70, 0x5f, 0x62, 0x65,
	0x61, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6f, 0x6e, 0x42, 0x61, 0x63, 0x6b,
	0x75, 0x70, 0x42, 0x65, 0x61, 0x6d, 0x12, 0x2d, 0x0a, 0x13, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64,
	0x73, 0x5f, 0x74, 0x6f, 0x5f, 0x73, 0x6c, 0x6f, 0x74, 0x5f, 0x65, 0x6e, 0x64, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x02, 0x52, 0x10, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x54, 0x6f, 0x53, 0x6c,
	0x6f, 0x74, 0x45, 0x6e, 0x64, 0x12, 0x36, 0x0a, 0x17, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x74,
	0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
	0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x64, 0x65, 0x62, 0x75, 0x67, 0x54, 0x65, 0x6c,
	0x65, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x3b, 0x0a,
	0x1b, 0x70, 0x6f, 0x70, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72,
	0x61, 0x74, 0x65, 0x5f, 0x31, 0x35, 0x73, 0x5f, 0x6d, 0x65, 0x61, 0x6e, 0x18, 0x0d, 0x20, 0x01,
	0x28, 0x02, 0x52, 0x16, 0x70, 0x6f, 0x70, 0x50, 0x69, 0x6e, 0x67, 0x44, 0x72, 0x6f, 0x70, 0x52,
	0x61, 0x74, 0x65, 0x31, 0x35, 0x73, 0x4d, 0x65, 0x61, 0x6e, 0x12, 0x3d, 0x0a, 0x1c, 0x70, 0x6f,
	0x70, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6d,
	0x73, 0x5f, 0x31, 0x35, 0x73, 0x5f, 0x6d, 0x65, 0x61, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x02,
	0x52, 0x17, 0x70, 0x6f, 0x70, 0x50, 0x69, 0x6e, 0x67, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79,
	0x4d, 0x73, 0x31, 0x35, 0x73, 0x4d, 0x65, 0x61, 0x6e, 0x12, 0x3e, 0x0a, 0x1c, 0x73, 0x65, 0x63,
	0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f,
	0x31, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x02, 0x52,
	0x18, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73,
	0x74, 0x31, 0x73, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x1c, 0x73, 0x65, 0x63,
	0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f,
	0x32, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x02, 0x52,
	0x18, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73,
	0x74, 0x32, 0x73, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x3e, 0x0a, 0x1c, 0x73, 0x65, 0x63,
	0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f,
	0x35, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x02, 0x52,
	0x18, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61, 0x73,
	0x74, 0x35, 0x73, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x1d, 0x73, 0x65, 0x63,
	0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73, 0x74, 0x5f,
	0x31, 0x35, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x02,
	0x52, 0x19, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65, 0x4c, 0x61,
	0x73, 0x74, 0x31, 0x35, 0x73, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x40, 0x0a, 0x1d, 0x73,
	0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x73, 0x69, 0x6e, 0x63, 0x65, 0x5f, 0x6c, 0x61, 0x73,
	0x74, 0x5f, 0x36, 0x30, 0x73, 0x5f, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0x13, 0x20, 0x01,
	0x28, 0x02, 0x52, 0x19, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x53, 0x69, 0x6e, 0x63, 0x65,
	0x4c, 0x61, 0x73, 0x74, 0x36, 0x30, 0x73, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x2d, 0x0a,
	0x13, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x31, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x69,
	0x6e, 0x5f, 0x31, 0x68, 0x18, 0x17, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x61,
	0x67, 0x65, 0x31, 0x73, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x31, 0x68, 0x12, 0x2d, 0x0a, 0x13,
	0x6f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x32, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e,
	0x5f, 0x31, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x61, 0x67,
	0x65, 0x32, 0x73, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x31, 0x68, 0x12, 0x2d, 0x0a, 0x13, 0x6f,
	0x75, 0x74, 0x61, 0x67, 0x65, 0x5f, 0x35, 0x73, 0x5f, 0x77, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x5f,
	0x31, 0x68, 0x18, 0x19, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65,
	0x35, 0x73, 0x57, 0x69, 0x74, 0x68, 0x69, 0x6e, 0x31, 0x68, 0x12, 0x5b, 0x0a, 0x10, 0x64, 0x69,
	0x73, 0x61, 0x62, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x15,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50,
	0x49, 0x2e, 0x53, 0x61, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0x73, 0x2e, 0x4e, 0x65, 0x74,
	0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x55, 0x74, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x6d, 0x65,
	0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x6d,
	0x65, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x2d, 0x0a, 0x13, 0x6b, 0x75, 0x5f, 0x6d, 0x61,
	0x63, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x18, 0x16,
	0x20, 0x01, 0x28, 0x02, 0x52, 0x10, 0x6b, 0x75, 0x4d, 0x61, 0x63, 0x41, 0x63, 0x74, 0x69, 0x76,
	0x65, 0x52, 0x61, 0x74, 0x69, 0x6f, 0x22, 0xad, 0x03, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x68, 0x4f,
	0x75, 0x74, 0x61, 0x67, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x63, 0x61, 0x75, 0x73, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x23, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50,
	0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x4f, 0x75, 0x74,
	0x61, 0x67, 0x65, 0x2e, 0x43, 0x61, 0x75, 0x73, 0x65, 0x52, 0x05, 0x63, 0x61, 0x75, 0x73, 0x65,
	0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
	0x61, 0x6d, 0x70, 0x5f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x73, 0x74,
	0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x4e, 0x73, 0x12, 0x1f,
	0x0a, 0x0b, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6e, 0x73, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x0a, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x73, 0x12,
	0x1d, 0x0a, 0x0a, 0x64, 0x69, 0x64, 0x5f, 0x73, 0x77, 0x69, 0x74, 0x63, 0x68, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x09, 0x64, 0x69, 0x64, 0x53, 0x77, 0x69, 0x74, 0x63, 0x68, 0x22, 0xf5,
	0x01, 0x0a, 0x05, 0x43, 0x61, 0x75, 0x73, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e,
	0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x4f, 0x4f, 0x54, 0x49, 0x4e, 0x47,
	0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x4f, 0x57, 0x45, 0x44, 0x10, 0x02, 0x12, 0x14,
	0x0a, 0x10, 0x54, 0x48, 0x45, 0x52, 0x4d, 0x41, 0x4c, 0x5f, 0x53, 0x48, 0x55, 0x54, 0x44, 0x4f,
	0x57, 0x4e, 0x10, 0x03, 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x4f, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44,
	0x55, 0x4c, 0x45, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x4e, 0x4f, 0x5f, 0x53, 0x41, 0x54, 0x53,
	0x10, 0x05, 0x12, 0x0e, 0x0a, 0x0a, 0x4f, 0x42, 0x53, 0x54, 0x52, 0x55, 0x43, 0x54, 0x45, 0x44,
	0x10, 0x06, 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x4f, 0x5f, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x49, 0x4e,
	0x4b, 0x10, 0x07, 0x12, 0x0c, 0x0a, 0x08, 0x4e, 0x4f, 0x5f, 0x50, 0x49, 0x4e, 0x47, 0x53, 0x10,
	0x08, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x43, 0x54, 0x55, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x41, 0x43,
	0x54, 0x49, 0x56, 0x49, 0x54, 0x59, 0x10, 0x09, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x41, 0x42, 0x4c,
	0x45, 0x5f, 0x54, 0x45, 0x53, 0x54, 0x10, 0x0a, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x4c, 0x45, 0x45,
	0x50, 0x49, 0x4e, 0x47, 0x10, 0x0b, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x4b, 0x59, 0x5f, 0x53, 0x45,
	0x41, 0x52, 0x43, 0x48, 0x10, 0x0d, 0x22, 0x04, 0x08, 0x0c, 0x10, 0x0c, 0x2a, 0x18, 0x4d, 0x4f,
	0x56, 0x49, 0x4e, 0x47, 0x5f, 0x57, 0x48, 0x49, 0x4c, 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x41,
	0x4c, 0x4c, 0x4f, 0x57, 0x45, 0x44, 0x22, 0xaf, 0x03, 0x0a, 0x16, 0x44, 0x69, 0x73, 0x68, 0x47,
	0x65, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x04, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x70,
	0x6f, 0x70, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x74,
	0x65, 0x18, 0xe9, 0x07, 0x20, 0x03, 0x28, 0x02, 0x52, 0x0f, 0x70, 0x6f, 0x70, 0x50, 0x69, 0x6e,
	0x67, 0x44, 0x72, 0x6f, 0x70, 0x52, 0x61, 0x74, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x6f, 0x70,
	0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f, 0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x73,
	0x18, 0xea, 0x07, 0x20, 0x03, 0x28, 0x02, 0x52, 0x10, 0x70, 0x6f, 0x70, 0x50, 0x69, 0x6e, 0x67,
	0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x4d, 0x73, 0x12, 0x37, 0x0a, 0x17, 0x64, 0x6f, 0x77,
	0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74,
	0x5f, 0x62, 0x70, 0x73, 0x18, 0xeb, 0x07, 0x20, 0x03, 0x28, 0x02, 0x52, 0x15, 0x64, 0x6f, 0x77,
	0x6e, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x42,
	0x70, 0x73, 0x12, 0x33, 0x0a, 0x15, 0x75, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x68, 0x72,
	0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x5f, 0x62, 0x70, 0x73, 0x18, 0xec, 0x07, 0x20, 0x03,
	0x28, 0x02, 0x52, 0x13, 0x75, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67,
	0x68, 0x70, 0x75, 0x74, 0x42, 0x70, 0x73, 0x12, 0x38, 0x0a, 0x07, 0x6f, 0x75, 0x74, 0x61, 0x67,
	0x65, 0x73, 0x18, 0xf1, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63,
	0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69,
	0x73, 0x68, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x52, 0x07, 0x6f, 0x75, 0x74, 0x61, 0x67, 0x65,
	0x73, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x18, 0xf2, 0x07,
	0x20, 0x03, 0x28, 0x02, 0x52, 0x07, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x49, 0x6e, 0x12, 0x39, 0x0a,
	0x09, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x5f, 0x6c, 0x6f, 0x67, 0x18, 0xf3, 0x07, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1b, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x52, 0x08,
	0x65, 0x76, 0x65, 0x6e, 0x74, 0x4c, 0x6f, 0x67, 0x4a, 0x06, 0x08, 0xed, 0x07, 0x10, 0xee, 0x07,
	0x4a, 0x06, 0x08, 0xee, 0x07, 0x10, 0xef, 0x07, 0x4a, 0x06, 0x08, 0xef, 0x07, 0x10, 0xf0, 0x07,
	0x4a, 0x06, 0x08, 0xf0, 0x07, 0x10, 0xf1, 0x07, 0x22, 0x5c, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x74,
	0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x31, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50,
	0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52,
	0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6c, 0x61, 0x73,
	0x74, 0x5f, 0x73, 0x65, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6c, 0x61,
	0x73, 0x74, 0x53, 0x65, 0x65, 0x6e, 0x22, 0xf8, 0x18, 0x0a, 0x15, 0x44, 0x69, 0x73, 0x68, 0x47,
	0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41,
	0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f,
	0x12, 0x41, 0x0a, 0x0c, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e,
	0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x53, 0x74,
	0x61, 0x74, 0x65, 0x12, 0x36, 0x0a, 0x06, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x18, 0xed, 0x07,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50,
	0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x41, 0x6c, 0x65,
	0x72, 0x74, 0x73, 0x52, 0x06, 0x61, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x6f,
	0x75, 0x74, 0x61, 0x67, 0x65, 0x18, 0xf6, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53,
	0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x2e, 0x44, 0x69, 0x73, 0x68, 0x4f, 0x75, 0x74, 0x61, 0x67, 0x65, 0x52, 0x06, 0x6f, 0x75, 0x74,
	0x61, 0x67, 0x65, 0x12, 0x3d, 0x0a, 0x09, 0x67, 0x70, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73,
	0x18, 0xf7, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58,
	0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68,
	0x47, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x08, 0x67, 0x70, 0x73, 0x53, 0x74, 0x61,
	0x74, 0x73, 0x12, 0x43, 0x0a, 0x1e, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x5f, 0x74, 0x6f,
	0x5f, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x6e, 0x6f, 0x6e, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x5f,
	0x73, 0x6c, 0x6f, 0x74, 0x18, 0xea, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x1a, 0x73, 0x65, 0x63,
	0x6f, 0x6e, 0x64, 0x73, 0x54, 0x6f, 0x46, 0x69, 0x72, 0x73, 0x74, 0x4e, 0x6f, 0x6e, 0x65, 0x6d,
	0x70, 0x74, 0x79, 0x53, 0x6c, 0x6f, 0x74, 0x12, 0x2c, 0x0a, 0x12, 0x70, 0x6f, 0x70, 0x5f, 0x70,
	0x69, 0x6e, 0x67, 0x5f, 0x64, 0x72, 0x6f, 0x70, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0xeb, 0x07,
	0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x70, 0x6f, 0x70, 0x50, 0x69, 0x6e, 0x67, 0x44, 0x72, 0x6f,
	0x70, 0x52, 0x61, 0x74, 0x65, 0x12, 0x37, 0x0a, 0x17, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e,
	0x6b, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x5f, 0x62, 0x70, 0x73,
	0x18, 0xef, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x69, 0x6e,
	0x6b, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74, 0x42, 0x70, 0x73, 0x12, 0x33,
	0x0a, 0x15, 0x75, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68,
	0x70, 0x75, 0x74, 0x5f, 0x62, 0x70, 0x73, 0x18, 0xf0, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13,
	0x75, 0x70, 0x6c, 0x69, 0x6e, 0x6b, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x70, 0x75, 0x74,
	0x42, 0x70, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x70, 0x6f, 0x70, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x5f,
	0x6c, 0x61, 0x74, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6d, 0x73, 0x18, 0xf1, 0x07, 0x20, 0x01, 0x28,
	0x02, 0x52, 0x10, 0x70, 0x6f, 0x70, 0x50, 0x69, 0x6e, 0x67, 0x4c, 0x61, 0x74, 0x65, 0x6e, 0x63,
	0x79, 0x4d, 0x73, 0x12, 0x55, 0x0a, 0x11, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0xec, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x27, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x4f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x10, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x74,
	0x6f, 0x77, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x18, 0xf2, 0x07, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x74, 0x6f, 0x77, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x65, 0x64, 0x12, 0x33, 0x0a, 0x15, 0x62, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x67, 0x68, 0x74, 0x5f,
	0x61, 0x7a, 0x69, 0x6d, 0x75, 0x74, 0x68, 0x5f, 0x64, 0x65, 0x67, 0x18, 0xf3, 0x07, 0x20, 0x01,
	0x28, 0x02, 0x52, 0x13, 0x62, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x67, 0x68, 0x74, 0x41, 0x7a, 0x69,
	0x6d, 0x75, 0x74, 0x68, 0x44, 0x65, 0x67, 0x12, 0x37, 0x0a, 0x17, 0x62, 0x6f, 0x72, 0x65, 0x73,
	0x69, 0x67, 0x68, 0x74, 0x5f, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64,
	0x65, 0x67, 0x18, 0xf4, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x15, 0x62, 0x6f, 0x72, 0x65, 0x73,
	0x69, 0x67, 0x68, 0x74, 0x45, 0x6c, 0x65, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x67,
	0x12, 0x25, 0x0a, 0x0e, 0x65, 0x74, 0x68, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x5f, 0x6d, 0x62,
	0x70, 0x73, 0x18, 0xf8, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x65, 0x74, 0x68, 0x53, 0x70,
	0x65, 0x65, 0x64, 0x4d, 0x62, 0x70, 0x73, 0x12, 0x4c, 0x0a, 0x0e, 0x6d, 0x6f, 0x62, 0x69, 0x6c,
	0x69, 0x74, 0x79, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0xf9, 0x07, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x24, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74,
	0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x0d, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79,
	0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x37, 0x0a, 0x18, 0x69, 0x73, 0x5f, 0x73, 0x6e, 0x72, 0x5f,
	0x61, 0x62, 0x6f, 0x76, 0x65, 0x5f, 0x6e, 0x6f, 0x69, 0x73, 0x65, 0x5f, 0x66, 0x6c, 0x6f, 0x6f,
	0x72, 0x18, 0xfa, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x69, 0x73, 0x53, 0x6e, 0x72, 0x41,
	0x62, 0x6f, 0x76, 0x65, 0x4e, 0x6f, 0x69, 0x73, 0x65, 0x46, 0x6c, 0x6f, 0x6f, 0x72, 0x12, 0x46,
	0x0a, 0x0c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0xfb,
	0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41,
	0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x52, 0x65,
	0x61, 0x64, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x0b, 0x72, 0x65, 0x61, 0x64, 0x79,
	0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x50, 0x0a, 0x10, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x5f,
	0x6f, 0x66, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0xfc, 0x07, 0x20, 0x01, 0x28,
	0x0e, 0x32, 0x25, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4f,
	0x66, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x0e, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4f,
	0x66, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5b, 0x0a, 0x15, 0x73, 0x6f, 0x66, 0x74,
	0x77, 0x61, 0x72, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74,
	0x65, 0x18, 0xfd, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65,
	0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x6f, 0x66,
	0x74, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65,
	0x52, 0x13, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x33, 0x0a, 0x15, 0x73, 0x77, 0x75, 0x70, 0x64, 0x61, 0x74,
	0x65, 0x5f, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x64, 0x79, 0x18, 0x86,
	0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x73, 0x77, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52,
	0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x64, 0x79, 0x12, 0x45, 0x0a, 0x0d, 0x72, 0x65,
	0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x88, 0x08, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e,
	0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x61,
	0x73, 0x6f, 0x6e, 0x52, 0x0c, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f,
	0x6e, 0x12, 0x5b, 0x0a, 0x15, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x75, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x82, 0x08, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x26, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44,
	0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x13, 0x73, 0x6f, 0x66, 0x74, 0x77,
	0x61, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x4b,
	0x0a, 0x0f, 0x61, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74,
	0x73, 0x18, 0x83, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65,
	0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x41, 0x6c, 0x69,
	0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0e, 0x61, 0x6c, 0x69,
	0x67, 0x6e, 0x6d, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x36, 0x0a, 0x17, 0x69,
	0x73, 0x5f, 0x73, 0x6e, 0x72, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74,
	0x6c, 0x79, 0x5f, 0x6c, 0x6f, 0x77, 0x18, 0xfe, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x69,
	0x73, 0x53, 0x6e, 0x72, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x6e, 0x74, 0x6c, 0x79,
	0x4c, 0x6f, 0x77, 0x12, 0x45, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x61, 0x63, 0x74, 0x75, 0x61,
	0x74, 0x6f, 0x72, 0x73, 0x18, 0xff, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x53, 0x70,
	0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e,
	0x48, 0x61, 0x73, 0x41, 0x63, 0x74, 0x75, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52, 0x0c, 0x68, 0x61,
	0x73, 0x41, 0x63, 0x74, 0x75, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x5c, 0x0a, 0x10, 0x64, 0x69,
	0x73, 0x61, 0x62, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x80,
	0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x30, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41,
	0x50, 0x49, 0x2e, 0x53, 0x61, 0x74, 0x65, 0x6c, 0x6c, 0x69, 0x74, 0x65, 0x73, 0x2e, 0x4e, 0x65,
	0x74, 0x77, 0x6f, 0x72, 0x6b, 0x2e, 0x55, 0x74, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x6d,
	0x65, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x0f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65,
	0x6d, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x1e, 0x64, 0x6c, 0x5f,
	0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x72, 0x69,
	0x63, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x94, 0x08, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e,
	0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x6f, 0x6e, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69,
	0x63, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x52,
	0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x52, 0x1b,
	0x64, 0x6c, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x65, 0x73, 0x74, 0x72,
	0x69, 0x63, 0x74, 0x65, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x80, 0x01, 0x0a, 0x1e,
	0x75, 0x6c, 0x5f, 0x62, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x5f, 0x72, 0x65, 0x73,
	0x74, 0x72, 0x69, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x95,
	0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41,
	0x50, 0x49, 0x2e, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x74, 0x72, 0x6f, 0x6e, 0x2e, 0x50, 0x75,
	0x62, 0x6c, 0x69, 0x63, 0x2e, 0x49, 0x6e, 0x74, 0x65, 0x67, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x2e, 0x52, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x61, 0x73, 0x6f,
	0x6e, 0x52, 0x1b, 0x75, 0x6c, 0x42, 0x61, 0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x52, 0x65,
	0x73, 0x74, 0x72, 0x69, 0x63, 0x74, 0x65, 0x64, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x27,
	0x0a, 0x0f, 0x68, 0x61, 0x73, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x63, 0x61, 0x6c,
	0x73, 0x18, 0x81, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x68, 0x61, 0x73, 0x53, 0x69, 0x67,
	0x6e, 0x65, 0x64, 0x43, 0x61, 0x6c, 0x73, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x18, 0xd0, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65,
	0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73,
	0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
	0x79, 0x0a, 0x1f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e,
	0x64, 0x73, 0x18, 0x84, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x53, 0x70, 0x61, 0x63,
	0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x49, 0x6e,
	0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x52, 0x1d, 0x69, 0x6e, 0x69,
	0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x29, 0x0a, 0x10, 0x69, 0x73,
	0x5f, 0x63, 0x65, 0x6c, 0x6c, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x85,
	0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x43, 0x65, 0x6c, 0x6c, 0x44, 0x69, 0x73,
	0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x53, 0x0a, 0x26, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73,
	0x5f, 0x75, 0x6e, 0x74, 0x69, 0x6c, 0x5f, 0x73, 0x77, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f,
	0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x70, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x18,
	0x87, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x22, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x55,
	0x6e, 0x74, 0x69, 0x6c, 0x53, 0x77, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x62, 0x6f,
	0x6f, 0x74, 0x50, 0x6f, 0x73, 0x73, 0x69, 0x62, 0x6c, 0x65, 0x12, 0x30, 0x0a, 0x14, 0x68, 0x69,
	0x67, 0x68, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x6d, 0x6f,
	0x64, 0x65, 0x18, 0x89, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x68, 0x69, 0x67, 0x68, 0x50,
	0x6f, 0x77, 0x65, 0x72, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x2c, 0x0a, 0x11,
	0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72,
	0x73, 0x18, 0x90, 0x08, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x63, 0x6f, 0x6e, 0x6e, 0x65, 0x63,
	0x74, 0x65, 0x64, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x09, 0x70, 0x6c,
	0x63, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x91, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b,
	0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x2e, 0x50, 0x4c, 0x43, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x08, 0x70, 0x6c, 0x63,
	0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x38, 0x0a, 0x18, 0x69, 0x73, 0x5f, 0x6d, 0x6f, 0x76, 0x69,
	0x6e, 0x67, 0x5f, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x70, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65,
	0x64, 0x18, 0x92, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x69, 0x73, 0x4d, 0x6f, 0x76, 0x69,
	0x6e, 0x67, 0x46, 0x61, 0x73, 0x74, 0x50, 0x65, 0x72, 0x73, 0x69, 0x73, 0x74, 0x65, 0x64, 0x12,
	0x40, 0x0a, 0x0a, 0x75, 0x70, 0x73, 0x75, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x93, 0x08,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50,
	0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x55, 0x70, 0x73,
	0x75, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x09, 0x75, 0x70, 0x73, 0x75, 0x53, 0x74, 0x61, 0x74,
	0x73, 0x12, 0x3d, 0x0a, 0x09, 0x61, 0x70, 0x73, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x98,
	0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41,
	0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x41, 0x70,
	0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x08, 0x61, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73,
	0x12, 0x4f, 0x0a, 0x13, 0x6e, 0x65, 0x64, 0x32, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x71, 0x75, 0x61,
	0x74, 0x65, 0x72, 0x6e, 0x69, 0x6f, 0x6e, 0x18, 0x99, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d,
	0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x2e, 0x51, 0x75, 0x61, 0x74, 0x65, 0x72, 0x6e, 0x69, 0x6f, 0x6e, 0x52, 0x12, 0x6e,
	0x65, 0x64, 0x32, 0x64, 0x69, 0x73, 0x68, 0x51, 0x75, 0x61, 0x74, 0x65, 0x72, 0x6e, 0x69, 0x6f,
	0x6e, 0x12, 0x6f, 0x0a, 0x12, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5f,
	0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x18, 0x9a, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3f,
	0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72,
	0x65, 0x61, 0x6d, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52,
	0x11, 0x64, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x6f, 0x75, 0x74, 0x65,
	0x72, 0x73, 0x12, 0x45, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x5f, 0x73, 0x68,
	0x61, 0x72, 0x64, 0x18, 0x9b, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f, 0x2e, 0x53, 0x70, 0x61,
	0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x41,
	0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x52, 0x0c, 0x61, 0x63, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x53, 0x68, 0x61, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x63,
	0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x9c, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x6d, 0x61,
	0x63, 0x46, 0x6c, 0x61, 0x67, 0x1a, 0x63, 0x0a, 0x16, 0x44, 0x6f, 0x77, 0x6e, 0x73, 0x74, 0x72,
	0x65, 0x61, 0x6d, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
	0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65,
	0x79, 0x12, 0x33, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1d, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x2e, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x4a, 0x06, 0x08, 0xe9, 0x07, 0x10,
	0xea, 0x07, 0x4a, 0x06, 0x08, 0xee, 0x07, 0x10, 0xef, 0x07, 0x4a, 0x06, 0x08, 0xf5, 0x07, 0x10,
	0xf6, 0x07, 0x4a, 0x06, 0x08, 0x96, 0x08, 0x10, 0x97, 0x08, 0x4a, 0x06, 0x08, 0x97, 0x08, 0x10,
	0x98, 0x08, 0x52, 0x13, 0x70, 0x68, 0x79, 0x5f, 0x72, 0x78, 0x5f, 0x62, 0x65, 0x61, 0x6d, 0x5f,
	0x73, 0x6e, 0x72, 0x5f, 0x61, 0x76, 0x67, 0x52, 0x08, 0x74, 0x5f, 0x63, 0x65, 0x6e, 0x74, 0x65,
	0x72, 0x22, 0x1e, 0x0a, 0x1c, 0x44, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x4f, 0x62, 0x73, 0x74,
	0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x22, 0x9c, 0x02, 0x0a, 0x1d, 0x44, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x4f, 0x62, 0x73,
	0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x6f, 0x77, 0x73, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x52, 0x6f, 0x77, 0x73, 0x12, 0x19,
	0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, 0x63, 0x6f, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x07, 0x6e, 0x75, 0x6d, 0x43, 0x6f, 0x6c, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x6e, 0x72,
	0x18, 0x03, 0x20, 0x03, 0x28, 0x02, 0x52, 0x03, 0x73, 0x6e, 0x72, 0x12, 0x2e, 0x0a, 0x11, 0x6d,
	0x69, 0x6e, 0x5f, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x67,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0f, 0x6d, 0x69, 0x6e, 0x45,
	0x6c, 0x65, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x67, 0x12, 0x22, 0x0a, 0x0d, 0x6d,
	0x61, 0x78, 0x5f, 0x74, 0x68, 0x65, 0x74, 0x61, 0x5f, 0x64, 0x65, 0x67, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x02, 0x52, 0x0b, 0x6d, 0x61, 0x78, 0x54, 0x68, 0x65, 0x74, 0x61, 0x44, 0x65, 0x67, 0x12,
	0x5f, 0x0a, 0x13, 0x6d, 0x61, 0x70, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
	0x5f, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x53,
	0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x2e, 0x4f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x52,
	0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x52, 0x11, 0x6d,
	0x61, 0x70, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x46, 0x72, 0x61, 0x6d, 0x65,
	0x22, 0x97, 0x08, 0x0a, 0x0a, 0x44, 0x69, 0x73, 0x68, 0x41, 0x6c, 0x65, 0x72, 0x74, 0x73, 0x12,
	0x21, 0x0a, 0x0c, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x73, 0x5f, 0x73, 0x74, 0x75, 0x63, 0x6b, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x6d, 0x6f, 0x74, 0x6f, 0x72, 0x73, 0x53, 0x74, 0x75,
	0x63, 0x6b, 0x12, 0x29, 0x0a, 0x10, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x74, 0x68,
	0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x74, 0x68,
	0x65, 0x72, 0x6d, 0x61, 0x6c, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x12, 0x29, 0x0a,
	0x10, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77,
	0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c,
	0x53, 0x68, 0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x12, 0x33, 0x0a, 0x16, 0x6d, 0x61, 0x73, 0x74,
	0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6e, 0x65, 0x61, 0x72, 0x5f, 0x76, 0x65, 0x72, 0x74, 0x69, 0x63,
	0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x6d, 0x61, 0x73, 0x74, 0x4e, 0x6f,
	0x74, 0x4e, 0x65, 0x61, 0x72, 0x56, 0x65, 0x72, 0x74, 0x69, 0x63, 0x61, 0x6c, 0x12, 0x2f, 0x0a,
	0x13, 0x75, 0x6e, 0x65, 0x78, 0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x5f, 0x6c, 0x6f, 0x63, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x75, 0x6e, 0x65, 0x78,
	0x70, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30,
	0x0a, 0x14, 0x73, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f,
	0x73, 0x70, 0x65, 0x65, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x73, 0x6c,
	0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x53, 0x70, 0x65, 0x65, 0x64, 0x73,
	0x12, 0x37, 0x0a, 0x18, 0x73, 0x6c, 0x6f, 0x77, 0x5f, 0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65,
	0x74, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x73, 0x5f, 0x31, 0x30, 0x30, 0x18, 0x12, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x15, 0x73, 0x6c, 0x6f, 0x77, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74,
	0x53, 0x70, 0x65, 0x65, 0x64, 0x73, 0x31, 0x30, 0x30, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x6f, 0x61,
	0x6d, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x72, 0x6f, 0x61, 0x6d,
	0x69, 0x6e, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6c, 0x6c, 0x5f, 0x70,
	0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x6e,
	0x73, 0x74, 0x61, 0x6c, 0x6c, 0x50, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1d, 0x0a, 0x0a,
	0x69, 0x73, 0x5f, 0x68, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x09, 0x69, 0x73, 0x48, 0x65, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x41, 0x0a, 0x1d, 0x70,
	0x6f, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x5f, 0x74, 0x68, 0x65, 0x72,
	0x6d, 0x61, 0x6c, 0x5f, 0x74, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x1a, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x75, 0x70, 0x70, 0x6c, 0x79, 0x54,
	0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74, 0x6c, 0x65, 0x12, 0x2b,
	0x0a, 0x12, 0x69, 0x73, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x61, 0x76, 0x65, 0x5f,
	0x69, 0x64, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x69, 0x73, 0x50, 0x6f,
	0x77, 0x65, 0x72, 0x53, 0x61, 0x76, 0x65, 0x49, 0x64, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x64,
	0x62, 0x66, 0x5f, 0x74, 0x65, 0x6c, 0x65, 0x6d, 0x5f, 0x73, 0x74, 0x61, 0x6c, 0x65, 0x18, 0x0e,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x64, 0x62, 0x66, 0x54, 0x65, 0x6c, 0x65, 0x6d, 0x53, 0x74,
	0x61, 0x6c, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x6f, 0x74, 0x6f, 0x72,
	0x5f, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f,
	0x6c, 0x6f, 0x77, 0x4d, 0x6f, 0x74, 0x6f, 0x72, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x12,
	0x3d, 0x0a, 0x1b, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x61, 0x6c, 0x5f,
	0x74, 0x68, 0x61, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x18, 0x11,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x18, 0x6c, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x69, 0x67, 0x6e, 0x61,
	0x6c, 0x54, 0x68, 0x61, 0x6e, 0x50, 0x72, 0x65, 0x64, 0x69, 0x63, 0x74, 0x65, 0x64, 0x12, 0x32,
	0x0a, 0x15, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6d, 0x61,
	0x70, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x74, 0x18, 0x13, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x6f,
	0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x73,
	0x65, 0x74, 0x12, 0x2e, 0x0a, 0x13, 0x64, 0x69, 0x73, 0x68, 0x5f, 0x77, 0x61, 0x74, 0x65, 0x72,
	0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x11, 0x64, 0x69, 0x73, 0x68, 0x57, 0x61, 0x74, 0x65, 0x72, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74,
	0x65, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x77, 0x61, 0x74,
	0x65, 0x72, 0x5f, 0x64, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x15, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x13, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x57, 0x61, 0x74, 0x65, 0x72, 0x44, 0x65,
	0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x31, 0x0a, 0x15, 0x75, 0x70, 0x73, 0x75, 0x5f, 0x72,
	0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x73, 0x6c, 0x6f, 0x77, 0x18,
	0x16, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x75, 0x70, 0x73, 0x75, 0x52, 0x6f, 0x75, 0x74, 0x65,
	0x72, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x6c, 0x6f, 0x77, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x6f, 0x5f,
	0x65, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x5f, 0x6c, 0x69, 0x6e, 0x6b, 0x18, 0x17, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x0e, 0x6e, 0x6f, 0x45, 0x74, 0x68, 0x65, 0x72, 0x6e, 0x65, 0x74, 0x4c,
	0x69, 0x6e, 0x6b, 0x4a, 0x04, 0x08, 0x0c, 0x10, 0x0d, 0x4a, 0x04, 0x08, 0x0d, 0x10, 0x0e, 0x4a,
	0x04, 0x08, 0x0f, 0x10, 0x10, 0x52, 0x1e, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x5f, 0x66, 0x61,
	0x73, 0x74, 0x5f, 0x77, 0x68, 0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x61, 0x76, 0x69,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x17, 0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x5f, 0x77, 0x68,
	0x69, 0x6c, 0x65, 0x5f, 0x6e, 0x6f, 0x74, 0x5f, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x52, 0x1a,
	0x6d, 0x6f, 0x76, 0x69, 0x6e, 0x67, 0x5f, 0x74, 0x6f, 0x6f, 0x5f, 0x66, 0x61, 0x73, 0x74, 0x5f,
	0x66, 0x6f, 0x72, 0x5f, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x0f, 0x44,
	0x69, 0x73, 0x68, 0x52, 0x65, 0x61, 0x64, 0x79, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x12,
	0x0a, 0x04, 0x63, 0x61, 0x64, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x63, 0x61,
	0x64, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x63, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x03, 0x73, 0x63, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x6c, 0x31, 0x6c, 0x32, 0x18, 0x03, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x04, 0x6c, 0x31, 0x6c, 0x32, 0x12, 0x12, 0x0a, 0x04, 0x78, 0x70, 0x68, 0x79,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x78, 0x70, 0x68, 0x79, 0x12, 0x10, 0x0a, 0x03,
	0x61, 0x61, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x03, 0x61, 0x61, 0x70, 0x12, 0x0e,
	0x0a, 0x02, 0x72, 0x66, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x72, 0x66, 0x22, 0x94,
	0x01, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x68, 0x47, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12,
	0x1b, 0x0a, 0x09, 0x67, 0x70, 0x73, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x08, 0x67, 0x70, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x08,
	0x67, 0x70, 0x73, 0x5f, 0x73, 0x61, 0x74, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07,
	0x67, 0x70, 0x73, 0x53, 0x61, 0x74, 0x73, 0x12, 0x2b, 0x0a, 0x12, 0x6e, 0x6f, 0x5f, 0x73, 0x61,
	0x74, 0x73, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x74, 0x74, 0x66, 0x66, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x0f, 0x6e, 0x6f, 0x53, 0x61, 0x74, 0x73, 0x41, 0x66, 0x74, 0x65, 0x72,
	0x54, 0x74, 0x66, 0x66, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x5f,
	0x67, 0x70, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x6e, 0x68, 0x69, 0x62,
	0x69, 0x74, 0x47, 0x70, 0x73, 0x22, 0x9c, 0x02, 0x0a, 0x13, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61,
	0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x5a, 0x0a,
	0x15, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65,
	0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x53,
	0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x2e, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53,
	0x74, 0x61, 0x74, 0x65, 0x52, 0x13, 0x73, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x73, 0x6f, 0x66,
	0x74, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x70, 0x72, 0x6f,
	0x67, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x73, 0x6f, 0x66,
	0x74, 0x77, 0x61, 0x72, 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x72, 0x6f, 0x67, 0x72,
	0x65, 0x73, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65,
	0x71, 0x75, 0x69, 0x72, 0x65, 0x73, 0x5f, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x14, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x69,
	0x72, 0x65, 0x73, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x12, 0x39, 0x0a, 0x19, 0x72, 0x65, 0x62,
	0x6f, 0x6f, 0x74, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x5f, 0x75, 0x74,
	0x63, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x16, 0x72, 0x65,
	0x62, 0x6f, 0x6f, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x64, 0x55, 0x74, 0x63,
	0x54, 0x69, 0x6d, 0x65, 0x22, 0xdd, 0x04, 0x0a, 0x0e, 0x41, 0x6c, 0x69, 0x67, 0x6e, 0x6d, 0x65,
	0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x44, 0x0a, 0x0d, 0x68, 0x61, 0x73, 0x5f, 0x61,
	0x63, 0x74, 0x75, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1f,
	0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x2e, 0x48, 0x61, 0x73, 0x41, 0x63, 0x74, 0x75, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x52,
	0x0c, 0x68, 0x61, 0x73, 0x41, 0x63, 0x74, 0x75, 0x61, 0x74, 0x6f, 0x72, 0x73, 0x12, 0x47, 0x0a,
	0x0e, 0x61, 0x63, 0x74, 0x75, 0x61, 0x74, 0x6f, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
	0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41,
	0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x41, 0x63, 0x74, 0x75, 0x61, 0x74,
	0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x0d, 0x61, 0x63, 0x74, 0x75, 0x61, 0x74, 0x6f,
	0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x74, 0x69, 0x6c, 0x74, 0x5f, 0x61,
	0x6e, 0x67, 0x6c, 0x65, 0x5f, 0x64, 0x65, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0c,
	0x74, 0x69, 0x6c, 0x74, 0x41, 0x6e, 0x67, 0x6c, 0x65, 0x44, 0x65, 0x67, 0x12, 0x32, 0x0a, 0x15,
	0x62, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x61, 0x7a, 0x69, 0x6d, 0x75, 0x74,
	0x68, 0x5f, 0x64, 0x65, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x13, 0x62, 0x6f, 0x72,
	0x65, 0x73, 0x69, 0x67, 0x68, 0x74, 0x41, 0x7a, 0x69, 0x6d, 0x75, 0x74, 0x68, 0x44, 0x65, 0x67,
	0x12, 0x36, 0x0a, 0x17, 0x62, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x65, 0x6c,
	0x65, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x02, 0x52, 0x15, 0x62, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x67, 0x68, 0x74, 0x45, 0x6c, 0x65, 0x76,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x67, 0x12, 0x41, 0x0a, 0x1d, 0x64, 0x65, 0x73, 0x69,
	0x72, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x67, 0x68, 0x74, 0x5f, 0x61, 0x7a,
	0x69, 0x6d, 0x75, 0x74, 0x68, 0x5f, 0x64, 0x65, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x02, 0x52,
	0x1a, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x67, 0x68,
	0x74, 0x41, 0x7a, 0x69, 0x6d, 0x75, 0x74, 0x68, 0x44, 0x65, 0x67, 0x12, 0x45, 0x0a, 0x1f, 0x64,
	0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x5f, 0x62, 0x6f, 0x72, 0x65, 0x73, 0x69, 0x67, 0x68, 0x74,
	0x5f, 0x65, 0x6c, 0x65, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x65, 0x67, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x02, 0x52, 0x1c, 0x64, 0x65, 0x73, 0x69, 0x72, 0x65, 0x64, 0x42, 0x6f, 0x72,
	0x65, 0x73, 0x69, 0x67, 0x68, 0x74, 0x45, 0x6c, 0x65, 0x76, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44,
	0x65, 0x67, 0x12, 0x66, 0x0a, 0x19, 0x61, 0x74, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x5f, 0x65,
	0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18,
	0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41,
	0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x41, 0x74, 0x74, 0x69, 0x74, 0x75,
	0x64, 0x65, 0x45, 0x73, 0x74, 0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74,
	0x65, 0x52, 0x17, 0x61, 0x74, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x45, 0x73, 0x74, 0x69, 0x6d,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x38, 0x0a, 0x18, 0x61, 0x74,
	0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x5f, 0x75, 0x6e, 0x63, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e,
	0x74, 0x79, 0x5f, 0x64, 0x65, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x16, 0x61, 0x74,
	0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x55, 0x6e, 0x63, 0x65, 0x72, 0x74, 0x61, 0x69, 0x6e, 0x74,
	0x79, 0x44, 0x65, 0x67, 0x22, 0x96, 0x04, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x68, 0x4f, 0x62, 0x73,
	0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x31, 0x0a,
	0x14, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x5f, 0x6f, 0x62, 0x73, 0x74, 0x72,
	0x75, 0x63, 0x74, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x63, 0x75, 0x72,
	0x72, 0x65, 0x6e, 0x74, 0x6c, 0x79, 0x4f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65, 0x64,
	0x12, 0x2f, 0x0a, 0x13, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x62, 0x73,
	0x74, 0x72, 0x75, 0x63, 0x74, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x12, 0x66,
	0x72, 0x61, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65,
	0x64, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75,
	0x63, 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x74, 0x69, 0x6d, 0x65,
	0x4f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x76, 0x61,
	0x6c, 0x69, 0x64, 0x5f, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x76, 0x61, 0x6c,
	0x69, 0x64, 0x53, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x5f, 0x76,
	0x61, 0x6c, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x70, 0x61, 0x74, 0x63,
	0x68, 0x65, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x4e, 0x0a, 0x24, 0x61, 0x76, 0x67, 0x5f,
	0x70, 0x72, 0x6f, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x73,
	0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x20, 0x61, 0x76, 0x67, 0x50, 0x72, 0x6f, 0x6c, 0x6f,
	0x6e, 0x67, 0x65, 0x64, 0x4f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x44,
	0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x12, 0x4e, 0x0a, 0x24, 0x61, 0x76, 0x67, 0x5f,
	0x70, 0x72, 0x6f, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x73,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x20, 0x61, 0x76, 0x67, 0x50, 0x72, 0x6f, 0x6c, 0x6f,
	0x6e, 0x67, 0x65, 0x64, 0x4f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x49,
	0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x12, 0x45, 0x0a, 0x1f, 0x61, 0x76, 0x67, 0x5f,
	0x70, 0x72, 0x6f, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x64, 0x5f, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75,
	0x63, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x1c, 0x61, 0x76, 0x67, 0x50, 0x72, 0x6f, 0x6c, 0x6f, 0x6e, 0x67, 0x65, 0x64, 0x4f,
	0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x4a,
	0x04, 0x08, 0x02, 0x10, 0x03, 0x4a, 0x04, 0x08, 0x03, 0x10, 0x04, 0x4a, 0x06, 0x08, 0xee, 0x07,
	0x10, 0xef, 0x07, 0x52, 0x19, 0x77, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74,
	0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65, 0x64, 0x52, 0x1d,
	0x77, 0x65, 0x64, 0x67, 0x65, 0x5f, 0x61, 0x62, 0x73, 0x5f, 0x66, 0x72, 0x61, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x5f, 0x6f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x65, 0x64, 0x22, 0x9b, 0x04,
	0x0a, 0x0d, 0x44, 0x69, 0x73, 0x68, 0x55, 0x70, 0x73, 0x75, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12,
	0x1f, 0x0a, 0x0b, 0x61, 0x70, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x12, 0x21, 0x0a, 0x0c, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x18, 0x03, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6f, 0x6f, 0x74, 0x56, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x6f, 0x6d, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69,
	0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x72, 0x6f, 0x6d, 0x56, 0x65, 0x72,
	0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a,
	0x64, 0x69, 0x73, 0x68, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02,
	0x52, 0x09, 0x64, 0x69, 0x73, 0x68, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x72,
	0x6f, 0x75, 0x74, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x02, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x37,
	0x0a, 0x18, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x76, 0x5f, 0x73, 0x69, 0x67, 0x6e,
	0x65, 0x64, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x15, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x44, 0x65, 0x76, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64,
	0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x62, 0x75, 0x67,
	0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x0f, 0x64, 0x65, 0x62, 0x75, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x6f, 0x63,
	0x6b, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x73, 0x74, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x63, 0x65,
	0x72, 0x74, 0x73, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x11, 0x73, 0x74, 0x73, 0x61, 0x66, 0x65, 0x43, 0x65, 0x72, 0x74, 0x73, 0x4c, 0x6f, 0x63,
	0x6b, 0x65, 0x64, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x73, 0x61, 0x66, 0x65, 0x5f, 0x6b, 0x65,
	0x79, 0x73, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x10, 0x73, 0x74, 0x73, 0x61, 0x66, 0x65, 0x4b, 0x65, 0x79, 0x73, 0x4c, 0x6f, 0x63, 0x6b, 0x65,
	0x64, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x30, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x0c,
	0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x30, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x2e,
	0x0a, 0x13, 0x67, 0x30, 0x5f, 0x66, 0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x76, 0x65,
	0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x67, 0x30, 0x46,
	0x69, 0x72, 0x6d, 0x77, 0x61, 0x72, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1b,
	0x0a, 0x09, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x5f, 0x72, 0x65, 0x76, 0x18, 0x0e, 0x20, 0x01, 0x28,
	0x05, 0x52, 0x08, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x76, 0x12, 0x1e, 0x0a, 0x0b, 0x67,
	0x30, 0x5f, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x09, 0x67, 0x30, 0x42, 0x6f, 0x61, 0x72, 0x64, 0x49, 0x64, 0x22, 0xac, 0x02, 0x0a, 0x0c,
	0x44, 0x69, 0x73, 0x68, 0x41, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b,
	0x61, 0x70, 0x70, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x04, 0x52, 0x0a, 0x61, 0x70, 0x70, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a,
	0x0c, 0x62, 0x6f, 0x6f, 0x74, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x04, 0x52, 0x0b, 0x62, 0x6f, 0x6f, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e,
	0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x6f, 0x6d, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18,
	0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0a, 0x72, 0x6f, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f,
	0x6e, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
	0x03, 0x52, 0x06, 0x75, 0x70, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x69, 0x73,
	0x68, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x64,
	0x69, 0x73, 0x68, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x37, 0x0a, 0x18, 0x66, 0x6f, 0x72, 0x63,
	0x65, 0x5f, 0x64, 0x65, 0x76, 0x5f, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x61, 0x6c, 0x6c,
	0x6f, 0x77, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x66, 0x6f, 0x72, 0x63,
	0x65, 0x44, 0x65, 0x76, 0x53, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x41, 0x6c, 0x6c, 0x6f, 0x77, 0x65,
	0x64, 0x12, 0x2a, 0x0a, 0x11, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f,
	0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x64, 0x65,
	0x62, 0x75, 0x67, 0x50, 0x6f, 0x72, 0x74, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x12, 0x1b, 0x0a,
	0x09, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x5f, 0x72, 0x65, 0x76, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x08, 0x62, 0x6f, 0x61, 0x72, 0x64, 0x52, 0x65, 0x76, 0x22, 0xb1, 0x03, 0x0a, 0x1d, 0x49,
	0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x37, 0x0a, 0x17,
	0x61, 0x74, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x5f, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c,
	0x69, 0x7a, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x16, 0x61,
	0x74, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x49, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x69, 0x7a,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x25, 0x0a, 0x0e, 0x62, 0x75, 0x72, 0x73, 0x74, 0x5f, 0x64,
	0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x62,
	0x75, 0x72, 0x73, 0x74, 0x44, 0x65, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x12, 0x23, 0x0a, 0x0d,
	0x65, 0x6b, 0x66, 0x5f, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x67, 0x65, 0x64, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x05, 0x52, 0x0c, 0x65, 0x6b, 0x66, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x67, 0x65,
	0x64, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x63, 0x70, 0x6c, 0x61, 0x6e,
	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x66, 0x69, 0x72, 0x73, 0x74, 0x43, 0x70,
	0x6c, 0x61, 0x6e, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x66, 0x69, 0x72, 0x73, 0x74, 0x5f, 0x70, 0x6f,
	0x70, 0x5f, 0x70, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x66, 0x69,
	0x72, 0x73, 0x74, 0x50, 0x6f, 0x70, 0x50, 0x69, 0x6e, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x70,
	0x73, 0x5f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x67,
	0x70, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x69, 0x74, 0x69,
	0x61, 0x6c, 0x5f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x79,
	0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x13, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x61, 0x6c, 0x4e,
	0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x6e,
	0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18,
	0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x53, 0x63,
	0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x66, 0x5f, 0x72, 0x65, 0x61,
	0x64, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x72, 0x66, 0x52, 0x65, 0x61, 0x64,
	0x79, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x6e,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x73, 0x74,
	0x61, 0x62, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x6e, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x54,
	0x0a, 0x18, 0x44, 0x69, 0x73, 0x68, 0x41, 0x75, 0x74, 0x68, 0x65, 0x6e, 0x74, 0x69, 0x63, 0x61,
	0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x69,
	0x73, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65,
	0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x43, 0x68, 0x61,
	0x6c, 0x6c, 0x65, 0x6e, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x04,
	0x64, 0x69, 0x73, 0x68, 0x22, 0x2d, 0x0a, 0x0f, 0x53, 0x65, 0x6c, 0x66, 0x54, 0x65, 0x73, 0x74,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, 0x74, 0x61, 0x69,
	0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x64, 0x65, 0x74, 0x61, 0x69,
	0x6c, 0x65, 0x64, 0x22, 0x42, 0x0a, 0x10, 0x53, 0x65, 0x6c, 0x66, 0x54, 0x65, 0x73, 0x74, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x61, 0x73, 0x73, 0x65,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x70, 0x61, 0x73, 0x73, 0x65, 0x64, 0x12,
	0x16, 0x0a, 0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x22, 0x8f, 0x02, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x54,
	0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x45,
	0x0a, 0x07, 0x72, 0x66, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x2c, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x2e, 0x53, 0x65, 0x74, 0x54, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x66, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x06, 0x72,
	0x66, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x39, 0x0a, 0x19, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65,
	0x5f, 0x6c, 0x6f, 0x73, 0x73, 0x5f, 0x6f, 0x66, 0x5f, 0x63, 0x6f, 0x6d, 0x6d, 0x5f, 0x66, 0x64,
	0x69, 0x72, 0x18, 0xe9, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x64, 0x69, 0x73, 0x61, 0x62,
	0x6c, 0x65, 0x4c, 0x6f, 0x73, 0x73, 0x4f, 0x66, 0x43, 0x6f, 0x6d, 0x6d, 0x46, 0x64, 0x69, 0x72,
	0x12, 0x33, 0x0a, 0x15, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73,
	0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0xea, 0x07, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x13, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x4f, 0x76, 0x65,
	0x72, 0x72, 0x69, 0x64, 0x65, 0x22, 0x42, 0x0a, 0x06, 0x52, 0x66, 0x4d, 0x6f, 0x64, 0x65, 0x12,
	0x06, 0x0a, 0x02, 0x52, 0x58, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x49, 0x44, 0x4c, 0x45, 0x10,
	0x01, 0x12, 0x06, 0x0a, 0x02, 0x54, 0x58, 0x10, 0x02, 0x12, 0x07, 0x0a, 0x03, 0x43, 0x41, 0x4c,
	0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x53, 0x45, 0x52, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x06,
	0x4e, 0x4f, 0x52, 0x4d, 0x41, 0x4c, 0x10, 0xa4, 0x03, 0x22, 0x15, 0x0a, 0x13, 0x53, 0x65, 0x74,
	0x54, 0x65, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
	0x22, 0x56, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x68, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x68,
	0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e,
	0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x64, 0x69,
	0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x7c, 0x0a, 0x15, 0x44, 0x69, 0x73, 0x68,
	0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x4d, 0x0a, 0x13, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x64, 0x69, 0x73,
	0x68, 0x5f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d,
	0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x2e, 0x44, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x11, 0x75,
	0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x44, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
	0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x16, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x68, 0x47, 0x65,
	0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x57,
	0x0a, 0x15, 0x44, 0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x64, 0x69, 0x73, 0x68, 0x5f,
	0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x53,
	0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
	0x2e, 0x44, 0x69, 0x73, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x64, 0x69, 0x73,
	0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x35, 0x0a, 0x14, 0x44, 0x69, 0x73, 0x68, 0x49,
	0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x52, 0x66, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x5f, 0x72, 0x66, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x52, 0x66, 0x22, 0x36,
	0x0a, 0x15, 0x44, 0x69, 0x73, 0x68, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x52, 0x66, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x69, 0x6e, 0x68, 0x69, 0x62,
	0x69, 0x74, 0x5f, 0x72, 0x66, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x6e, 0x68,
	0x69, 0x62, 0x69, 0x74, 0x52, 0x66, 0x22, 0x38, 0x0a, 0x15, 0x44, 0x69, 0x73, 0x68, 0x49, 0x6e,
	0x68, 0x69, 0x62, 0x69, 0x74, 0x47, 0x70, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12,
	0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x5f, 0x67, 0x70, 0x73, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x47, 0x70, 0x73,
	0x22, 0x39, 0x0a, 0x16, 0x44, 0x69, 0x73, 0x68, 0x49, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x47,
	0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e,
	0x68, 0x69, 0x62, 0x69, 0x74, 0x5f, 0x67, 0x70, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x0a, 0x69, 0x6e, 0x68, 0x69, 0x62, 0x69, 0x74, 0x47, 0x70, 0x73, 0x22, 0x24, 0x0a, 0x12, 0x44,
	0x69, 0x73, 0x68, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69,
	0x64, 0x22, 0x20, 0x0a, 0x1e, 0x44, 0x69, 0x73, 0x68, 0x43, 0x6c, 0x65, 0x61, 0x72, 0x4f, 0x62,
	0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x22, 0x21, 0x0a, 0x1f, 0x44, 0x69, 0x73, 0x68, 0x43, 0x6c, 0x65, 0x61, 0x72,
	0x4f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x61, 0x70, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x65, 0x0a, 0x1b, 0x44, 0x69, 0x73, 0x68, 0x41, 0x63,
	0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x73, 0x73, 0x69, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x46, 0x0a, 0x0a, 0x73, 0x63, 0x61, 0x6e, 0x5f, 0x71, 0x75,
	0x65, 0x72, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x53, 0x70, 0x61, 0x63,
	0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69,
	0x73, 0x68, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x73, 0x73, 0x69, 0x53, 0x63,
	0x61, 0x6e, 0x52, 0x09, 0x73, 0x63, 0x61, 0x6e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x22, 0x38, 0x0a,
	0x1c, 0x44, 0x69, 0x73, 0x68, 0x41, 0x63, 0x74, 0x69, 0x76, 0x61, 0x74, 0x65, 0x52, 0x73, 0x73,
	0x69, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a,
	0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07,
	0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x22, 0x1e, 0x0a, 0x1c, 0x44, 0x69, 0x73, 0x68, 0x47,
	0x65, 0x74, 0x52, 0x73, 0x73, 0x69, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
	0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x61, 0x0a, 0x1d, 0x44, 0x69, 0x73, 0x68, 0x47,
	0x65, 0x74, 0x52, 0x73, 0x73, 0x69, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x40, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75,
	0x6c, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65,
	0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x44, 0x69, 0x73,
	0x68, 0x47, 0x65, 0x74, 0x52, 0x73, 0x73, 0x69, 0x53, 0x63, 0x61, 0x6e, 0x52, 0x65, 0x73, 0x75,
	0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x36, 0x0a, 0x17, 0x44, 0x69,
	0x73, 0x68, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x70, 0x70, 0x5f, 0x72, 0x65, 0x73,
	0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x61, 0x70, 0x70, 0x52, 0x65, 0x73,
	0x65, 0x74, 0x22, 0x1a, 0x0a, 0x18, 0x44, 0x69, 0x73, 0x68, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72,
	0x79, 0x52, 0x65, 0x73, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e,
	0x0a, 0x12, 0x52, 0x65, 0x73, 0x65, 0x74, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x72, 0x65, 0x73, 0x73, 0x65, 0x64, 0x22, 0x15,
	0x0a, 0x13, 0x52, 0x65, 0x73, 0x65, 0x74, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0xde, 0x05, 0x0a, 0x08, 0x50, 0x4c, 0x43, 0x53, 0x74, 0x61,
	0x74, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x69, 0x6e, 0x67, 0x5f,
	0x70, 0x6c, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x72, 0x65, 0x63, 0x65, 0x69,
	0x76, 0x69, 0x6e, 0x67, 0x50, 0x6c, 0x63, 0x12, 0x31, 0x0a, 0x15, 0x61, 0x76, 0x65, 0x72, 0x61,
	0x67, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x65, 0x6d, 0x70, 0x74, 0x79,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x54,
	0x69, 0x6d, 0x65, 0x54, 0x6f, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x12, 0x2f, 0x0a, 0x14, 0x61, 0x76,
	0x65, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x74, 0x6f, 0x5f, 0x66, 0x75,
	0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x61, 0x76, 0x65, 0x72, 0x61, 0x67,
	0x65, 0x54, 0x69, 0x6d, 0x65, 0x54, 0x6f, 0x46, 0x75, 0x6c, 0x6c, 0x12, 0x25, 0x0a, 0x0e, 0x62,
	0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x5f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x0d, 0x52, 0x0d, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x48, 0x65, 0x61, 0x6c,
	0x74, 0x68, 0x12, 0x30, 0x0a, 0x14, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x5f, 0x72,
	0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d,
	0x52, 0x12, 0x68, 0x61, 0x72, 0x64, 0x77, 0x61, 0x72, 0x65, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69,
	0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e,
	0x74, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52,
	0x10, 0x70, 0x65, 0x72, 0x6d, 0x61, 0x6e, 0x65, 0x6e, 0x74, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72,
	0x65, 0x12, 0x41, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x31, 0x5f, 0x73, 0x74, 0x61, 0x74,
	0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58,
	0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x4c, 0x43, 0x50,
	0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0a, 0x70, 0x6f, 0x72, 0x74, 0x31, 0x53,
	0x74, 0x61, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x32, 0x5f, 0x73,
	0x74, 0x61, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x53, 0x70, 0x61,
	0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x2e, 0x50,
	0x4c, 0x43, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0a, 0x70, 0x6f, 0x72,
	0x74, 0x32, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x41, 0x0a, 0x0c, 0x70, 0x6f, 0x72, 0x74, 0x5f,
	0x33, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e,
	0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x2e, 0x50, 0x4c, 0x43, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x52, 0x0a,
	0x70, 0x6f, 0x72, 0x74, 0x33, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x4f, 0x0a, 0x0c, 0x70, 0x6c,
	0x63, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x2c, 0x2e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65,
	0x76, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x4c, 0x43, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x50, 0x72,
	0x6f, 0x74, 0x6f, 0x63, 0x6f, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x0b,
	0x70, 0x6c, 0x63, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x12, 0x73,
	0x61, 0x66, 0x65, 0x74, 0x79, 0x5f, 0x6d, 0x6f, 0x64, 0x65, 0x5f, 0x61, 0x63, 0x74, 0x69, 0x76,
	0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x10, 0x73, 0x61, 0x66, 0x65, 0x74, 0x79, 0x4d,
	0x6f, 0x64, 0x65, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x74, 0x61,
	0x74, 0x65, 0x5f, 0x6f, 0x66, 0x5f, 0x63, 0x68, 0x61, 0x72, 0x67, 0x65, 0x18, 0x0c, 0x20, 0x01,
	0x28, 0x0d, 0x52, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x65, 0x4f, 0x66, 0x43, 0x68, 0x61, 0x72, 0x67,
	0x65, 0x12, 0x34, 0x0a, 0x16, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x5f, 0x74, 0x68, 0x72,
	0x6f, 0x74, 0x74, 0x6c, 0x65, 0x5f, 0x6c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0d, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x14, 0x74, 0x68, 0x65, 0x72, 0x6d, 0x61, 0x6c, 0x54, 0x68, 0x72, 0x6f, 0x74, 0x74,
	0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x1d, 0x0a, 0x10, 0x50, 0x72, 0x6f, 0x74, 0x6f,
	0x63, 0x6f, 0x6c, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x09, 0x0a, 0x05, 0x52,
	0x45, 0x56, 0x5f, 0x44, 0x10, 0x00, 0x22, 0xba, 0x01, 0x0a, 0x0c, 0x50, 0x4c, 0x43, 0x50, 0x6f,
	0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x42, 0x0a,
	0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2a, 0x2e,
	0x53, 0x70, 0x61, 0x63, 0x65, 0x58, 0x2e, 0x41, 0x50, 0x49, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63,
	0x65, 0x2e, 0x50, 0x4c, 0x43, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x73, 0x2e, 0x50,
	0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x22, 0x50, 0x0a, 0x0a, 0x50, 0x6f, 0x72, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12,
	0x0c, 0x0a, 0x08, 0x49, 0x4e, 0x41, 0x43, 0x54, 0x49, 0x56, 0x45, 0x10, 0x00, 0x12, 0x0c, 0x0a,
	0x08, 0x43, 0x48, 0x41, 0x52, 0x47, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x44,
	0x49, 0x53, 0x43, 0x48, 0x41, 0x52, 0x47, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11,
	0x4d, 0x4f, 0x49, 0x53, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x44, 0x45, 0x54, 0x45, 0x43, 0x54, 0x45,
	0x44, 0x10, 0x03, 0x2a, 0x3c, 0x0a, 0x11, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x6f, 0x62, 0x69, 0x6c,
	0x69, 0x74, 0x79, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x0e, 0x0a, 0x0a, 0x53, 0x54, 0x41, 0x54,
	0x49, 0x4f, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x4e, 0x4f, 0x4d, 0x41,
	0x44, 0x49, 0x43, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x4f, 0x42, 0x49, 0x4c, 0x45, 0x10,
	0x02, 0x2a, 0x50, 0x0a, 0x1c, 0x4f, 0x62, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e,
	0x4d, 0x61, 0x70, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x46, 0x72, 0x61, 0x6d,
	0x65, 0x12, 0x11, 0x0a, 0x0d, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
	0x57, 0x4e, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x45, 0x41,
	0x52, 0x54, 0x48, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x52, 0x41, 0x4d, 0x45, 0x5f, 0x55,
	0x54, 0x10, 0x02, 0x2a, 0xac, 0x01, 0x0a, 0x13, 0x53, 0x6f, 0x66, 0x74, 0x77, 0x61, 0x72, 0x65,
	0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x53,
	0x4f, 0x46, 0x54, 0x57, 0x41, 0x52, 0x45, 0x5f, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x53,
	0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08,
	0x0a, 0x04, 0x49, 0x44, 0x4c, 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x46, 0x45, 0x54, 0x43,
	0x48, 0x49, 0x4e, 0x47, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x50, 0x52, 0x45, 0x5f, 0x43, 0x48,
	0x45, 0x43, 0x4b, 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x57, 0x52, 0x49, 0x54, 0x49, 0x4e, 0x47,
	0x10, 0x04, 0x12, 0x0e, 0x0a, 0x0a, 0x50, 0x4f, 0x53, 0x54, 0x5f, 0x43, 0x48, 0x45, 0x43, 0x4b,
	0x10, 0x05, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x51,
	0x55, 0x49, 0x52, 0x45, 0x44, 0x10, 0x06, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x49, 0x53, 0x41, 0x42,
	0x4c, 0x45, 0x44, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x45, 0x44,
	0x10, 0x08, 0x2a, 0x7f, 0x0a, 0x12, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4f,
	0x66, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x1d, 0x55, 0x4e, 0x4b, 0x4e,
	0x4f, 0x57, 0x4e, 0x5f, 0x55, 0x53, 0x45, 0x52, 0x5f, 0x43, 0x4c, 0x41, 0x53, 0x53, 0x5f, 0x4f,
	0x46, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x43,
	0x4f, 0x4e, 0x53, 0x55, 0x4d, 0x45, 0x52, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x42, 0x55, 0x53,
	0x49, 0x4e, 0x45, 0x53, 0x53, 0x10, 0x02, 0x12, 0x11, 0x0a, 0x0d, 0x42, 0x55, 0x53, 0x49, 0x4e,
	0x45, 0x53, 0x53, 0x5f, 0x50, 0x4c, 0x55, 0x53, 0x10, 0x03, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4f,
	0x4d, 0x4d, 0x45, 0x52, 0x43, 0x49, 0x41, 0x4c, 0x5f, 0x41, 0x56, 0x49, 0x41, 0x54, 0x49, 0x4f,
	0x4e, 0x10, 0x04, 0x2a, 0x56, 0x0a, 0x0c, 0x48, 0x61, 0x73, 0x41, 0x63, 0x74, 0x75, 0x61, 0x74,
	0x6f, 0x72, 0x73, 0x12, 0x19, 0x0a, 0x15, 0x48, 0x41, 0x53, 0x5f, 0x41, 0x43, 0x54, 0x55, 0x41,
	0x54, 0x4f, 0x52, 0x53, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x15,
	0x0a, 0x11, 0x48, 0x41, 0x53, 0x5f, 0x41, 0x43, 0x54, 0x55, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x5f,
	0x59, 0x45, 0x53, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x48, 0x41, 0x53, 0x5f, 0x41, 0x43, 0x54,
	0x55, 0x41, 0x54, 0x4f, 0x52, 0x53, 0x5f, 0x4e, 0x4f, 0x10, 0x02, 0x2a, 0xf2, 0x02, 0x0a, 0x0d,
	0x41, 0x63, 0x74, 0x75, 0x61, 0x74, 0x6f, 0x72, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x17, 0x0a,
	0x13, 0x41, 0x43, 0x54, 0x55, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f,
	0x49, 0x44, 0x4c, 0x45, 0x10, 0x00, 0x12, 0x1c, 0x0a, 0x18, 0x41, 0x43, 0x54, 0x55, 0x41, 0x54,
	0x4f, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x55, 0x4c, 0x4c, 0x5f, 0x54, 0x49,
	0x4c, 0x54, 0x10, 0x01, 0x12, 0x19, 0x0a, 0x15, 0x41, 0x43, 0x54, 0x55, 0x41, 0x54, 0x4f, 0x52,
	0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x52, 0x4f, 0x54, 0x41, 0x54, 0x45, 0x10, 0x02, 0x12,
	0x17, 0x0a, 0x13, 0x41, 0x43, 0x54, 0x55, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54,
	0x45, 0x5f, 0x54, 0x49, 0x4c, 0x54, 0x10, 0x03, 0x12, 0x22, 0x0a, 0x1e, 0x41, 0x43, 0x54, 0x55,
	0x41, 0x54, 0x4f, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55, 0x4e, 0x57, 0x52, 0x41,
	0x50, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x56, 0x45, 0x10, 0x04, 0x12, 0x22, 0x0a, 0x1e,
	0x41, 0x43, 0x54, 0x55, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x55,
	0x4e, 0x57, 0x52, 0x41, 0x50, 0x5f, 0x4e, 0x45, 0x47, 0x41, 0x54, 0x49, 0x56, 0x45, 0x10, 0x05,
	0x12, 0x21, 0x0a, 0x1d, 0x41, 0x43, 0x54, 0x55, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x53, 0x54, 0x41,
	0x54, 0x45, 0x5f, 0x54, 0x49, 0x4c, 0x54, 0x5f, 0x54, 0x4f, 0x5f, 0x53, 0x54, 0x4f, 0x57, 0x45,
	0x44, 0x10, 0x06, 0x12, 0x1a, 0x0a, 0x16, 0x41, 0x43, 0x54, 0x55, 0x41, 0x54, 0x4f, 0x52, 0x5f,
	0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x45, 0x44, 0x10, 0x07, 0x12,
	0x22, 0x0a, 0x1e, 0x41, 0x43, 0x54, 0x55, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x53, 0x54, 0x41, 0x54,
	0x45, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x5f, 0x54, 0x49, 0x4c, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x49,
	0x43, 0x10, 0x08, 0x12, 0x2b, 0x0a, 0x27, 0x41, 0x43, 0x54, 0x55, 0x41, 0x54, 0x4f, 0x52, 0x5f,
	0x53, 0x54, 0x41, 0x54, 0x45, 0x5f, 0x44, 0x52, 0x49, 0x56, 0x45, 0x5f, 0x54, 0x4f, 0x5f, 0x4d,
	0x4f, 0x42, 0x49, 0x4c, 0x45, 0x5f, 0x50, 0x4f, 0x53, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x09,
	0x12, 0x1e, 0x0a, 0x1a, 0x41, 0x43, 0x54, 0x55, 0x41, 0x54, 0x4f, 0x52, 0x5f, 0x53, 0x54, 0x41,
	0x54, 0x45, 0x5f, 0x4d, 0x4f, 0x42, 0x49, 0x4c, 0x45, 0x5f, 0x57, 0x41, 0x49, 0x54, 0x10, 0x0a,
	0x2a, 0x81, 0x01, 0x0a, 0x17, 0x41, 0x74, 0x74, 0x69, 0x74, 0x75, 0x64, 0x65, 0x45, 0x73, 0x74,
	0x69, 0x6d, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x0c,
	0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x16,
	0x0a, 0x12, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x55, 0x4e, 0x43, 0x4f, 0x4e, 0x56, 0x45,
	0x52, 0x47, 0x45, 0x44, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52,
	0x5f, 0x43, 0x4f, 0x4e, 0x56, 0x45, 0x52, 0x47, 0x45, 0x44, 0x10, 0x02, 0x12, 0x12, 0x0a, 0x0e,
	0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x45, 0x44, 0x10, 0x03,
	0x12, 0x12, 0x0a, 0x0e, 0x46, 0x49, 0x4c, 0x54, 0x45, 0x52, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c,
	0x49, 0x44, 0x10, 0x04, 0x2a, 0xca, 0x04, 0x0a, 0x0c, 0x52, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x52,
	0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x12, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x5f,
	0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x00, 0x12, 0x18, 0x0a,
	0x14, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4d,
	0x41, 0x4e, 0x55, 0x41, 0x4c, 0x10, 0x01, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x45, 0x42, 0x4f, 0x4f,
	0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4c, 0x4f, 0x53, 0x53, 0x5f, 0x4f, 0x46,
	0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x10, 0x02, 0x12, 0x1e, 0x0a, 0x1a, 0x52, 0x45, 0x42, 0x4f, 0x4f,
	0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x57, 0x55, 0x50, 0x44, 0x41, 0x54,
	0x45, 0x5f, 0x4e, 0x4f, 0x57, 0x10, 0x03, 0x12, 0x24, 0x0a, 0x20, 0x52, 0x45, 0x42, 0x4f, 0x4f,
	0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x53, 0x57, 0x55, 0x50, 0x44, 0x41, 0x54,
	0x45, 0x5f, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x04, 0x12, 0x15, 0x0a,
	0x11, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41,
	0x50, 0x50, 0x10, 0x05, 0x12, 0x15, 0x0a, 0x11, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52,
	0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x45, 0x4d, 0x43, 0x10, 0x06, 0x12, 0x1f, 0x0a, 0x1b, 0x52,
	0x45, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x46, 0x41, 0x43,
	0x54, 0x4f, 0x52, 0x59, 0x5f, 0x52, 0x45, 0x53, 0x45, 0x54, 0x10, 0x07, 0x12, 0x1b, 0x0a, 0x17,
	0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x45,
	0x53, 0x54, 0x5f, 0x43, 0x41, 0x53, 0x45, 0x10, 0x08, 0x12, 0x23, 0x0a, 0x1f, 0x52, 0x45, 0x42,
	0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x54, 0x48, 0x45, 0x52, 0x4d,
	0x41, 0x4c, 0x5f, 0x50, 0x4f, 0x57, 0x45, 0x52, 0x5f, 0x43, 0x55, 0x54, 0x10, 0x09, 0x12, 0x27,
	0x0a, 0x23, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f,
	0x43, 0x52, 0x49, 0x54, 0x49, 0x43, 0x41, 0x4c, 0x5f, 0x50, 0x52, 0x4f, 0x43, 0x45, 0x53, 0x53,
	0x5f, 0x44, 0x49, 0x45, 0x44, 0x10, 0x0a, 0x12, 0x1d, 0x0a, 0x19, 0x52, 0x45, 0x42, 0x4f, 0x4f,
	0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x4e, 0x4f, 0x5f, 0x52, 0x46, 0x5f, 0x52,
	0x45, 0x41, 0x44, 0x59, 0x10, 0x0b, 0x12, 0x28, 0x0a, 0x24, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54,
	0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x50, 0x4f, 0x53, 0x54, 0x50, 0x4f, 0x4e, 0x45,
	0x44, 0x5f, 0x4c, 0x4f, 0x53, 0x53, 0x5f, 0x4f, 0x46, 0x5f, 0x43, 0x4f, 0x4d, 0x4d, 0x10, 0x0c,
	0x12, 0x25, 0x0a, 0x21, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f,
	0x4e, 0x5f, 0x53, 0x57, 0x55, 0x50, 0x44, 0x41, 0x54, 0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x49,
	0x4f, 0x4e, 0x41, 0x52, 0x59, 0x10, 0x0d, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x45, 0x42, 0x4f, 0x4f,
	0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x41, 0x41, 0x50, 0x5f, 0x43, 0x52, 0x41,
	0x53, 0x48, 0x10, 0x0e, 0x12, 0x1b, 0x0a, 0x17, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52,
	0x45, 0x41, 0x53, 0x4f, 0x4e, 0x5f, 0x58, 0x50, 0x37, 0x30, 0x5f, 0x53, 0x41, 0x43, 0x53, 0x10,
	0x0f, 0x12, 0x1c, 0x0a, 0x18, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53,
	0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x45, 0x5f, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x10, 0x10, 0x12,
	0x20, 0x0a, 0x1c, 0x52, 0x45, 0x42, 0x4f, 0x4f, 0x54, 0x5f, 0x52, 0x45, 0x41, 0x53, 0x4f, 0x4e,
	0x5f, 0x4b, 0x45, 0x52, 0x4e, 0x45, 0x4c, 0x5f, 0x54, 0x41, 0x49, 0x4e, 0x54, 0x45, 0x44, 0x10,
	0x11, 0x2a, 0x49, 0x0a, 0x0a, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12,
	0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00,
	0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x4c, 0x45, 0x52, 0x10, 0x01,
	0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x50, 0x45, 0x41, 0x54, 0x45, 0x52, 0x10, 0x02, 0x12, 0x0c,
	0x0a, 0x08, 0x42, 0x59, 0x50, 0x41, 0x53, 0x53, 0x45, 0x44, 0x10, 0x03, 0x2a, 0x43, 0x0a, 0x09,
	0x44, 0x69, 0x73, 0x68, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b,
	0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4e, 0x4e, 0x45, 0x43,
	0x54, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x45, 0x41, 0x52, 0x43, 0x48, 0x49,
	0x4e, 0x47, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x4f, 0x4f, 0x54, 0x49, 0x4e, 0x47, 0x10,
	0x03, 0x42, 0x17, 0x5a, 0x15, 0x73, 0x70, 0x61, 0x63, 0x65, 0x78, 0x2e, 0x63, 0x6f, 0x6d, 0x2f,
	0x61, 0x70, 0x69, 0x2f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x33,
}

var (
	file_spacex_api_device_dish_proto_rawDescOnce sync.Once
	file_spacex_api_device_dish_proto_rawDescData = file_spacex_api_device_dish_proto_rawDesc
)

func file_spacex_api_device_dish_proto_rawDescGZIP() []byte {
	file_spacex_api_device_dish_proto_rawDescOnce.Do(func() {
		file_spacex_api_device_dish_proto_rawDescData = protoimpl.X.CompressGZIP(file_spacex_api_device_dish_proto_rawDescData)
	})
	return file_spacex_api_device_dish_proto_rawDescData
}

var file_spacex_api_device_dish_proto_enumTypes = make([]protoimpl.EnumInfo, 15)
var file_spacex_api_device_dish_proto_msgTypes = make([]protoimpl.MessageInfo, 48)
var file_spacex_api_device_dish_proto_goTypes = []any{
	(UserMobilityClass)(0),                      // 0: SpaceX.API.Device.UserMobilityClass
	(ObstructionMapReferenceFrame)(0),           // 1: SpaceX.API.Device.ObstructionMapReferenceFrame
	(SoftwareUpdateState)(0),                    // 2: SpaceX.API.Device.SoftwareUpdateState
	(UserClassOfService)(0),                     // 3: SpaceX.API.Device.UserClassOfService
	(HasActuators)(0),                           // 4: SpaceX.API.Device.HasActuators
	(ActuatorState)(0),                          // 5: SpaceX.API.Device.ActuatorState
	(AttitudeEstimationState)(0),                // 6: SpaceX.API.Device.AttitudeEstimationState
	(RebootReason)(0),                           // 7: SpaceX.API.Device.RebootReason
	(RouterRole)(0),                             // 8: SpaceX.API.Device.RouterRole
	(DishState)(0),                              // 9: SpaceX.API.Device.DishState
	(DishAviationTestRequest_EthSpeed)(0),       // 10: SpaceX.API.Device.DishAviationTestRequest.EthSpeed
	(DishOutage_Cause)(0),                       // 11: SpaceX.API.Device.DishOutage.Cause
	(SetTestModeRequest_RfMode)(0),              // 12: SpaceX.API.Device.SetTestModeRequest.RfMode
	(PLCStats_ProtocolRevision)(0),              // 13: SpaceX.API.Device.PLCStats.ProtocolRevision
	(PLCPortStats_PortStatus)(0),                // 14: SpaceX.API.Device.PLCPortStats.PortStatus
	(*DishStowRequest)(nil),                     // 15: SpaceX.API.Device.DishStowRequest
	(*DishStowResponse)(nil),                    // 16: SpaceX.API.Device.DishStowResponse
	(*DishAviationTestRequest)(nil),             // 17: SpaceX.API.Device.DishAviationTestRequest
	(*DishAviationTestResponse)(nil),            // 18: SpaceX.API.Device.DishAviationTestResponse
	(*DishGetContextRequest)(nil),               // 19: SpaceX.API.Device.DishGetContextRequest
	(*DishGetContextResponse)(nil),              // 20: SpaceX.API.Device.DishGetContextResponse
	(*DishOutage)(nil),                          // 21: SpaceX.API.Device.DishOutage
	(*DishGetHistoryResponse)(nil),              // 22: SpaceX.API.Device.DishGetHistoryResponse
	(*RouterInfo)(nil),                          // 23: SpaceX.API.Device.RouterInfo
	(*DishGetStatusResponse)(nil),               // 24: SpaceX.API.Device.DishGetStatusResponse
	(*DishGetObstructionMapRequest)(nil),        // 25: SpaceX.API.Device.DishGetObstructionMapRequest
	(*DishGetObstructionMapResponse)(nil),       // 26: SpaceX.API.Device.DishGetObstructionMapResponse
	(*DishAlerts)(nil),                          // 27: SpaceX.API.Device.DishAlerts
	(*DishReadyStates)(nil),                     // 28: SpaceX.API.Device.DishReadyStates
	(*DishGpsStats)(nil),                        // 29: SpaceX.API.Device.DishGpsStats
	(*SoftwareUpdateStats)(nil),                 // 30: SpaceX.API.Device.SoftwareUpdateStats
	(*AlignmentStats)(nil),                      // 31: SpaceX.API.Device.AlignmentStats
	(*DishObstructionStats)(nil),                // 32: SpaceX.API.Device.DishObstructionStats
	(*DishUpsuStats)(nil),                       // 33: SpaceX.API.Device.DishUpsuStats
	(*DishApsStats)(nil),                        // 34: SpaceX.API.Device.DishApsStats
	(*InitializationDurationSeconds)(nil),       // 35: SpaceX.API.Device.InitializationDurationSeconds
	(*DishAuthenticateResponse)(nil),            // 36: SpaceX.API.Device.DishAuthenticateResponse
	(*SelfTestRequest)(nil),                     // 37: SpaceX.API.Device.SelfTestRequest
	(*SelfTestResponse)(nil),                    // 38: SpaceX.API.Device.SelfTestResponse
	(*SetTestModeRequest)(nil),                  // 39: SpaceX.API.Device.SetTestModeRequest
	(*SetTestModeResponse)(nil),                 // 40: SpaceX.API.Device.SetTestModeResponse
	(*DishSetConfigRequest)(nil),                // 41: SpaceX.API.Device.DishSetConfigRequest
	(*DishSetConfigResponse)(nil),               // 42: SpaceX.API.Device.DishSetConfigResponse
	(*DishGetConfigRequest)(nil),                // 43: SpaceX.API.Device.DishGetConfigRequest
	(*DishGetConfigResponse)(nil),               // 44: SpaceX.API.Device.DishGetConfigResponse
	(*DishInhibitRfRequest)(nil),                // 45: SpaceX.API.Device.DishInhibitRfRequest
	(*DishInhibitRfResponse)(nil),               // 46: SpaceX.API.Device.DishInhibitRfResponse
	(*DishInhibitGpsRequest)(nil),               // 47: SpaceX.API.Device.DishInhibitGpsRequest
	(*DishInhibitGpsResponse)(nil),              // 48: SpaceX.API.Device.DishInhibitGpsResponse
	(*DishGetDataRequest)(nil),                  // 49: SpaceX.API.Device.DishGetDataRequest
	(*DishClearObstructionMapRequest)(nil),      // 50: SpaceX.API.Device.DishClearObstructionMapRequest
	(*DishClearObstructionMapResponse)(nil),     // 51: SpaceX.API.Device.DishClearObstructionMapResponse
	(*DishActivateRssiScanRequest)(nil),         // 52: SpaceX.API.Device.DishActivateRssiScanRequest
	(*DishActivateRssiScanResponse)(nil),        // 53: SpaceX.API.Device.DishActivateRssiScanResponse
	(*DishGetRssiScanResultRequest)(nil),        // 54: SpaceX.API.Device.DishGetRssiScanResultRequest
	(*DishGetRssiScanResultResponse)(nil),       // 55: SpaceX.API.Device.DishGetRssiScanResultResponse
	(*DishFactoryResetRequest)(nil),             // 56: SpaceX.API.Device.DishFactoryResetRequest
	(*DishFactoryResetResponse)(nil),            // 57: SpaceX.API.Device.DishFactoryResetResponse
	(*ResetButtonRequest)(nil),                  // 58: SpaceX.API.Device.ResetButtonRequest
	(*ResetButtonResponse)(nil),                 // 59: SpaceX.API.Device.ResetButtonResponse
	(*PLCStats)(nil),                            // 60: SpaceX.API.Device.PLCStats
	(*PLCPortStats)(nil),                        // 61: SpaceX.API.Device.PLCPortStats
	nil,                                         // 62: SpaceX.API.Device.DishGetStatusResponse.DownstreamRoutersEntry
	(*DeviceInfo)(nil),                          // 63: SpaceX.API.Device.DeviceInfo
	(*DeviceState)(nil),                         // 64: SpaceX.API.Device.DeviceState
	(ut_disablement_codes.UtDisablementCode)(0), // 65: SpaceX.API.Satellites.Network.UtDisablementCode
	(*EventLog)(nil),                            // 66: SpaceX.API.Device.EventLog
	(ratelimitreason.RateLimitReason)(0),        // 67: SpaceX.API.Telemetron.Public.Integrations.RateLimitReason
	(*DishConfig)(nil),                          // 68: SpaceX.API.Device.DishConfig
	(*Quaternion)(nil),                          // 69: SpaceX.API.Device.Quaternion
	(account_shard.AccountShard)(0),             // 70: SpaceX.API.Device.AccountShard
	(*ChallengeResponse)(nil),                   // 71: SpaceX.API.Device.ChallengeResponse
	(*DishActivateRssiScan)(nil),                // 72: SpaceX.API.Device.DishActivateRssiScan
	(*DishGetRssiScanResult)(nil),               // 73: SpaceX.API.Device.DishGetRssiScanResult
}
var file_spacex_api_device_dish_proto_depIdxs = []int32{
	10, // 0: SpaceX.API.Device.DishAviationTestRequest.eth_speed:type_name -> SpaceX.API.Device.DishAviationTestRequest.EthSpeed
	63, // 1: SpaceX.API.Device.DishGetContextResponse.device_info:type_name -> SpaceX.API.Device.DeviceInfo
	64, // 2: SpaceX.API.Device.DishGetContextResponse.device_state:type_name -> SpaceX.API.Device.DeviceState
	65, // 3: SpaceX.API.Device.DishGetContextResponse.disablement_code:type_name -> SpaceX.API.Satellites.Network.UtDisablementCode
	11, // 4: SpaceX.API.Device.DishOutage.cause:type_name -> SpaceX.API.Device.DishOutage.Cause
	21, // 5: SpaceX.API.Device.DishGetHistoryResponse.outages:type_name -> SpaceX.API.Device.DishOutage
	66, // 6: SpaceX.API.Device.DishGetHistoryResponse.event_log:type_name -> SpaceX.API.Device.EventLog
	8,  // 7: SpaceX.API.Device.RouterInfo.role:type_name -> SpaceX.API.Device.RouterRole
	63, // 8: SpaceX.API.Device.DishGetStatusResponse.device_info:type_name -> SpaceX.API.Device.DeviceInfo
	64, // 9: SpaceX.API.Device.DishGetStatusResponse.device_state:type_name -> SpaceX.API.Device.DeviceState
	27, // 10: SpaceX.API.Device.DishGetStatusResponse.alerts:type_name -> SpaceX.API.Device.DishAlerts
	21, // 11: SpaceX.API.Device.DishGetStatusResponse.outage:type_name -> SpaceX.API.Device.DishOutage
	29, // 12: SpaceX.API.Device.DishGetStatusResponse.gps_stats:type_name -> SpaceX.API.Device.DishGpsStats
	32, // 13: SpaceX.API.Device.DishGetStatusResponse.obstruction_stats:type_name -> SpaceX.API.Device.DishObstructionStats
	0,  // 14: SpaceX.API.Device.DishGetStatusResponse.mobility_class:type_name -> SpaceX.API.Device.UserMobilityClass
	28, // 15: SpaceX.API.Device.DishGetStatusResponse.ready_states:type_name -> SpaceX.API.Device.DishReadyStates
	3,  // 16: SpaceX.API.Device.DishGetStatusResponse.class_of_service:type_name -> SpaceX.API.Device.UserClassOfService
	2,  // 17: SpaceX.API.Device.DishGetStatusResponse.software_update_state:type_name -> SpaceX.API.Device.SoftwareUpdateState
	7,  // 18: SpaceX.API.Device.DishGetStatusResponse.reboot_reason:type_name -> SpaceX.API.Device.RebootReason
	30, // 19: SpaceX.API.Device.DishGetStatusResponse.software_update_stats:type_name -> SpaceX.API.Device.SoftwareUpdateStats
	31, // 20: SpaceX.API.Device.DishGetStatusResponse.alignment_stats:type_name -> SpaceX.API.Device.AlignmentStats
	4,  // 21: SpaceX.API.Device.DishGetStatusResponse.has_actuators:type_name -> SpaceX.API.Device.HasActuators
	65, // 22: SpaceX.API.Device.DishGetStatusResponse.disablement_code:type_name -> SpaceX.API.Satellites.Network.UtDisablementCode
	67, // 23: SpaceX.API.Device.DishGetStatusResponse.dl_bandwidth_restricted_reason:type_name -> SpaceX.API.Telemetron.Public.Integrations.RateLimitReason
	67, // 24: SpaceX.API.Device.DishGetStatusResponse.ul_bandwidth_restricted_reason:type_name -> SpaceX.API.Telemetron.Public.Integrations.RateLimitReason
	68, // 25: SpaceX.API.Device.DishGetStatusResponse.config:type_name -> SpaceX.API.Device.DishConfig
	35, // 26: SpaceX.API.Device.DishGetStatusResponse.initialization_duration_seconds:type_name -> SpaceX.API.Device.InitializationDurationSeconds
	60, // 27: SpaceX.API.Device.DishGetStatusResponse.plc_stats:type_name -> SpaceX.API.Device.PLCStats
	33, // 28: SpaceX.API.Device.DishGetStatusResponse.upsu_stats:type_name -> SpaceX.API.Device.DishUpsuStats
	34, // 29: SpaceX.API.Device.DishGetStatusResponse.aps_stats:type_name -> SpaceX.API.Device.DishApsStats
	69, // 30: SpaceX.API.Device.DishGetStatusResponse.ned2dish_quaternion:type_name -> SpaceX.API.Device.Quaternion
	62, // 31: SpaceX.API.Device.DishGetStatusResponse.downstream_routers:type_name -> SpaceX.API.Device.DishGetStatusResponse.DownstreamRoutersEntry
	70, // 32: SpaceX.API.Device.DishGetStatusResponse.account_shard:type_name -> SpaceX.API.Device.AccountShard
	1,  // 33: SpaceX.API.Device.DishGetObstructionMapResponse.map_reference_frame:type_name -> SpaceX.API.Device.ObstructionMapReferenceFrame
	2,  // 34: SpaceX.API.Device.SoftwareUpdateStats.software_update_state:type_name -> SpaceX.API.Device.SoftwareUpdateState
	4,  // 35: SpaceX.API.Device.AlignmentStats.has_actuators:type_name -> SpaceX.API.Device.HasActuators
	5,  // 36: SpaceX.API.Device.AlignmentStats.actuator_state:type_name -> SpaceX.API.Device.ActuatorState
	6,  // 37: SpaceX.API.Device.AlignmentStats.attitude_estimation_state:type_name -> SpaceX.API.Device.AttitudeEstimationState
	71, // 38: SpaceX.API.Device.DishAuthenticateResponse.dish:type_name -> SpaceX.API.Device.ChallengeResponse
	12, // 39: SpaceX.API.Device.SetTestModeRequest.rf_mode:type_name -> SpaceX.API.Device.SetTestModeRequest.RfMode
	68, // 40: SpaceX.API.Device.DishSetConfigRequest.dish_config:type_name -> SpaceX.API.Device.DishConfig
	68, // 41: SpaceX.API.Device.DishSetConfigResponse.updated_dish_config:type_name -> SpaceX.API.Device.DishConfig
	68, // 42: SpaceX.API.Device.DishGetConfigResponse.dish_config:type_name -> SpaceX.API.Device.DishConfig
	72, // 43: SpaceX.API.Device.DishActivateRssiScanRequest.scan_query:type_name -> SpaceX.API.Device.DishActivateRssiScan
	73, // 44: SpaceX.API.Device.DishGetRssiScanResultResponse.result:type_name -> SpaceX.API.Device.DishGetRssiScanResult
	61, // 45: SpaceX.API.Device.PLCStats.port_1_stats:type_name -> SpaceX.API.Device.PLCPortStats
	61, // 46: SpaceX.API.Device.PLCStats.port_2_stats:type_name -> SpaceX.API.Device.PLCPortStats
	61, // 47: SpaceX.API.Device.PLCStats.port_3_stats:type_name -> SpaceX.API.Device.PLCPortStats
	13, // 48: SpaceX.API.Device.PLCStats.plc_revision:type_name -> SpaceX.API.Device.PLCStats.ProtocolRevision
	14, // 49: SpaceX.API.Device.PLCPortStats.status:type_name -> SpaceX.API.Device.PLCPortStats.PortStatus
	23, // 50: SpaceX.API.Device.DishGetStatusResponse.DownstreamRoutersEntry.value:type_name -> SpaceX.API.Device.RouterInfo
	51, // [51:51] is the sub-list for method output_type
	51, // [51:51] is the sub-list for method input_type
	51, // [51:51] is the sub-list for extension type_name
	51, // [51:51] is the sub-list for extension extendee
	0,  // [0:51] is the sub-list for field type_name
}

func init() { file_spacex_api_device_dish_proto_init() }
func file_spacex_api_device_dish_proto_init() {
	if File_spacex_api_device_dish_proto != nil {
		return
	}
	file_spacex_api_device_common_proto_init()
	file_spacex_api_device_dish_config_proto_init()
	file_spacex_api_device_rssi_scan_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_spacex_api_device_dish_proto_msgTypes[0].Exporter = func(v any, i int) any {
			switch v := v.(*DishStowRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[1].Exporter = func(v any, i int) any {
			switch v := v.(*DishStowResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[2].Exporter = func(v any, i int) any {
			switch v := v.(*DishAviationTestRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[3].Exporter = func(v any, i int) any {
			switch v := v.(*DishAviationTestResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[4].Exporter = func(v any, i int) any {
			switch v := v.(*DishGetContextRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[5].Exporter = func(v any, i int) any {
			switch v := v.(*DishGetContextResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[6].Exporter = func(v any, i int) any {
			switch v := v.(*DishOutage); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[7].Exporter = func(v any, i int) any {
			switch v := v.(*DishGetHistoryResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[8].Exporter = func(v any, i int) any {
			switch v := v.(*RouterInfo); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[9].Exporter = func(v any, i int) any {
			switch v := v.(*DishGetStatusResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[10].Exporter = func(v any, i int) any {
			switch v := v.(*DishGetObstructionMapRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[11].Exporter = func(v any, i int) any {
			switch v := v.(*DishGetObstructionMapResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[12].Exporter = func(v any, i int) any {
			switch v := v.(*DishAlerts); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[13].Exporter = func(v any, i int) any {
			switch v := v.(*DishReadyStates); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[14].Exporter = func(v any, i int) any {
			switch v := v.(*DishGpsStats); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[15].Exporter = func(v any, i int) any {
			switch v := v.(*SoftwareUpdateStats); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[16].Exporter = func(v any, i int) any {
			switch v := v.(*AlignmentStats); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[17].Exporter = func(v any, i int) any {
			switch v := v.(*DishObstructionStats); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[18].Exporter = func(v any, i int) any {
			switch v := v.(*DishUpsuStats); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[19].Exporter = func(v any, i int) any {
			switch v := v.(*DishApsStats); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[20].Exporter = func(v any, i int) any {
			switch v := v.(*InitializationDurationSeconds); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[21].Exporter = func(v any, i int) any {
			switch v := v.(*DishAuthenticateResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[22].Exporter = func(v any, i int) any {
			switch v := v.(*SelfTestRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[23].Exporter = func(v any, i int) any {
			switch v := v.(*SelfTestResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[24].Exporter = func(v any, i int) any {
			switch v := v.(*SetTestModeRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[25].Exporter = func(v any, i int) any {
			switch v := v.(*SetTestModeResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[26].Exporter = func(v any, i int) any {
			switch v := v.(*DishSetConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[27].Exporter = func(v any, i int) any {
			switch v := v.(*DishSetConfigResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[28].Exporter = func(v any, i int) any {
			switch v := v.(*DishGetConfigRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[29].Exporter = func(v any, i int) any {
			switch v := v.(*DishGetConfigResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[30].Exporter = func(v any, i int) any {
			switch v := v.(*DishInhibitRfRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[31].Exporter = func(v any, i int) any {
			switch v := v.(*DishInhibitRfResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[32].Exporter = func(v any, i int) any {
			switch v := v.(*DishInhibitGpsRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[33].Exporter = func(v any, i int) any {
			switch v := v.(*DishInhibitGpsResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[34].Exporter = func(v any, i int) any {
			switch v := v.(*DishGetDataRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[35].Exporter = func(v any, i int) any {
			switch v := v.(*DishClearObstructionMapRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[36].Exporter = func(v any, i int) any {
			switch v := v.(*DishClearObstructionMapResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[37].Exporter = func(v any, i int) any {
			switch v := v.(*DishActivateRssiScanRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[38].Exporter = func(v any, i int) any {
			switch v := v.(*DishActivateRssiScanResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[39].Exporter = func(v any, i int) any {
			switch v := v.(*DishGetRssiScanResultRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[40].Exporter = func(v any, i int) any {
			switch v := v.(*DishGetRssiScanResultResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[41].Exporter = func(v any, i int) any {
			switch v := v.(*DishFactoryResetRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[42].Exporter = func(v any, i int) any {
			switch v := v.(*DishFactoryResetResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[43].Exporter = func(v any, i int) any {
			switch v := v.(*ResetButtonRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[44].Exporter = func(v any, i int) any {
			switch v := v.(*ResetButtonResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[45].Exporter = func(v any, i int) any {
			switch v := v.(*PLCStats); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_spacex_api_device_dish_proto_msgTypes[46].Exporter = func(v any, i int) any {
			switch v := v.(*PLCPortStats); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_spacex_api_device_dish_proto_rawDesc,
			NumEnums:      15,
			NumMessages:   48,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_spacex_api_device_dish_proto_goTypes,
		DependencyIndexes: file_spacex_api_device_dish_proto_depIdxs,
		EnumInfos:         file_spacex_api_device_dish_proto_enumTypes,
		MessageInfos:      file_spacex_api_device_dish_proto_msgTypes,
	}.Build()
	File_spacex_api_device_dish_proto = out.File
	file_spacex_api_device_dish_proto_rawDesc = nil
	file_spacex_api_device_dish_proto_goTypes = nil
	file_spacex_api_device_dish_proto_depIdxs = nil
}
