matrix-bridge-meshtastic/meshtastic/protobufs/config.pb.go
Finn 9f7e00c41e
All checks were successful
/ build-container (push) Successful in 1m51s
Update protobufs
2024-10-30 14:40:36 -07:00

3043 lines
126 KiB
Go

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// protoc-gen-go v1.28.1
// protoc v3.21.12
// source: protobufs/config.proto
package protobufs
import (
protoreflect "google.golang.org/protobuf/reflect/protoreflect"
protoimpl "google.golang.org/protobuf/runtime/protoimpl"
reflect "reflect"
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)
)
// Defines the device's role on the Mesh network
type Config_DeviceConfig_Role int32
const (
// Description: App connected or stand alone messaging device.
// Technical Details: Default Role
Config_DeviceConfig_CLIENT Config_DeviceConfig_Role = 0
// Description: Device that does not forward packets from other devices.
Config_DeviceConfig_CLIENT_MUTE Config_DeviceConfig_Role = 1
// Description: Infrastructure node for extending network coverage by relaying messages. Visible in Nodes list.
// Technical Details: Mesh packets will prefer to be routed over this node. This node will not be used by client apps.
//
// The wifi radio and the oled screen will be put to sleep.
// This mode may still potentially have higher power usage due to it's preference in message rebroadcasting on the mesh.
Config_DeviceConfig_ROUTER Config_DeviceConfig_Role = 2
// Deprecated: Do not use.
Config_DeviceConfig_ROUTER_CLIENT Config_DeviceConfig_Role = 3
// Description: Infrastructure node for extending network coverage by relaying messages with minimal overhead. Not visible in Nodes list.
// Technical Details: Mesh packets will simply be rebroadcasted over this node. Nodes configured with this role will not originate NodeInfo, Position, Telemetry
//
// or any other packet type. They will simply rebroadcast any mesh packets on the same frequency, channel num, spread factor, and coding rate.
Config_DeviceConfig_REPEATER Config_DeviceConfig_Role = 4
// Description: Broadcasts GPS position packets as priority.
// Technical Details: Position Mesh packets will be prioritized higher and sent more frequently by default.
//
// When used in conjunction with power.is_power_saving = true, nodes will wake up,
// send position, and then sleep for position.position_broadcast_secs seconds.
Config_DeviceConfig_TRACKER Config_DeviceConfig_Role = 5
// Description: Broadcasts telemetry packets as priority.
// Technical Details: Telemetry Mesh packets will be prioritized higher and sent more frequently by default.
//
// When used in conjunction with power.is_power_saving = true, nodes will wake up,
// send environment telemetry, and then sleep for telemetry.environment_update_interval seconds.
Config_DeviceConfig_SENSOR Config_DeviceConfig_Role = 6
// Description: Optimized for ATAK system communication and reduces routine broadcasts.
// Technical Details: Used for nodes dedicated for connection to an ATAK EUD.
//
// Turns off many of the routine broadcasts to favor CoT packet stream
// from the Meshtastic ATAK plugin -> IMeshService -> Node
Config_DeviceConfig_TAK Config_DeviceConfig_Role = 7
// Description: Device that only broadcasts as needed for stealth or power savings.
// Technical Details: Used for nodes that "only speak when spoken to"
//
// Turns all of the routine broadcasts but allows for ad-hoc communication
// Still rebroadcasts, but with local only rebroadcast mode (known meshes only)
// Can be used for clandestine operation or to dramatically reduce airtime / power consumption
Config_DeviceConfig_CLIENT_HIDDEN Config_DeviceConfig_Role = 8
// Description: Broadcasts location as message to default channel regularly for to assist with device recovery.
// Technical Details: Used to automatically send a text message to the mesh
//
// with the current position of the device on a frequent interval:
// "I'm lost! Position: lat / long"
Config_DeviceConfig_LOST_AND_FOUND Config_DeviceConfig_Role = 9
// Description: Enables automatic TAK PLI broadcasts and reduces routine broadcasts.
// Technical Details: Turns off many of the routine broadcasts to favor ATAK CoT packet stream
//
// and automatic TAK PLI (position location information) broadcasts.
// Uses position module configuration to determine TAK PLI broadcast interval.
Config_DeviceConfig_TAK_TRACKER Config_DeviceConfig_Role = 10
)
// Enum value maps for Config_DeviceConfig_Role.
var (
Config_DeviceConfig_Role_name = map[int32]string{
0: "CLIENT",
1: "CLIENT_MUTE",
2: "ROUTER",
3: "ROUTER_CLIENT",
4: "REPEATER",
5: "TRACKER",
6: "SENSOR",
7: "TAK",
8: "CLIENT_HIDDEN",
9: "LOST_AND_FOUND",
10: "TAK_TRACKER",
}
Config_DeviceConfig_Role_value = map[string]int32{
"CLIENT": 0,
"CLIENT_MUTE": 1,
"ROUTER": 2,
"ROUTER_CLIENT": 3,
"REPEATER": 4,
"TRACKER": 5,
"SENSOR": 6,
"TAK": 7,
"CLIENT_HIDDEN": 8,
"LOST_AND_FOUND": 9,
"TAK_TRACKER": 10,
}
)
func (x Config_DeviceConfig_Role) Enum() *Config_DeviceConfig_Role {
p := new(Config_DeviceConfig_Role)
*p = x
return p
}
func (x Config_DeviceConfig_Role) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Config_DeviceConfig_Role) Descriptor() protoreflect.EnumDescriptor {
return file_protobufs_config_proto_enumTypes[0].Descriptor()
}
func (Config_DeviceConfig_Role) Type() protoreflect.EnumType {
return &file_protobufs_config_proto_enumTypes[0]
}
func (x Config_DeviceConfig_Role) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Config_DeviceConfig_Role.Descriptor instead.
func (Config_DeviceConfig_Role) EnumDescriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0, 0, 0}
}
// Defines the device's behavior for how messages are rebroadcast
type Config_DeviceConfig_RebroadcastMode int32
const (
// Default behavior.
// Rebroadcast any observed message, if it was on our private channel or from another mesh with the same lora params.
Config_DeviceConfig_ALL Config_DeviceConfig_RebroadcastMode = 0
// Same as behavior as ALL but skips packet decoding and simply rebroadcasts them.
// Only available in Repeater role. Setting this on any other roles will result in ALL behavior.
Config_DeviceConfig_ALL_SKIP_DECODING Config_DeviceConfig_RebroadcastMode = 1
// Ignores observed messages from foreign meshes that are open or those which it cannot decrypt.
// Only rebroadcasts message on the nodes local primary / secondary channels.
Config_DeviceConfig_LOCAL_ONLY Config_DeviceConfig_RebroadcastMode = 2
// Ignores observed messages from foreign meshes like LOCAL_ONLY,
// but takes it step further by also ignoring messages from nodenums not in the node's known list (NodeDB)
Config_DeviceConfig_KNOWN_ONLY Config_DeviceConfig_RebroadcastMode = 3
// Only permitted for SENSOR, TRACKER and TAK_TRACKER roles, this will inhibit all rebroadcasts, not unlike CLIENT_MUTE role.
Config_DeviceConfig_NONE Config_DeviceConfig_RebroadcastMode = 4
// Ignores packets from non-standard portnums such as: TAK, RangeTest, PaxCounter, etc.
// Only rebroadcasts packets with standard portnums: NodeInfo, Text, Position, Telemetry, and Routing.
Config_DeviceConfig_CORE_PORTNUMS_ONLY Config_DeviceConfig_RebroadcastMode = 5
)
// Enum value maps for Config_DeviceConfig_RebroadcastMode.
var (
Config_DeviceConfig_RebroadcastMode_name = map[int32]string{
0: "ALL",
1: "ALL_SKIP_DECODING",
2: "LOCAL_ONLY",
3: "KNOWN_ONLY",
4: "NONE",
5: "CORE_PORTNUMS_ONLY",
}
Config_DeviceConfig_RebroadcastMode_value = map[string]int32{
"ALL": 0,
"ALL_SKIP_DECODING": 1,
"LOCAL_ONLY": 2,
"KNOWN_ONLY": 3,
"NONE": 4,
"CORE_PORTNUMS_ONLY": 5,
}
)
func (x Config_DeviceConfig_RebroadcastMode) Enum() *Config_DeviceConfig_RebroadcastMode {
p := new(Config_DeviceConfig_RebroadcastMode)
*p = x
return p
}
func (x Config_DeviceConfig_RebroadcastMode) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Config_DeviceConfig_RebroadcastMode) Descriptor() protoreflect.EnumDescriptor {
return file_protobufs_config_proto_enumTypes[1].Descriptor()
}
func (Config_DeviceConfig_RebroadcastMode) Type() protoreflect.EnumType {
return &file_protobufs_config_proto_enumTypes[1]
}
func (x Config_DeviceConfig_RebroadcastMode) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Config_DeviceConfig_RebroadcastMode.Descriptor instead.
func (Config_DeviceConfig_RebroadcastMode) EnumDescriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0, 0, 1}
}
// Bit field of boolean configuration options, indicating which optional
// fields to include when assembling POSITION messages.
// Longitude, latitude, altitude, speed, heading, and DOP
// are always included (also time if GPS-synced)
// NOTE: the more fields are included, the larger the message will be -
//
// leading to longer airtime and a higher risk of packet loss
type Config_PositionConfig_PositionFlags int32
const (
// Required for compilation
Config_PositionConfig_UNSET Config_PositionConfig_PositionFlags = 0
// Include an altitude value (if available)
Config_PositionConfig_ALTITUDE Config_PositionConfig_PositionFlags = 1
// Altitude value is MSL
Config_PositionConfig_ALTITUDE_MSL Config_PositionConfig_PositionFlags = 2
// Include geoidal separation
Config_PositionConfig_GEOIDAL_SEPARATION Config_PositionConfig_PositionFlags = 4
// Include the DOP value ; PDOP used by default, see below
Config_PositionConfig_DOP Config_PositionConfig_PositionFlags = 8
// If POS_DOP set, send separate HDOP / VDOP values instead of PDOP
Config_PositionConfig_HVDOP Config_PositionConfig_PositionFlags = 16
// Include number of "satellites in view"
Config_PositionConfig_SATINVIEW Config_PositionConfig_PositionFlags = 32
// Include a sequence number incremented per packet
Config_PositionConfig_SEQ_NO Config_PositionConfig_PositionFlags = 64
// Include positional timestamp (from GPS solution)
Config_PositionConfig_TIMESTAMP Config_PositionConfig_PositionFlags = 128
// Include positional heading
// Intended for use with vehicle not walking speeds
// walking speeds are likely to be error prone like the compass
Config_PositionConfig_HEADING Config_PositionConfig_PositionFlags = 256
// Include positional speed
// Intended for use with vehicle not walking speeds
// walking speeds are likely to be error prone like the compass
Config_PositionConfig_SPEED Config_PositionConfig_PositionFlags = 512
)
// Enum value maps for Config_PositionConfig_PositionFlags.
var (
Config_PositionConfig_PositionFlags_name = map[int32]string{
0: "UNSET",
1: "ALTITUDE",
2: "ALTITUDE_MSL",
4: "GEOIDAL_SEPARATION",
8: "DOP",
16: "HVDOP",
32: "SATINVIEW",
64: "SEQ_NO",
128: "TIMESTAMP",
256: "HEADING",
512: "SPEED",
}
Config_PositionConfig_PositionFlags_value = map[string]int32{
"UNSET": 0,
"ALTITUDE": 1,
"ALTITUDE_MSL": 2,
"GEOIDAL_SEPARATION": 4,
"DOP": 8,
"HVDOP": 16,
"SATINVIEW": 32,
"SEQ_NO": 64,
"TIMESTAMP": 128,
"HEADING": 256,
"SPEED": 512,
}
)
func (x Config_PositionConfig_PositionFlags) Enum() *Config_PositionConfig_PositionFlags {
p := new(Config_PositionConfig_PositionFlags)
*p = x
return p
}
func (x Config_PositionConfig_PositionFlags) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Config_PositionConfig_PositionFlags) Descriptor() protoreflect.EnumDescriptor {
return file_protobufs_config_proto_enumTypes[2].Descriptor()
}
func (Config_PositionConfig_PositionFlags) Type() protoreflect.EnumType {
return &file_protobufs_config_proto_enumTypes[2]
}
func (x Config_PositionConfig_PositionFlags) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Config_PositionConfig_PositionFlags.Descriptor instead.
func (Config_PositionConfig_PositionFlags) EnumDescriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0, 1, 0}
}
type Config_PositionConfig_GpsMode int32
const (
// GPS is present but disabled
Config_PositionConfig_DISABLED Config_PositionConfig_GpsMode = 0
// GPS is present and enabled
Config_PositionConfig_ENABLED Config_PositionConfig_GpsMode = 1
// GPS is not present on the device
Config_PositionConfig_NOT_PRESENT Config_PositionConfig_GpsMode = 2
)
// Enum value maps for Config_PositionConfig_GpsMode.
var (
Config_PositionConfig_GpsMode_name = map[int32]string{
0: "DISABLED",
1: "ENABLED",
2: "NOT_PRESENT",
}
Config_PositionConfig_GpsMode_value = map[string]int32{
"DISABLED": 0,
"ENABLED": 1,
"NOT_PRESENT": 2,
}
)
func (x Config_PositionConfig_GpsMode) Enum() *Config_PositionConfig_GpsMode {
p := new(Config_PositionConfig_GpsMode)
*p = x
return p
}
func (x Config_PositionConfig_GpsMode) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Config_PositionConfig_GpsMode) Descriptor() protoreflect.EnumDescriptor {
return file_protobufs_config_proto_enumTypes[3].Descriptor()
}
func (Config_PositionConfig_GpsMode) Type() protoreflect.EnumType {
return &file_protobufs_config_proto_enumTypes[3]
}
func (x Config_PositionConfig_GpsMode) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Config_PositionConfig_GpsMode.Descriptor instead.
func (Config_PositionConfig_GpsMode) EnumDescriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0, 1, 1}
}
type Config_NetworkConfig_AddressMode int32
const (
// obtain ip address via DHCP
Config_NetworkConfig_DHCP Config_NetworkConfig_AddressMode = 0
// use static ip address
Config_NetworkConfig_STATIC Config_NetworkConfig_AddressMode = 1
)
// Enum value maps for Config_NetworkConfig_AddressMode.
var (
Config_NetworkConfig_AddressMode_name = map[int32]string{
0: "DHCP",
1: "STATIC",
}
Config_NetworkConfig_AddressMode_value = map[string]int32{
"DHCP": 0,
"STATIC": 1,
}
)
func (x Config_NetworkConfig_AddressMode) Enum() *Config_NetworkConfig_AddressMode {
p := new(Config_NetworkConfig_AddressMode)
*p = x
return p
}
func (x Config_NetworkConfig_AddressMode) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Config_NetworkConfig_AddressMode) Descriptor() protoreflect.EnumDescriptor {
return file_protobufs_config_proto_enumTypes[4].Descriptor()
}
func (Config_NetworkConfig_AddressMode) Type() protoreflect.EnumType {
return &file_protobufs_config_proto_enumTypes[4]
}
func (x Config_NetworkConfig_AddressMode) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Config_NetworkConfig_AddressMode.Descriptor instead.
func (Config_NetworkConfig_AddressMode) EnumDescriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0, 3, 0}
}
// How the GPS coordinates are displayed on the OLED screen.
type Config_DisplayConfig_GpsCoordinateFormat int32
const (
// GPS coordinates are displayed in the normal decimal degrees format:
// DD.DDDDDD DDD.DDDDDD
Config_DisplayConfig_DEC Config_DisplayConfig_GpsCoordinateFormat = 0
// GPS coordinates are displayed in the degrees minutes seconds format:
// DD°MM'SS"C DDD°MM'SS"C, where C is the compass point representing the locations quadrant
Config_DisplayConfig_DMS Config_DisplayConfig_GpsCoordinateFormat = 1
// Universal Transverse Mercator format:
// ZZB EEEEEE NNNNNNN, where Z is zone, B is band, E is easting, N is northing
Config_DisplayConfig_UTM Config_DisplayConfig_GpsCoordinateFormat = 2
// Military Grid Reference System format:
// ZZB CD EEEEE NNNNN, where Z is zone, B is band, C is the east 100k square, D is the north 100k square,
// E is easting, N is northing
Config_DisplayConfig_MGRS Config_DisplayConfig_GpsCoordinateFormat = 3
// Open Location Code (aka Plus Codes).
Config_DisplayConfig_OLC Config_DisplayConfig_GpsCoordinateFormat = 4
// Ordnance Survey Grid Reference (the National Grid System of the UK).
// Format: AB EEEEE NNNNN, where A is the east 100k square, B is the north 100k square,
// E is the easting, N is the northing
Config_DisplayConfig_OSGR Config_DisplayConfig_GpsCoordinateFormat = 5
)
// Enum value maps for Config_DisplayConfig_GpsCoordinateFormat.
var (
Config_DisplayConfig_GpsCoordinateFormat_name = map[int32]string{
0: "DEC",
1: "DMS",
2: "UTM",
3: "MGRS",
4: "OLC",
5: "OSGR",
}
Config_DisplayConfig_GpsCoordinateFormat_value = map[string]int32{
"DEC": 0,
"DMS": 1,
"UTM": 2,
"MGRS": 3,
"OLC": 4,
"OSGR": 5,
}
)
func (x Config_DisplayConfig_GpsCoordinateFormat) Enum() *Config_DisplayConfig_GpsCoordinateFormat {
p := new(Config_DisplayConfig_GpsCoordinateFormat)
*p = x
return p
}
func (x Config_DisplayConfig_GpsCoordinateFormat) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Config_DisplayConfig_GpsCoordinateFormat) Descriptor() protoreflect.EnumDescriptor {
return file_protobufs_config_proto_enumTypes[5].Descriptor()
}
func (Config_DisplayConfig_GpsCoordinateFormat) Type() protoreflect.EnumType {
return &file_protobufs_config_proto_enumTypes[5]
}
func (x Config_DisplayConfig_GpsCoordinateFormat) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Config_DisplayConfig_GpsCoordinateFormat.Descriptor instead.
func (Config_DisplayConfig_GpsCoordinateFormat) EnumDescriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0, 4, 0}
}
// Unit display preference
type Config_DisplayConfig_DisplayUnits int32
const (
// Metric (Default)
Config_DisplayConfig_METRIC Config_DisplayConfig_DisplayUnits = 0
// Imperial
Config_DisplayConfig_IMPERIAL Config_DisplayConfig_DisplayUnits = 1
)
// Enum value maps for Config_DisplayConfig_DisplayUnits.
var (
Config_DisplayConfig_DisplayUnits_name = map[int32]string{
0: "METRIC",
1: "IMPERIAL",
}
Config_DisplayConfig_DisplayUnits_value = map[string]int32{
"METRIC": 0,
"IMPERIAL": 1,
}
)
func (x Config_DisplayConfig_DisplayUnits) Enum() *Config_DisplayConfig_DisplayUnits {
p := new(Config_DisplayConfig_DisplayUnits)
*p = x
return p
}
func (x Config_DisplayConfig_DisplayUnits) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Config_DisplayConfig_DisplayUnits) Descriptor() protoreflect.EnumDescriptor {
return file_protobufs_config_proto_enumTypes[6].Descriptor()
}
func (Config_DisplayConfig_DisplayUnits) Type() protoreflect.EnumType {
return &file_protobufs_config_proto_enumTypes[6]
}
func (x Config_DisplayConfig_DisplayUnits) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Config_DisplayConfig_DisplayUnits.Descriptor instead.
func (Config_DisplayConfig_DisplayUnits) EnumDescriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0, 4, 1}
}
// Override OLED outo detect with this if it fails.
type Config_DisplayConfig_OledType int32
const (
// Default / Auto
Config_DisplayConfig_OLED_AUTO Config_DisplayConfig_OledType = 0
// Default / Auto
Config_DisplayConfig_OLED_SSD1306 Config_DisplayConfig_OledType = 1
// Default / Auto
Config_DisplayConfig_OLED_SH1106 Config_DisplayConfig_OledType = 2
// Can not be auto detected but set by proto. Used for 128x128 screens
Config_DisplayConfig_OLED_SH1107 Config_DisplayConfig_OledType = 3
)
// Enum value maps for Config_DisplayConfig_OledType.
var (
Config_DisplayConfig_OledType_name = map[int32]string{
0: "OLED_AUTO",
1: "OLED_SSD1306",
2: "OLED_SH1106",
3: "OLED_SH1107",
}
Config_DisplayConfig_OledType_value = map[string]int32{
"OLED_AUTO": 0,
"OLED_SSD1306": 1,
"OLED_SH1106": 2,
"OLED_SH1107": 3,
}
)
func (x Config_DisplayConfig_OledType) Enum() *Config_DisplayConfig_OledType {
p := new(Config_DisplayConfig_OledType)
*p = x
return p
}
func (x Config_DisplayConfig_OledType) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Config_DisplayConfig_OledType) Descriptor() protoreflect.EnumDescriptor {
return file_protobufs_config_proto_enumTypes[7].Descriptor()
}
func (Config_DisplayConfig_OledType) Type() protoreflect.EnumType {
return &file_protobufs_config_proto_enumTypes[7]
}
func (x Config_DisplayConfig_OledType) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Config_DisplayConfig_OledType.Descriptor instead.
func (Config_DisplayConfig_OledType) EnumDescriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0, 4, 2}
}
type Config_DisplayConfig_DisplayMode int32
const (
// Default. The old style for the 128x64 OLED screen
Config_DisplayConfig_DEFAULT Config_DisplayConfig_DisplayMode = 0
// Rearrange display elements to cater for bicolor OLED displays
Config_DisplayConfig_TWOCOLOR Config_DisplayConfig_DisplayMode = 1
// Same as TwoColor, but with inverted top bar. Not so good for Epaper displays
Config_DisplayConfig_INVERTED Config_DisplayConfig_DisplayMode = 2
// TFT Full Color Displays (not implemented yet)
Config_DisplayConfig_COLOR Config_DisplayConfig_DisplayMode = 3
)
// Enum value maps for Config_DisplayConfig_DisplayMode.
var (
Config_DisplayConfig_DisplayMode_name = map[int32]string{
0: "DEFAULT",
1: "TWOCOLOR",
2: "INVERTED",
3: "COLOR",
}
Config_DisplayConfig_DisplayMode_value = map[string]int32{
"DEFAULT": 0,
"TWOCOLOR": 1,
"INVERTED": 2,
"COLOR": 3,
}
)
func (x Config_DisplayConfig_DisplayMode) Enum() *Config_DisplayConfig_DisplayMode {
p := new(Config_DisplayConfig_DisplayMode)
*p = x
return p
}
func (x Config_DisplayConfig_DisplayMode) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Config_DisplayConfig_DisplayMode) Descriptor() protoreflect.EnumDescriptor {
return file_protobufs_config_proto_enumTypes[8].Descriptor()
}
func (Config_DisplayConfig_DisplayMode) Type() protoreflect.EnumType {
return &file_protobufs_config_proto_enumTypes[8]
}
func (x Config_DisplayConfig_DisplayMode) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Config_DisplayConfig_DisplayMode.Descriptor instead.
func (Config_DisplayConfig_DisplayMode) EnumDescriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0, 4, 3}
}
type Config_DisplayConfig_CompassOrientation int32
const (
// The compass and the display are in the same orientation.
Config_DisplayConfig_DEGREES_0 Config_DisplayConfig_CompassOrientation = 0
// Rotate the compass by 90 degrees.
Config_DisplayConfig_DEGREES_90 Config_DisplayConfig_CompassOrientation = 1
// Rotate the compass by 180 degrees.
Config_DisplayConfig_DEGREES_180 Config_DisplayConfig_CompassOrientation = 2
// Rotate the compass by 270 degrees.
Config_DisplayConfig_DEGREES_270 Config_DisplayConfig_CompassOrientation = 3
// Don't rotate the compass, but invert the result.
Config_DisplayConfig_DEGREES_0_INVERTED Config_DisplayConfig_CompassOrientation = 4
// Rotate the compass by 90 degrees and invert.
Config_DisplayConfig_DEGREES_90_INVERTED Config_DisplayConfig_CompassOrientation = 5
// Rotate the compass by 180 degrees and invert.
Config_DisplayConfig_DEGREES_180_INVERTED Config_DisplayConfig_CompassOrientation = 6
// Rotate the compass by 270 degrees and invert.
Config_DisplayConfig_DEGREES_270_INVERTED Config_DisplayConfig_CompassOrientation = 7
)
// Enum value maps for Config_DisplayConfig_CompassOrientation.
var (
Config_DisplayConfig_CompassOrientation_name = map[int32]string{
0: "DEGREES_0",
1: "DEGREES_90",
2: "DEGREES_180",
3: "DEGREES_270",
4: "DEGREES_0_INVERTED",
5: "DEGREES_90_INVERTED",
6: "DEGREES_180_INVERTED",
7: "DEGREES_270_INVERTED",
}
Config_DisplayConfig_CompassOrientation_value = map[string]int32{
"DEGREES_0": 0,
"DEGREES_90": 1,
"DEGREES_180": 2,
"DEGREES_270": 3,
"DEGREES_0_INVERTED": 4,
"DEGREES_90_INVERTED": 5,
"DEGREES_180_INVERTED": 6,
"DEGREES_270_INVERTED": 7,
}
)
func (x Config_DisplayConfig_CompassOrientation) Enum() *Config_DisplayConfig_CompassOrientation {
p := new(Config_DisplayConfig_CompassOrientation)
*p = x
return p
}
func (x Config_DisplayConfig_CompassOrientation) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Config_DisplayConfig_CompassOrientation) Descriptor() protoreflect.EnumDescriptor {
return file_protobufs_config_proto_enumTypes[9].Descriptor()
}
func (Config_DisplayConfig_CompassOrientation) Type() protoreflect.EnumType {
return &file_protobufs_config_proto_enumTypes[9]
}
func (x Config_DisplayConfig_CompassOrientation) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Config_DisplayConfig_CompassOrientation.Descriptor instead.
func (Config_DisplayConfig_CompassOrientation) EnumDescriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0, 4, 4}
}
type Config_LoRaConfig_RegionCode int32
const (
// Region is not set
Config_LoRaConfig_UNSET Config_LoRaConfig_RegionCode = 0
// United States
Config_LoRaConfig_US Config_LoRaConfig_RegionCode = 1
// European Union 433mhz
Config_LoRaConfig_EU_433 Config_LoRaConfig_RegionCode = 2
// European Union 868mhz
Config_LoRaConfig_EU_868 Config_LoRaConfig_RegionCode = 3
// China
Config_LoRaConfig_CN Config_LoRaConfig_RegionCode = 4
// Japan
Config_LoRaConfig_JP Config_LoRaConfig_RegionCode = 5
// Australia / New Zealand
Config_LoRaConfig_ANZ Config_LoRaConfig_RegionCode = 6
// Korea
Config_LoRaConfig_KR Config_LoRaConfig_RegionCode = 7
// Taiwan
Config_LoRaConfig_TW Config_LoRaConfig_RegionCode = 8
// Russia
Config_LoRaConfig_RU Config_LoRaConfig_RegionCode = 9
// India
Config_LoRaConfig_IN Config_LoRaConfig_RegionCode = 10
// New Zealand 865mhz
Config_LoRaConfig_NZ_865 Config_LoRaConfig_RegionCode = 11
// Thailand
Config_LoRaConfig_TH Config_LoRaConfig_RegionCode = 12
// WLAN Band
Config_LoRaConfig_LORA_24 Config_LoRaConfig_RegionCode = 13
// Ukraine 433mhz
Config_LoRaConfig_UA_433 Config_LoRaConfig_RegionCode = 14
// Ukraine 868mhz
Config_LoRaConfig_UA_868 Config_LoRaConfig_RegionCode = 15
// Malaysia 433mhz
Config_LoRaConfig_MY_433 Config_LoRaConfig_RegionCode = 16
// Malaysia 919mhz
Config_LoRaConfig_MY_919 Config_LoRaConfig_RegionCode = 17
// Singapore 923mhz
Config_LoRaConfig_SG_923 Config_LoRaConfig_RegionCode = 18
// Philippines 433mhz
Config_LoRaConfig_PH_433 Config_LoRaConfig_RegionCode = 19
// Philippines 868mhz
Config_LoRaConfig_PH_868 Config_LoRaConfig_RegionCode = 20
// Philippines 915mhz
Config_LoRaConfig_PH_915 Config_LoRaConfig_RegionCode = 21
)
// Enum value maps for Config_LoRaConfig_RegionCode.
var (
Config_LoRaConfig_RegionCode_name = map[int32]string{
0: "UNSET",
1: "US",
2: "EU_433",
3: "EU_868",
4: "CN",
5: "JP",
6: "ANZ",
7: "KR",
8: "TW",
9: "RU",
10: "IN",
11: "NZ_865",
12: "TH",
13: "LORA_24",
14: "UA_433",
15: "UA_868",
16: "MY_433",
17: "MY_919",
18: "SG_923",
19: "PH_433",
20: "PH_868",
21: "PH_915",
}
Config_LoRaConfig_RegionCode_value = map[string]int32{
"UNSET": 0,
"US": 1,
"EU_433": 2,
"EU_868": 3,
"CN": 4,
"JP": 5,
"ANZ": 6,
"KR": 7,
"TW": 8,
"RU": 9,
"IN": 10,
"NZ_865": 11,
"TH": 12,
"LORA_24": 13,
"UA_433": 14,
"UA_868": 15,
"MY_433": 16,
"MY_919": 17,
"SG_923": 18,
"PH_433": 19,
"PH_868": 20,
"PH_915": 21,
}
)
func (x Config_LoRaConfig_RegionCode) Enum() *Config_LoRaConfig_RegionCode {
p := new(Config_LoRaConfig_RegionCode)
*p = x
return p
}
func (x Config_LoRaConfig_RegionCode) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Config_LoRaConfig_RegionCode) Descriptor() protoreflect.EnumDescriptor {
return file_protobufs_config_proto_enumTypes[10].Descriptor()
}
func (Config_LoRaConfig_RegionCode) Type() protoreflect.EnumType {
return &file_protobufs_config_proto_enumTypes[10]
}
func (x Config_LoRaConfig_RegionCode) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Config_LoRaConfig_RegionCode.Descriptor instead.
func (Config_LoRaConfig_RegionCode) EnumDescriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0, 5, 0}
}
// Standard predefined channel settings
// Note: these mappings must match ModemPreset Choice in the device code.
type Config_LoRaConfig_ModemPreset int32
const (
// Long Range - Fast
Config_LoRaConfig_LONG_FAST Config_LoRaConfig_ModemPreset = 0
// Long Range - Slow
Config_LoRaConfig_LONG_SLOW Config_LoRaConfig_ModemPreset = 1
// Very Long Range - Slow
// Deprecated in 2.5: Works only with txco and is unusably slow
//
// Deprecated: Do not use.
Config_LoRaConfig_VERY_LONG_SLOW Config_LoRaConfig_ModemPreset = 2
// Medium Range - Slow
Config_LoRaConfig_MEDIUM_SLOW Config_LoRaConfig_ModemPreset = 3
// Medium Range - Fast
Config_LoRaConfig_MEDIUM_FAST Config_LoRaConfig_ModemPreset = 4
// Short Range - Slow
Config_LoRaConfig_SHORT_SLOW Config_LoRaConfig_ModemPreset = 5
// Short Range - Fast
Config_LoRaConfig_SHORT_FAST Config_LoRaConfig_ModemPreset = 6
// Long Range - Moderately Fast
Config_LoRaConfig_LONG_MODERATE Config_LoRaConfig_ModemPreset = 7
// Short Range - Turbo
// This is the fastest preset and the only one with 500kHz bandwidth.
// It is not legal to use in all regions due to this wider bandwidth.
Config_LoRaConfig_SHORT_TURBO Config_LoRaConfig_ModemPreset = 8
)
// Enum value maps for Config_LoRaConfig_ModemPreset.
var (
Config_LoRaConfig_ModemPreset_name = map[int32]string{
0: "LONG_FAST",
1: "LONG_SLOW",
2: "VERY_LONG_SLOW",
3: "MEDIUM_SLOW",
4: "MEDIUM_FAST",
5: "SHORT_SLOW",
6: "SHORT_FAST",
7: "LONG_MODERATE",
8: "SHORT_TURBO",
}
Config_LoRaConfig_ModemPreset_value = map[string]int32{
"LONG_FAST": 0,
"LONG_SLOW": 1,
"VERY_LONG_SLOW": 2,
"MEDIUM_SLOW": 3,
"MEDIUM_FAST": 4,
"SHORT_SLOW": 5,
"SHORT_FAST": 6,
"LONG_MODERATE": 7,
"SHORT_TURBO": 8,
}
)
func (x Config_LoRaConfig_ModemPreset) Enum() *Config_LoRaConfig_ModemPreset {
p := new(Config_LoRaConfig_ModemPreset)
*p = x
return p
}
func (x Config_LoRaConfig_ModemPreset) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Config_LoRaConfig_ModemPreset) Descriptor() protoreflect.EnumDescriptor {
return file_protobufs_config_proto_enumTypes[11].Descriptor()
}
func (Config_LoRaConfig_ModemPreset) Type() protoreflect.EnumType {
return &file_protobufs_config_proto_enumTypes[11]
}
func (x Config_LoRaConfig_ModemPreset) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Config_LoRaConfig_ModemPreset.Descriptor instead.
func (Config_LoRaConfig_ModemPreset) EnumDescriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0, 5, 1}
}
type Config_BluetoothConfig_PairingMode int32
const (
// Device generates a random PIN that will be shown on the screen of the device for pairing
Config_BluetoothConfig_RANDOM_PIN Config_BluetoothConfig_PairingMode = 0
// Device requires a specified fixed PIN for pairing
Config_BluetoothConfig_FIXED_PIN Config_BluetoothConfig_PairingMode = 1
// Device requires no PIN for pairing
Config_BluetoothConfig_NO_PIN Config_BluetoothConfig_PairingMode = 2
)
// Enum value maps for Config_BluetoothConfig_PairingMode.
var (
Config_BluetoothConfig_PairingMode_name = map[int32]string{
0: "RANDOM_PIN",
1: "FIXED_PIN",
2: "NO_PIN",
}
Config_BluetoothConfig_PairingMode_value = map[string]int32{
"RANDOM_PIN": 0,
"FIXED_PIN": 1,
"NO_PIN": 2,
}
)
func (x Config_BluetoothConfig_PairingMode) Enum() *Config_BluetoothConfig_PairingMode {
p := new(Config_BluetoothConfig_PairingMode)
*p = x
return p
}
func (x Config_BluetoothConfig_PairingMode) String() string {
return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}
func (Config_BluetoothConfig_PairingMode) Descriptor() protoreflect.EnumDescriptor {
return file_protobufs_config_proto_enumTypes[12].Descriptor()
}
func (Config_BluetoothConfig_PairingMode) Type() protoreflect.EnumType {
return &file_protobufs_config_proto_enumTypes[12]
}
func (x Config_BluetoothConfig_PairingMode) Number() protoreflect.EnumNumber {
return protoreflect.EnumNumber(x)
}
// Deprecated: Use Config_BluetoothConfig_PairingMode.Descriptor instead.
func (Config_BluetoothConfig_PairingMode) EnumDescriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0, 6, 0}
}
type Config struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Payload Variant
//
// Types that are assignable to PayloadVariant:
//
// *Config_Device
// *Config_Position
// *Config_Power
// *Config_Network
// *Config_Display
// *Config_Lora
// *Config_Bluetooth
// *Config_Security
// *Config_Sessionkey
// *Config_DeviceUi
PayloadVariant isConfig_PayloadVariant `protobuf_oneof:"payload_variant"`
}
func (x *Config) Reset() {
*x = Config{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_config_proto_msgTypes[0]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Config) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Config) ProtoMessage() {}
func (x *Config) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_config_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 Config.ProtoReflect.Descriptor instead.
func (*Config) Descriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0}
}
func (m *Config) GetPayloadVariant() isConfig_PayloadVariant {
if m != nil {
return m.PayloadVariant
}
return nil
}
func (x *Config) GetDevice() *Config_DeviceConfig {
if x, ok := x.GetPayloadVariant().(*Config_Device); ok {
return x.Device
}
return nil
}
func (x *Config) GetPosition() *Config_PositionConfig {
if x, ok := x.GetPayloadVariant().(*Config_Position); ok {
return x.Position
}
return nil
}
func (x *Config) GetPower() *Config_PowerConfig {
if x, ok := x.GetPayloadVariant().(*Config_Power); ok {
return x.Power
}
return nil
}
func (x *Config) GetNetwork() *Config_NetworkConfig {
if x, ok := x.GetPayloadVariant().(*Config_Network); ok {
return x.Network
}
return nil
}
func (x *Config) GetDisplay() *Config_DisplayConfig {
if x, ok := x.GetPayloadVariant().(*Config_Display); ok {
return x.Display
}
return nil
}
func (x *Config) GetLora() *Config_LoRaConfig {
if x, ok := x.GetPayloadVariant().(*Config_Lora); ok {
return x.Lora
}
return nil
}
func (x *Config) GetBluetooth() *Config_BluetoothConfig {
if x, ok := x.GetPayloadVariant().(*Config_Bluetooth); ok {
return x.Bluetooth
}
return nil
}
func (x *Config) GetSecurity() *Config_SecurityConfig {
if x, ok := x.GetPayloadVariant().(*Config_Security); ok {
return x.Security
}
return nil
}
func (x *Config) GetSessionkey() *Config_SessionkeyConfig {
if x, ok := x.GetPayloadVariant().(*Config_Sessionkey); ok {
return x.Sessionkey
}
return nil
}
func (x *Config) GetDeviceUi() *DeviceUIConfig {
if x, ok := x.GetPayloadVariant().(*Config_DeviceUi); ok {
return x.DeviceUi
}
return nil
}
type isConfig_PayloadVariant interface {
isConfig_PayloadVariant()
}
type Config_Device struct {
Device *Config_DeviceConfig `protobuf:"bytes,1,opt,name=device,proto3,oneof"`
}
type Config_Position struct {
Position *Config_PositionConfig `protobuf:"bytes,2,opt,name=position,proto3,oneof"`
}
type Config_Power struct {
Power *Config_PowerConfig `protobuf:"bytes,3,opt,name=power,proto3,oneof"`
}
type Config_Network struct {
Network *Config_NetworkConfig `protobuf:"bytes,4,opt,name=network,proto3,oneof"`
}
type Config_Display struct {
Display *Config_DisplayConfig `protobuf:"bytes,5,opt,name=display,proto3,oneof"`
}
type Config_Lora struct {
Lora *Config_LoRaConfig `protobuf:"bytes,6,opt,name=lora,proto3,oneof"`
}
type Config_Bluetooth struct {
Bluetooth *Config_BluetoothConfig `protobuf:"bytes,7,opt,name=bluetooth,proto3,oneof"`
}
type Config_Security struct {
Security *Config_SecurityConfig `protobuf:"bytes,8,opt,name=security,proto3,oneof"`
}
type Config_Sessionkey struct {
Sessionkey *Config_SessionkeyConfig `protobuf:"bytes,9,opt,name=sessionkey,proto3,oneof"`
}
type Config_DeviceUi struct {
DeviceUi *DeviceUIConfig `protobuf:"bytes,10,opt,name=device_ui,json=deviceUi,proto3,oneof"`
}
func (*Config_Device) isConfig_PayloadVariant() {}
func (*Config_Position) isConfig_PayloadVariant() {}
func (*Config_Power) isConfig_PayloadVariant() {}
func (*Config_Network) isConfig_PayloadVariant() {}
func (*Config_Display) isConfig_PayloadVariant() {}
func (*Config_Lora) isConfig_PayloadVariant() {}
func (*Config_Bluetooth) isConfig_PayloadVariant() {}
func (*Config_Security) isConfig_PayloadVariant() {}
func (*Config_Sessionkey) isConfig_PayloadVariant() {}
func (*Config_DeviceUi) isConfig_PayloadVariant() {}
// Configuration
type Config_DeviceConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Sets the role of node
Role Config_DeviceConfig_Role `protobuf:"varint,1,opt,name=role,proto3,enum=meshtastic.Config_DeviceConfig_Role" json:"role,omitempty"`
// Disabling this will disable the SerialConsole by not initilizing the StreamAPI
// Moved to SecurityConfig
//
// Deprecated: Do not use.
SerialEnabled bool `protobuf:"varint,2,opt,name=serial_enabled,json=serialEnabled,proto3" json:"serial_enabled,omitempty"`
// For boards without a hard wired button, this is the pin number that will be used
// Boards that have more than one button can swap the function with this one. defaults to BUTTON_PIN if defined.
ButtonGpio uint32 `protobuf:"varint,4,opt,name=button_gpio,json=buttonGpio,proto3" json:"button_gpio,omitempty"`
// For boards without a PWM buzzer, this is the pin number that will be used
// Defaults to PIN_BUZZER if defined.
BuzzerGpio uint32 `protobuf:"varint,5,opt,name=buzzer_gpio,json=buzzerGpio,proto3" json:"buzzer_gpio,omitempty"`
// Sets the role of node
RebroadcastMode Config_DeviceConfig_RebroadcastMode `protobuf:"varint,6,opt,name=rebroadcast_mode,json=rebroadcastMode,proto3,enum=meshtastic.Config_DeviceConfig_RebroadcastMode" json:"rebroadcast_mode,omitempty"`
// Send our nodeinfo this often
// Defaults to 900 Seconds (15 minutes)
NodeInfoBroadcastSecs uint32 `protobuf:"varint,7,opt,name=node_info_broadcast_secs,json=nodeInfoBroadcastSecs,proto3" json:"node_info_broadcast_secs,omitempty"`
// Treat double tap interrupt on supported accelerometers as a button press if set to true
DoubleTapAsButtonPress bool `protobuf:"varint,8,opt,name=double_tap_as_button_press,json=doubleTapAsButtonPress,proto3" json:"double_tap_as_button_press,omitempty"`
// If true, device is considered to be "managed" by a mesh administrator
// Clients should then limit available configuration and administrative options inside the user interface
// Moved to SecurityConfig
//
// Deprecated: Do not use.
IsManaged bool `protobuf:"varint,9,opt,name=is_managed,json=isManaged,proto3" json:"is_managed,omitempty"`
// Disables the triple-press of user button to enable or disable GPS
DisableTripleClick bool `protobuf:"varint,10,opt,name=disable_triple_click,json=disableTripleClick,proto3" json:"disable_triple_click,omitempty"`
// POSIX Timezone definition string from https://github.com/nayarsystems/posix_tz_db/blob/master/zones.csv.
Tzdef string `protobuf:"bytes,11,opt,name=tzdef,proto3" json:"tzdef,omitempty"`
// If true, disable the default blinking LED (LED_PIN) behavior on the device
LedHeartbeatDisabled bool `protobuf:"varint,12,opt,name=led_heartbeat_disabled,json=ledHeartbeatDisabled,proto3" json:"led_heartbeat_disabled,omitempty"`
}
func (x *Config_DeviceConfig) Reset() {
*x = Config_DeviceConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_config_proto_msgTypes[1]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Config_DeviceConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Config_DeviceConfig) ProtoMessage() {}
func (x *Config_DeviceConfig) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_config_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 Config_DeviceConfig.ProtoReflect.Descriptor instead.
func (*Config_DeviceConfig) Descriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0, 0}
}
func (x *Config_DeviceConfig) GetRole() Config_DeviceConfig_Role {
if x != nil {
return x.Role
}
return Config_DeviceConfig_CLIENT
}
// Deprecated: Do not use.
func (x *Config_DeviceConfig) GetSerialEnabled() bool {
if x != nil {
return x.SerialEnabled
}
return false
}
func (x *Config_DeviceConfig) GetButtonGpio() uint32 {
if x != nil {
return x.ButtonGpio
}
return 0
}
func (x *Config_DeviceConfig) GetBuzzerGpio() uint32 {
if x != nil {
return x.BuzzerGpio
}
return 0
}
func (x *Config_DeviceConfig) GetRebroadcastMode() Config_DeviceConfig_RebroadcastMode {
if x != nil {
return x.RebroadcastMode
}
return Config_DeviceConfig_ALL
}
func (x *Config_DeviceConfig) GetNodeInfoBroadcastSecs() uint32 {
if x != nil {
return x.NodeInfoBroadcastSecs
}
return 0
}
func (x *Config_DeviceConfig) GetDoubleTapAsButtonPress() bool {
if x != nil {
return x.DoubleTapAsButtonPress
}
return false
}
// Deprecated: Do not use.
func (x *Config_DeviceConfig) GetIsManaged() bool {
if x != nil {
return x.IsManaged
}
return false
}
func (x *Config_DeviceConfig) GetDisableTripleClick() bool {
if x != nil {
return x.DisableTripleClick
}
return false
}
func (x *Config_DeviceConfig) GetTzdef() string {
if x != nil {
return x.Tzdef
}
return ""
}
func (x *Config_DeviceConfig) GetLedHeartbeatDisabled() bool {
if x != nil {
return x.LedHeartbeatDisabled
}
return false
}
// Position Config
type Config_PositionConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// We should send our position this often (but only if it has changed significantly)
// Defaults to 15 minutes
PositionBroadcastSecs uint32 `protobuf:"varint,1,opt,name=position_broadcast_secs,json=positionBroadcastSecs,proto3" json:"position_broadcast_secs,omitempty"`
// Adaptive position braoadcast, which is now the default.
PositionBroadcastSmartEnabled bool `protobuf:"varint,2,opt,name=position_broadcast_smart_enabled,json=positionBroadcastSmartEnabled,proto3" json:"position_broadcast_smart_enabled,omitempty"`
// If set, this node is at a fixed position.
// We will generate GPS position updates at the regular interval, but use whatever the last lat/lon/alt we have for the node.
// The lat/lon/alt can be set by an internal GPS or with the help of the app.
FixedPosition bool `protobuf:"varint,3,opt,name=fixed_position,json=fixedPosition,proto3" json:"fixed_position,omitempty"`
// Is GPS enabled for this node?
//
// Deprecated: Do not use.
GpsEnabled bool `protobuf:"varint,4,opt,name=gps_enabled,json=gpsEnabled,proto3" json:"gps_enabled,omitempty"`
// How often should we try to get GPS position (in seconds)
// or zero for the default of once every 30 seconds
// or a very large value (maxint) to update only once at boot.
GpsUpdateInterval uint32 `protobuf:"varint,5,opt,name=gps_update_interval,json=gpsUpdateInterval,proto3" json:"gps_update_interval,omitempty"`
// Deprecated in favor of using smart / regular broadcast intervals as implicit attempt time
//
// Deprecated: Do not use.
GpsAttemptTime uint32 `protobuf:"varint,6,opt,name=gps_attempt_time,json=gpsAttemptTime,proto3" json:"gps_attempt_time,omitempty"`
// Bit field of boolean configuration options for POSITION messages
// (bitwise OR of PositionFlags)
PositionFlags uint32 `protobuf:"varint,7,opt,name=position_flags,json=positionFlags,proto3" json:"position_flags,omitempty"`
// (Re)define GPS_RX_PIN for your board.
RxGpio uint32 `protobuf:"varint,8,opt,name=rx_gpio,json=rxGpio,proto3" json:"rx_gpio,omitempty"`
// (Re)define GPS_TX_PIN for your board.
TxGpio uint32 `protobuf:"varint,9,opt,name=tx_gpio,json=txGpio,proto3" json:"tx_gpio,omitempty"`
// The minimum distance in meters traveled (since the last send) before we can send a position to the mesh if position_broadcast_smart_enabled
BroadcastSmartMinimumDistance uint32 `protobuf:"varint,10,opt,name=broadcast_smart_minimum_distance,json=broadcastSmartMinimumDistance,proto3" json:"broadcast_smart_minimum_distance,omitempty"`
// The minimum number of seconds (since the last send) before we can send a position to the mesh if position_broadcast_smart_enabled
BroadcastSmartMinimumIntervalSecs uint32 `protobuf:"varint,11,opt,name=broadcast_smart_minimum_interval_secs,json=broadcastSmartMinimumIntervalSecs,proto3" json:"broadcast_smart_minimum_interval_secs,omitempty"`
// (Re)define PIN_GPS_EN for your board.
GpsEnGpio uint32 `protobuf:"varint,12,opt,name=gps_en_gpio,json=gpsEnGpio,proto3" json:"gps_en_gpio,omitempty"`
// Set where GPS is enabled, disabled, or not present
GpsMode Config_PositionConfig_GpsMode `protobuf:"varint,13,opt,name=gps_mode,json=gpsMode,proto3,enum=meshtastic.Config_PositionConfig_GpsMode" json:"gps_mode,omitempty"`
}
func (x *Config_PositionConfig) Reset() {
*x = Config_PositionConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_config_proto_msgTypes[2]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Config_PositionConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Config_PositionConfig) ProtoMessage() {}
func (x *Config_PositionConfig) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_config_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 Config_PositionConfig.ProtoReflect.Descriptor instead.
func (*Config_PositionConfig) Descriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0, 1}
}
func (x *Config_PositionConfig) GetPositionBroadcastSecs() uint32 {
if x != nil {
return x.PositionBroadcastSecs
}
return 0
}
func (x *Config_PositionConfig) GetPositionBroadcastSmartEnabled() bool {
if x != nil {
return x.PositionBroadcastSmartEnabled
}
return false
}
func (x *Config_PositionConfig) GetFixedPosition() bool {
if x != nil {
return x.FixedPosition
}
return false
}
// Deprecated: Do not use.
func (x *Config_PositionConfig) GetGpsEnabled() bool {
if x != nil {
return x.GpsEnabled
}
return false
}
func (x *Config_PositionConfig) GetGpsUpdateInterval() uint32 {
if x != nil {
return x.GpsUpdateInterval
}
return 0
}
// Deprecated: Do not use.
func (x *Config_PositionConfig) GetGpsAttemptTime() uint32 {
if x != nil {
return x.GpsAttemptTime
}
return 0
}
func (x *Config_PositionConfig) GetPositionFlags() uint32 {
if x != nil {
return x.PositionFlags
}
return 0
}
func (x *Config_PositionConfig) GetRxGpio() uint32 {
if x != nil {
return x.RxGpio
}
return 0
}
func (x *Config_PositionConfig) GetTxGpio() uint32 {
if x != nil {
return x.TxGpio
}
return 0
}
func (x *Config_PositionConfig) GetBroadcastSmartMinimumDistance() uint32 {
if x != nil {
return x.BroadcastSmartMinimumDistance
}
return 0
}
func (x *Config_PositionConfig) GetBroadcastSmartMinimumIntervalSecs() uint32 {
if x != nil {
return x.BroadcastSmartMinimumIntervalSecs
}
return 0
}
func (x *Config_PositionConfig) GetGpsEnGpio() uint32 {
if x != nil {
return x.GpsEnGpio
}
return 0
}
func (x *Config_PositionConfig) GetGpsMode() Config_PositionConfig_GpsMode {
if x != nil {
return x.GpsMode
}
return Config_PositionConfig_DISABLED
}
// Power Config\
// See [Power Config](/docs/settings/config/power) for additional power config details.
type Config_PowerConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Description: Will sleep everything as much as possible, for the tracker and sensor role this will also include the lora radio.
// Don't use this setting if you want to use your device with the phone apps or are using a device without a user button.
// Technical Details: Works for ESP32 devices and NRF52 devices in the Sensor or Tracker roles
IsPowerSaving bool `protobuf:"varint,1,opt,name=is_power_saving,json=isPowerSaving,proto3" json:"is_power_saving,omitempty"`
// Description: If non-zero, the device will fully power off this many seconds after external power is removed.
OnBatteryShutdownAfterSecs uint32 `protobuf:"varint,2,opt,name=on_battery_shutdown_after_secs,json=onBatteryShutdownAfterSecs,proto3" json:"on_battery_shutdown_after_secs,omitempty"`
// Ratio of voltage divider for battery pin eg. 3.20 (R1=100k, R2=220k)
// Overrides the ADC_MULTIPLIER defined in variant for battery voltage calculation.
// https://meshtastic.org/docs/configuration/radio/power/#adc-multiplier-override
// Should be set to floating point value between 2 and 6
AdcMultiplierOverride float32 `protobuf:"fixed32,3,opt,name=adc_multiplier_override,json=adcMultiplierOverride,proto3" json:"adc_multiplier_override,omitempty"`
// Description: The number of seconds for to wait before turning off BLE in No Bluetooth states
// Technical Details: ESP32 Only 0 for default of 1 minute
WaitBluetoothSecs uint32 `protobuf:"varint,4,opt,name=wait_bluetooth_secs,json=waitBluetoothSecs,proto3" json:"wait_bluetooth_secs,omitempty"`
// Super Deep Sleep Seconds
// While in Light Sleep if mesh_sds_timeout_secs is exceeded we will lower into super deep sleep
// for this value (default 1 year) or a button press
// 0 for default of one year
SdsSecs uint32 `protobuf:"varint,6,opt,name=sds_secs,json=sdsSecs,proto3" json:"sds_secs,omitempty"`
// Description: In light sleep the CPU is suspended, LoRa radio is on, BLE is off an GPS is on
// Technical Details: ESP32 Only 0 for default of 300
LsSecs uint32 `protobuf:"varint,7,opt,name=ls_secs,json=lsSecs,proto3" json:"ls_secs,omitempty"`
// Description: While in light sleep when we receive packets on the LoRa radio we will wake and handle them and stay awake in no BLE mode for this value
// Technical Details: ESP32 Only 0 for default of 10 seconds
MinWakeSecs uint32 `protobuf:"varint,8,opt,name=min_wake_secs,json=minWakeSecs,proto3" json:"min_wake_secs,omitempty"`
// I2C address of INA_2XX to use for reading device battery voltage
DeviceBatteryInaAddress uint32 `protobuf:"varint,9,opt,name=device_battery_ina_address,json=deviceBatteryInaAddress,proto3" json:"device_battery_ina_address,omitempty"`
// If non-zero, we want powermon log outputs. With the particular (bitfield) sources enabled.
// Note: we picked an ID of 32 so that lower more efficient IDs can be used for more frequently used options.
PowermonEnables uint64 `protobuf:"varint,32,opt,name=powermon_enables,json=powermonEnables,proto3" json:"powermon_enables,omitempty"`
}
func (x *Config_PowerConfig) Reset() {
*x = Config_PowerConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_config_proto_msgTypes[3]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Config_PowerConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Config_PowerConfig) ProtoMessage() {}
func (x *Config_PowerConfig) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_config_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 Config_PowerConfig.ProtoReflect.Descriptor instead.
func (*Config_PowerConfig) Descriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0, 2}
}
func (x *Config_PowerConfig) GetIsPowerSaving() bool {
if x != nil {
return x.IsPowerSaving
}
return false
}
func (x *Config_PowerConfig) GetOnBatteryShutdownAfterSecs() uint32 {
if x != nil {
return x.OnBatteryShutdownAfterSecs
}
return 0
}
func (x *Config_PowerConfig) GetAdcMultiplierOverride() float32 {
if x != nil {
return x.AdcMultiplierOverride
}
return 0
}
func (x *Config_PowerConfig) GetWaitBluetoothSecs() uint32 {
if x != nil {
return x.WaitBluetoothSecs
}
return 0
}
func (x *Config_PowerConfig) GetSdsSecs() uint32 {
if x != nil {
return x.SdsSecs
}
return 0
}
func (x *Config_PowerConfig) GetLsSecs() uint32 {
if x != nil {
return x.LsSecs
}
return 0
}
func (x *Config_PowerConfig) GetMinWakeSecs() uint32 {
if x != nil {
return x.MinWakeSecs
}
return 0
}
func (x *Config_PowerConfig) GetDeviceBatteryInaAddress() uint32 {
if x != nil {
return x.DeviceBatteryInaAddress
}
return 0
}
func (x *Config_PowerConfig) GetPowermonEnables() uint64 {
if x != nil {
return x.PowermonEnables
}
return 0
}
// Network Config
type Config_NetworkConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Enable WiFi (disables Bluetooth)
WifiEnabled bool `protobuf:"varint,1,opt,name=wifi_enabled,json=wifiEnabled,proto3" json:"wifi_enabled,omitempty"`
// If set, this node will try to join the specified wifi network and
// acquire an address via DHCP
WifiSsid string `protobuf:"bytes,3,opt,name=wifi_ssid,json=wifiSsid,proto3" json:"wifi_ssid,omitempty"`
// If set, will be use to authenticate to the named wifi
WifiPsk string `protobuf:"bytes,4,opt,name=wifi_psk,json=wifiPsk,proto3" json:"wifi_psk,omitempty"`
// NTP server to use if WiFi is conneced, defaults to `0.pool.ntp.org`
NtpServer string `protobuf:"bytes,5,opt,name=ntp_server,json=ntpServer,proto3" json:"ntp_server,omitempty"`
// Enable Ethernet
EthEnabled bool `protobuf:"varint,6,opt,name=eth_enabled,json=ethEnabled,proto3" json:"eth_enabled,omitempty"`
// acquire an address via DHCP or assign static
AddressMode Config_NetworkConfig_AddressMode `protobuf:"varint,7,opt,name=address_mode,json=addressMode,proto3,enum=meshtastic.Config_NetworkConfig_AddressMode" json:"address_mode,omitempty"`
// struct to keep static address
Ipv4Config *Config_NetworkConfig_IpV4Config `protobuf:"bytes,8,opt,name=ipv4_config,json=ipv4Config,proto3" json:"ipv4_config,omitempty"`
// rsyslog Server and Port
RsyslogServer string `protobuf:"bytes,9,opt,name=rsyslog_server,json=rsyslogServer,proto3" json:"rsyslog_server,omitempty"`
}
func (x *Config_NetworkConfig) Reset() {
*x = Config_NetworkConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_config_proto_msgTypes[4]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Config_NetworkConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Config_NetworkConfig) ProtoMessage() {}
func (x *Config_NetworkConfig) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_config_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 Config_NetworkConfig.ProtoReflect.Descriptor instead.
func (*Config_NetworkConfig) Descriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0, 3}
}
func (x *Config_NetworkConfig) GetWifiEnabled() bool {
if x != nil {
return x.WifiEnabled
}
return false
}
func (x *Config_NetworkConfig) GetWifiSsid() string {
if x != nil {
return x.WifiSsid
}
return ""
}
func (x *Config_NetworkConfig) GetWifiPsk() string {
if x != nil {
return x.WifiPsk
}
return ""
}
func (x *Config_NetworkConfig) GetNtpServer() string {
if x != nil {
return x.NtpServer
}
return ""
}
func (x *Config_NetworkConfig) GetEthEnabled() bool {
if x != nil {
return x.EthEnabled
}
return false
}
func (x *Config_NetworkConfig) GetAddressMode() Config_NetworkConfig_AddressMode {
if x != nil {
return x.AddressMode
}
return Config_NetworkConfig_DHCP
}
func (x *Config_NetworkConfig) GetIpv4Config() *Config_NetworkConfig_IpV4Config {
if x != nil {
return x.Ipv4Config
}
return nil
}
func (x *Config_NetworkConfig) GetRsyslogServer() string {
if x != nil {
return x.RsyslogServer
}
return ""
}
// Display Config
type Config_DisplayConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Number of seconds the screen stays on after pressing the user button or receiving a message
// 0 for default of one minute MAXUINT for always on
ScreenOnSecs uint32 `protobuf:"varint,1,opt,name=screen_on_secs,json=screenOnSecs,proto3" json:"screen_on_secs,omitempty"`
// How the GPS coordinates are formatted on the OLED screen.
GpsFormat Config_DisplayConfig_GpsCoordinateFormat `protobuf:"varint,2,opt,name=gps_format,json=gpsFormat,proto3,enum=meshtastic.Config_DisplayConfig_GpsCoordinateFormat" json:"gps_format,omitempty"`
// Automatically toggles to the next page on the screen like a carousel, based the specified interval in seconds.
// Potentially useful for devices without user buttons.
AutoScreenCarouselSecs uint32 `protobuf:"varint,3,opt,name=auto_screen_carousel_secs,json=autoScreenCarouselSecs,proto3" json:"auto_screen_carousel_secs,omitempty"`
// If this is set, the displayed compass will always point north. if unset, the old behaviour
// (top of display is heading direction) is used.
CompassNorthTop bool `protobuf:"varint,4,opt,name=compass_north_top,json=compassNorthTop,proto3" json:"compass_north_top,omitempty"`
// Flip screen vertically, for cases that mount the screen upside down
FlipScreen bool `protobuf:"varint,5,opt,name=flip_screen,json=flipScreen,proto3" json:"flip_screen,omitempty"`
// Perferred display units
Units Config_DisplayConfig_DisplayUnits `protobuf:"varint,6,opt,name=units,proto3,enum=meshtastic.Config_DisplayConfig_DisplayUnits" json:"units,omitempty"`
// Override auto-detect in screen
Oled Config_DisplayConfig_OledType `protobuf:"varint,7,opt,name=oled,proto3,enum=meshtastic.Config_DisplayConfig_OledType" json:"oled,omitempty"`
// Display Mode
Displaymode Config_DisplayConfig_DisplayMode `protobuf:"varint,8,opt,name=displaymode,proto3,enum=meshtastic.Config_DisplayConfig_DisplayMode" json:"displaymode,omitempty"`
// Print first line in pseudo-bold? FALSE is original style, TRUE is bold
HeadingBold bool `protobuf:"varint,9,opt,name=heading_bold,json=headingBold,proto3" json:"heading_bold,omitempty"`
// Should we wake the screen up on accelerometer detected motion or tap
WakeOnTapOrMotion bool `protobuf:"varint,10,opt,name=wake_on_tap_or_motion,json=wakeOnTapOrMotion,proto3" json:"wake_on_tap_or_motion,omitempty"`
// Indicates how to rotate or invert the compass output to accurate display on the display.
CompassOrientation Config_DisplayConfig_CompassOrientation `protobuf:"varint,11,opt,name=compass_orientation,json=compassOrientation,proto3,enum=meshtastic.Config_DisplayConfig_CompassOrientation" json:"compass_orientation,omitempty"`
}
func (x *Config_DisplayConfig) Reset() {
*x = Config_DisplayConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_config_proto_msgTypes[5]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Config_DisplayConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Config_DisplayConfig) ProtoMessage() {}
func (x *Config_DisplayConfig) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_config_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 Config_DisplayConfig.ProtoReflect.Descriptor instead.
func (*Config_DisplayConfig) Descriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0, 4}
}
func (x *Config_DisplayConfig) GetScreenOnSecs() uint32 {
if x != nil {
return x.ScreenOnSecs
}
return 0
}
func (x *Config_DisplayConfig) GetGpsFormat() Config_DisplayConfig_GpsCoordinateFormat {
if x != nil {
return x.GpsFormat
}
return Config_DisplayConfig_DEC
}
func (x *Config_DisplayConfig) GetAutoScreenCarouselSecs() uint32 {
if x != nil {
return x.AutoScreenCarouselSecs
}
return 0
}
func (x *Config_DisplayConfig) GetCompassNorthTop() bool {
if x != nil {
return x.CompassNorthTop
}
return false
}
func (x *Config_DisplayConfig) GetFlipScreen() bool {
if x != nil {
return x.FlipScreen
}
return false
}
func (x *Config_DisplayConfig) GetUnits() Config_DisplayConfig_DisplayUnits {
if x != nil {
return x.Units
}
return Config_DisplayConfig_METRIC
}
func (x *Config_DisplayConfig) GetOled() Config_DisplayConfig_OledType {
if x != nil {
return x.Oled
}
return Config_DisplayConfig_OLED_AUTO
}
func (x *Config_DisplayConfig) GetDisplaymode() Config_DisplayConfig_DisplayMode {
if x != nil {
return x.Displaymode
}
return Config_DisplayConfig_DEFAULT
}
func (x *Config_DisplayConfig) GetHeadingBold() bool {
if x != nil {
return x.HeadingBold
}
return false
}
func (x *Config_DisplayConfig) GetWakeOnTapOrMotion() bool {
if x != nil {
return x.WakeOnTapOrMotion
}
return false
}
func (x *Config_DisplayConfig) GetCompassOrientation() Config_DisplayConfig_CompassOrientation {
if x != nil {
return x.CompassOrientation
}
return Config_DisplayConfig_DEGREES_0
}
// Lora Config
type Config_LoRaConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// When enabled, the `modem_preset` fields will be adhered to, else the `bandwidth`/`spread_factor`/`coding_rate`
// will be taked from their respective manually defined fields
UsePreset bool `protobuf:"varint,1,opt,name=use_preset,json=usePreset,proto3" json:"use_preset,omitempty"`
// Either modem_config or bandwidth/spreading/coding will be specified - NOT BOTH.
// As a heuristic: If bandwidth is specified, do not use modem_config.
// Because protobufs take ZERO space when the value is zero this works out nicely.
// This value is replaced by bandwidth/spread_factor/coding_rate.
// If you'd like to experiment with other options add them to MeshRadio.cpp in the device code.
ModemPreset Config_LoRaConfig_ModemPreset `protobuf:"varint,2,opt,name=modem_preset,json=modemPreset,proto3,enum=meshtastic.Config_LoRaConfig_ModemPreset" json:"modem_preset,omitempty"`
// Bandwidth in MHz
// Certain bandwidth numbers are 'special' and will be converted to the
// appropriate floating point value: 31 -> 31.25MHz
Bandwidth uint32 `protobuf:"varint,3,opt,name=bandwidth,proto3" json:"bandwidth,omitempty"`
// A number from 7 to 12.
// Indicates number of chirps per symbol as 1<<spread_factor.
SpreadFactor uint32 `protobuf:"varint,4,opt,name=spread_factor,json=spreadFactor,proto3" json:"spread_factor,omitempty"`
// The denominator of the coding rate.
// ie for 4/5, the value is 5. 4/8 the value is 8.
CodingRate uint32 `protobuf:"varint,5,opt,name=coding_rate,json=codingRate,proto3" json:"coding_rate,omitempty"`
// This parameter is for advanced users with advanced test equipment, we do not recommend most users use it.
// A frequency offset that is added to to the calculated band center frequency.
// Used to correct for crystal calibration errors.
FrequencyOffset float32 `protobuf:"fixed32,6,opt,name=frequency_offset,json=frequencyOffset,proto3" json:"frequency_offset,omitempty"`
// The region code for the radio (US, CN, EU433, etc...)
Region Config_LoRaConfig_RegionCode `protobuf:"varint,7,opt,name=region,proto3,enum=meshtastic.Config_LoRaConfig_RegionCode" json:"region,omitempty"`
// Maximum number of hops. This can't be greater than 7.
// Default of 3
// Attempting to set a value > 7 results in the default
HopLimit uint32 `protobuf:"varint,8,opt,name=hop_limit,json=hopLimit,proto3" json:"hop_limit,omitempty"`
// Disable TX from the LoRa radio. Useful for hot-swapping antennas and other tests.
// Defaults to false
TxEnabled bool `protobuf:"varint,9,opt,name=tx_enabled,json=txEnabled,proto3" json:"tx_enabled,omitempty"`
// If zero, then use default max legal continuous power (ie. something that won't
// burn out the radio hardware)
// In most cases you should use zero here.
// Units are in dBm.
TxPower int32 `protobuf:"varint,10,opt,name=tx_power,json=txPower,proto3" json:"tx_power,omitempty"`
// This controls the actual hardware frequency the radio transmits on.
// Most users should never need to be exposed to this field/concept.
// A channel number between 1 and NUM_CHANNELS (whatever the max is in the current region).
// If ZERO then the rule is "use the old channel name hash based
// algorithm to derive the channel number")
// If using the hash algorithm the channel number will be: hash(channel_name) %
// NUM_CHANNELS (Where num channels depends on the regulatory region).
ChannelNum uint32 `protobuf:"varint,11,opt,name=channel_num,json=channelNum,proto3" json:"channel_num,omitempty"`
// If true, duty cycle limits will be exceeded and thus you're possibly not following
// the local regulations if you're not a HAM.
// Has no effect if the duty cycle of the used region is 100%.
OverrideDutyCycle bool `protobuf:"varint,12,opt,name=override_duty_cycle,json=overrideDutyCycle,proto3" json:"override_duty_cycle,omitempty"`
// If true, sets RX boosted gain mode on SX126X based radios
Sx126XRxBoostedGain bool `protobuf:"varint,13,opt,name=sx126x_rx_boosted_gain,json=sx126xRxBoostedGain,proto3" json:"sx126x_rx_boosted_gain,omitempty"`
// This parameter is for advanced users and licensed HAM radio operators.
// Ignore Channel Calculation and use this frequency instead. The frequency_offset
// will still be applied. This will allow you to use out-of-band frequencies.
// Please respect your local laws and regulations. If you are a HAM, make sure you
// enable HAM mode and turn off encryption.
OverrideFrequency float32 `protobuf:"fixed32,14,opt,name=override_frequency,json=overrideFrequency,proto3" json:"override_frequency,omitempty"`
// If true, disable the build-in PA FAN using pin define in RF95_FAN_EN.
PaFanDisabled bool `protobuf:"varint,15,opt,name=pa_fan_disabled,json=paFanDisabled,proto3" json:"pa_fan_disabled,omitempty"`
// For testing it is useful sometimes to force a node to never listen to
// particular other nodes (simulating radio out of range). All nodenums listed
// in ignore_incoming will have packets they send dropped on receive (by router.cpp)
IgnoreIncoming []uint32 `protobuf:"varint,103,rep,packed,name=ignore_incoming,json=ignoreIncoming,proto3" json:"ignore_incoming,omitempty"`
// If true, the device will not process any packets received via LoRa that passed via MQTT anywhere on the path towards it.
IgnoreMqtt bool `protobuf:"varint,104,opt,name=ignore_mqtt,json=ignoreMqtt,proto3" json:"ignore_mqtt,omitempty"`
// Sets the ok_to_mqtt bit on outgoing packets
ConfigOkToMqtt bool `protobuf:"varint,105,opt,name=config_ok_to_mqtt,json=configOkToMqtt,proto3" json:"config_ok_to_mqtt,omitempty"`
}
func (x *Config_LoRaConfig) Reset() {
*x = Config_LoRaConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_config_proto_msgTypes[6]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Config_LoRaConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Config_LoRaConfig) ProtoMessage() {}
func (x *Config_LoRaConfig) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_config_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 Config_LoRaConfig.ProtoReflect.Descriptor instead.
func (*Config_LoRaConfig) Descriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0, 5}
}
func (x *Config_LoRaConfig) GetUsePreset() bool {
if x != nil {
return x.UsePreset
}
return false
}
func (x *Config_LoRaConfig) GetModemPreset() Config_LoRaConfig_ModemPreset {
if x != nil {
return x.ModemPreset
}
return Config_LoRaConfig_LONG_FAST
}
func (x *Config_LoRaConfig) GetBandwidth() uint32 {
if x != nil {
return x.Bandwidth
}
return 0
}
func (x *Config_LoRaConfig) GetSpreadFactor() uint32 {
if x != nil {
return x.SpreadFactor
}
return 0
}
func (x *Config_LoRaConfig) GetCodingRate() uint32 {
if x != nil {
return x.CodingRate
}
return 0
}
func (x *Config_LoRaConfig) GetFrequencyOffset() float32 {
if x != nil {
return x.FrequencyOffset
}
return 0
}
func (x *Config_LoRaConfig) GetRegion() Config_LoRaConfig_RegionCode {
if x != nil {
return x.Region
}
return Config_LoRaConfig_UNSET
}
func (x *Config_LoRaConfig) GetHopLimit() uint32 {
if x != nil {
return x.HopLimit
}
return 0
}
func (x *Config_LoRaConfig) GetTxEnabled() bool {
if x != nil {
return x.TxEnabled
}
return false
}
func (x *Config_LoRaConfig) GetTxPower() int32 {
if x != nil {
return x.TxPower
}
return 0
}
func (x *Config_LoRaConfig) GetChannelNum() uint32 {
if x != nil {
return x.ChannelNum
}
return 0
}
func (x *Config_LoRaConfig) GetOverrideDutyCycle() bool {
if x != nil {
return x.OverrideDutyCycle
}
return false
}
func (x *Config_LoRaConfig) GetSx126XRxBoostedGain() bool {
if x != nil {
return x.Sx126XRxBoostedGain
}
return false
}
func (x *Config_LoRaConfig) GetOverrideFrequency() float32 {
if x != nil {
return x.OverrideFrequency
}
return 0
}
func (x *Config_LoRaConfig) GetPaFanDisabled() bool {
if x != nil {
return x.PaFanDisabled
}
return false
}
func (x *Config_LoRaConfig) GetIgnoreIncoming() []uint32 {
if x != nil {
return x.IgnoreIncoming
}
return nil
}
func (x *Config_LoRaConfig) GetIgnoreMqtt() bool {
if x != nil {
return x.IgnoreMqtt
}
return false
}
func (x *Config_LoRaConfig) GetConfigOkToMqtt() bool {
if x != nil {
return x.ConfigOkToMqtt
}
return false
}
type Config_BluetoothConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Enable Bluetooth on the device
Enabled bool `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
// Determines the pairing strategy for the device
Mode Config_BluetoothConfig_PairingMode `protobuf:"varint,2,opt,name=mode,proto3,enum=meshtastic.Config_BluetoothConfig_PairingMode" json:"mode,omitempty"`
// Specified PIN for PairingMode.FixedPin
FixedPin uint32 `protobuf:"varint,3,opt,name=fixed_pin,json=fixedPin,proto3" json:"fixed_pin,omitempty"`
}
func (x *Config_BluetoothConfig) Reset() {
*x = Config_BluetoothConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_config_proto_msgTypes[7]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Config_BluetoothConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Config_BluetoothConfig) ProtoMessage() {}
func (x *Config_BluetoothConfig) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_config_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 Config_BluetoothConfig.ProtoReflect.Descriptor instead.
func (*Config_BluetoothConfig) Descriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0, 6}
}
func (x *Config_BluetoothConfig) GetEnabled() bool {
if x != nil {
return x.Enabled
}
return false
}
func (x *Config_BluetoothConfig) GetMode() Config_BluetoothConfig_PairingMode {
if x != nil {
return x.Mode
}
return Config_BluetoothConfig_RANDOM_PIN
}
func (x *Config_BluetoothConfig) GetFixedPin() uint32 {
if x != nil {
return x.FixedPin
}
return 0
}
type Config_SecurityConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// The public key of the user's device.
// Sent out to other nodes on the mesh to allow them to compute a shared secret key.
PublicKey []byte `protobuf:"bytes,1,opt,name=public_key,json=publicKey,proto3" json:"public_key,omitempty"`
// The private key of the device.
// Used to create a shared key with a remote device.
PrivateKey []byte `protobuf:"bytes,2,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"`
// The public key authorized to send admin messages to this node.
AdminKey [][]byte `protobuf:"bytes,3,rep,name=admin_key,json=adminKey,proto3" json:"admin_key,omitempty"`
// If true, device is considered to be "managed" by a mesh administrator via admin messages
// Device is managed by a mesh administrator.
IsManaged bool `protobuf:"varint,4,opt,name=is_managed,json=isManaged,proto3" json:"is_managed,omitempty"`
// Serial Console over the Stream API."
SerialEnabled bool `protobuf:"varint,5,opt,name=serial_enabled,json=serialEnabled,proto3" json:"serial_enabled,omitempty"`
// By default we turn off logging as soon as an API client connects (to keep shared serial link quiet).
// Output live debug logging over serial or bluetooth is set to true.
DebugLogApiEnabled bool `protobuf:"varint,6,opt,name=debug_log_api_enabled,json=debugLogApiEnabled,proto3" json:"debug_log_api_enabled,omitempty"`
// Allow incoming device control over the insecure legacy admin channel.
AdminChannelEnabled bool `protobuf:"varint,8,opt,name=admin_channel_enabled,json=adminChannelEnabled,proto3" json:"admin_channel_enabled,omitempty"`
}
func (x *Config_SecurityConfig) Reset() {
*x = Config_SecurityConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_config_proto_msgTypes[8]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Config_SecurityConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Config_SecurityConfig) ProtoMessage() {}
func (x *Config_SecurityConfig) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_config_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 Config_SecurityConfig.ProtoReflect.Descriptor instead.
func (*Config_SecurityConfig) Descriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0, 7}
}
func (x *Config_SecurityConfig) GetPublicKey() []byte {
if x != nil {
return x.PublicKey
}
return nil
}
func (x *Config_SecurityConfig) GetPrivateKey() []byte {
if x != nil {
return x.PrivateKey
}
return nil
}
func (x *Config_SecurityConfig) GetAdminKey() [][]byte {
if x != nil {
return x.AdminKey
}
return nil
}
func (x *Config_SecurityConfig) GetIsManaged() bool {
if x != nil {
return x.IsManaged
}
return false
}
func (x *Config_SecurityConfig) GetSerialEnabled() bool {
if x != nil {
return x.SerialEnabled
}
return false
}
func (x *Config_SecurityConfig) GetDebugLogApiEnabled() bool {
if x != nil {
return x.DebugLogApiEnabled
}
return false
}
func (x *Config_SecurityConfig) GetAdminChannelEnabled() bool {
if x != nil {
return x.AdminChannelEnabled
}
return false
}
// Blank config request, strictly for getting the session key
type Config_SessionkeyConfig struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
}
func (x *Config_SessionkeyConfig) Reset() {
*x = Config_SessionkeyConfig{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_config_proto_msgTypes[9]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Config_SessionkeyConfig) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Config_SessionkeyConfig) ProtoMessage() {}
func (x *Config_SessionkeyConfig) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_config_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 Config_SessionkeyConfig.ProtoReflect.Descriptor instead.
func (*Config_SessionkeyConfig) Descriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0, 8}
}
type Config_NetworkConfig_IpV4Config struct {
state protoimpl.MessageState
sizeCache protoimpl.SizeCache
unknownFields protoimpl.UnknownFields
// Static IP address
Ip uint32 `protobuf:"fixed32,1,opt,name=ip,proto3" json:"ip,omitempty"`
// Static gateway address
Gateway uint32 `protobuf:"fixed32,2,opt,name=gateway,proto3" json:"gateway,omitempty"`
// Static subnet mask
Subnet uint32 `protobuf:"fixed32,3,opt,name=subnet,proto3" json:"subnet,omitempty"`
// Static DNS server address
Dns uint32 `protobuf:"fixed32,4,opt,name=dns,proto3" json:"dns,omitempty"`
}
func (x *Config_NetworkConfig_IpV4Config) Reset() {
*x = Config_NetworkConfig_IpV4Config{}
if protoimpl.UnsafeEnabled {
mi := &file_protobufs_config_proto_msgTypes[10]
ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
ms.StoreMessageInfo(mi)
}
}
func (x *Config_NetworkConfig_IpV4Config) String() string {
return protoimpl.X.MessageStringOf(x)
}
func (*Config_NetworkConfig_IpV4Config) ProtoMessage() {}
func (x *Config_NetworkConfig_IpV4Config) ProtoReflect() protoreflect.Message {
mi := &file_protobufs_config_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 Config_NetworkConfig_IpV4Config.ProtoReflect.Descriptor instead.
func (*Config_NetworkConfig_IpV4Config) Descriptor() ([]byte, []int) {
return file_protobufs_config_proto_rawDescGZIP(), []int{0, 3, 0}
}
func (x *Config_NetworkConfig_IpV4Config) GetIp() uint32 {
if x != nil {
return x.Ip
}
return 0
}
func (x *Config_NetworkConfig_IpV4Config) GetGateway() uint32 {
if x != nil {
return x.Gateway
}
return 0
}
func (x *Config_NetworkConfig_IpV4Config) GetSubnet() uint32 {
if x != nil {
return x.Subnet
}
return 0
}
func (x *Config_NetworkConfig_IpV4Config) GetDns() uint32 {
if x != nil {
return x.Dns
}
return 0
}
var File_protobufs_config_proto protoreflect.FileDescriptor
var file_protobufs_config_proto_rawDesc = []byte{
0x0a, 0x16, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x73, 0x2f, 0x63, 0x6f, 0x6e, 0x66,
0x69, 0x67, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61,
0x73, 0x74, 0x69, 0x63, 0x1a, 0x19, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x73, 0x2f,
0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x69, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22,
0xee, 0x2f, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x39, 0x0a, 0x06, 0x64, 0x65,
0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6d, 0x65, 0x73,
0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44,
0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x06, 0x64,
0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x3f, 0x0a, 0x08, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61,
0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x6f, 0x73, 0x69,
0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x08, 0x70, 0x6f,
0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x36, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18,
0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x43,
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x3c,
0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
0x20, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x2e, 0x4e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x48, 0x00, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x3c, 0x0a, 0x07,
0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e,
0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48,
0x00, 0x52, 0x07, 0x64, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x12, 0x33, 0x0a, 0x04, 0x6c, 0x6f,
0x72, 0x61, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74,
0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x6f, 0x52,
0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x04, 0x6c, 0x6f, 0x72, 0x61, 0x12,
0x42, 0x0a, 0x09, 0x62, 0x6c, 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01,
0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e,
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74, 0x68,
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x09, 0x62, 0x6c, 0x75, 0x65, 0x74, 0x6f,
0x6f, 0x74, 0x68, 0x12, 0x3f, 0x0a, 0x08, 0x73, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x18,
0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69,
0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x08, 0x73, 0x65, 0x63, 0x75,
0x72, 0x69, 0x74, 0x79, 0x12, 0x45, 0x0a, 0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x6b,
0x65, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74,
0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x53, 0x65, 0x73,
0x73, 0x69, 0x6f, 0x6e, 0x6b, 0x65, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52,
0x0a, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x6b, 0x65, 0x79, 0x12, 0x39, 0x0a, 0x09, 0x64,
0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x75, 0x69, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x44, 0x65, 0x76, 0x69,
0x63, 0x65, 0x55, 0x49, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x48, 0x00, 0x52, 0x08, 0x64, 0x65,
0x76, 0x69, 0x63, 0x65, 0x55, 0x69, 0x1a, 0xcd, 0x06, 0x0a, 0x0c, 0x44, 0x65, 0x76, 0x69, 0x63,
0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18,
0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65,
0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x04, 0x72, 0x6f, 0x6c,
0x65, 0x12, 0x29, 0x0a, 0x0e, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x61, 0x62,
0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0d, 0x73,
0x65, 0x72, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b,
0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x67, 0x70, 0x69, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x0a, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x47, 0x70, 0x69, 0x6f, 0x12, 0x1f, 0x0a,
0x0b, 0x62, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x5f, 0x67, 0x70, 0x69, 0x6f, 0x18, 0x05, 0x20, 0x01,
0x28, 0x0d, 0x52, 0x0a, 0x62, 0x75, 0x7a, 0x7a, 0x65, 0x72, 0x47, 0x70, 0x69, 0x6f, 0x12, 0x5a,
0x0a, 0x10, 0x72, 0x65, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x6d, 0x6f,
0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74,
0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x65, 0x76,
0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x62, 0x72, 0x6f, 0x61,
0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0f, 0x72, 0x65, 0x62, 0x72, 0x6f,
0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x6e, 0x6f,
0x64, 0x65, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73,
0x74, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x6e, 0x6f,
0x64, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53,
0x65, 0x63, 0x73, 0x12, 0x3a, 0x0a, 0x1a, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x61,
0x70, 0x5f, 0x61, 0x73, 0x5f, 0x62, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x5f, 0x70, 0x72, 0x65, 0x73,
0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x16, 0x64, 0x6f, 0x75, 0x62, 0x6c, 0x65, 0x54,
0x61, 0x70, 0x41, 0x73, 0x42, 0x75, 0x74, 0x74, 0x6f, 0x6e, 0x50, 0x72, 0x65, 0x73, 0x73, 0x12,
0x21, 0x0a, 0x0a, 0x69, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x18, 0x09, 0x20,
0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x09, 0x69, 0x73, 0x4d, 0x61, 0x6e, 0x61, 0x67,
0x65, 0x64, 0x12, 0x30, 0x0a, 0x14, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x72,
0x69, 0x70, 0x6c, 0x65, 0x5f, 0x63, 0x6c, 0x69, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08,
0x52, 0x12, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x72, 0x69, 0x70, 0x6c, 0x65, 0x43,
0x6c, 0x69, 0x63, 0x6b, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x7a, 0x64, 0x65, 0x66, 0x18, 0x0b, 0x20,
0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x7a, 0x64, 0x65, 0x66, 0x12, 0x34, 0x0a, 0x16, 0x6c, 0x65,
0x64, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, 0x64, 0x69, 0x73, 0x61,
0x62, 0x6c, 0x65, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x14, 0x6c, 0x65, 0x64, 0x48,
0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64,
0x22, 0xae, 0x01, 0x0a, 0x04, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x4c, 0x49,
0x45, 0x4e, 0x54, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x0b, 0x43, 0x4c, 0x49, 0x45, 0x4e, 0x54, 0x5f,
0x4d, 0x55, 0x54, 0x45, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52,
0x10, 0x02, 0x12, 0x15, 0x0a, 0x0d, 0x52, 0x4f, 0x55, 0x54, 0x45, 0x52, 0x5f, 0x43, 0x4c, 0x49,
0x45, 0x4e, 0x54, 0x10, 0x03, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x50,
0x45, 0x41, 0x54, 0x45, 0x52, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x54, 0x52, 0x41, 0x43, 0x4b,
0x45, 0x52, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x45, 0x4e, 0x53, 0x4f, 0x52, 0x10, 0x06,
0x12, 0x07, 0x0a, 0x03, 0x54, 0x41, 0x4b, 0x10, 0x07, 0x12, 0x11, 0x0a, 0x0d, 0x43, 0x4c, 0x49,
0x45, 0x4e, 0x54, 0x5f, 0x48, 0x49, 0x44, 0x44, 0x45, 0x4e, 0x10, 0x08, 0x12, 0x12, 0x0a, 0x0e,
0x4c, 0x4f, 0x53, 0x54, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0x09,
0x12, 0x0f, 0x0a, 0x0b, 0x54, 0x41, 0x4b, 0x5f, 0x54, 0x52, 0x41, 0x43, 0x4b, 0x45, 0x52, 0x10,
0x0a, 0x22, 0x73, 0x0a, 0x0f, 0x52, 0x65, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74,
0x4d, 0x6f, 0x64, 0x65, 0x12, 0x07, 0x0a, 0x03, 0x41, 0x4c, 0x4c, 0x10, 0x00, 0x12, 0x15, 0x0a,
0x11, 0x41, 0x4c, 0x4c, 0x5f, 0x53, 0x4b, 0x49, 0x50, 0x5f, 0x44, 0x45, 0x43, 0x4f, 0x44, 0x49,
0x4e, 0x47, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4c, 0x4f, 0x43, 0x41, 0x4c, 0x5f, 0x4f, 0x4e,
0x4c, 0x59, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x5f, 0x4f, 0x4e,
0x4c, 0x59, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04, 0x4e, 0x4f, 0x4e, 0x45, 0x10, 0x04, 0x12, 0x16,
0x0a, 0x12, 0x43, 0x4f, 0x52, 0x45, 0x5f, 0x50, 0x4f, 0x52, 0x54, 0x4e, 0x55, 0x4d, 0x53, 0x5f,
0x4f, 0x4e, 0x4c, 0x59, 0x10, 0x05, 0x1a, 0xfa, 0x06, 0x0a, 0x0e, 0x50, 0x6f, 0x73, 0x69, 0x74,
0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x36, 0x0a, 0x17, 0x70, 0x6f, 0x73,
0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f,
0x73, 0x65, 0x63, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x15, 0x70, 0x6f, 0x73, 0x69,
0x74, 0x69, 0x6f, 0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x65, 0x63,
0x73, 0x12, 0x47, 0x0a, 0x20, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x62, 0x72,
0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x5f, 0x65, 0x6e,
0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1d, 0x70, 0x6f, 0x73,
0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x53, 0x6d,
0x61, 0x72, 0x74, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x66, 0x69,
0x78, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01,
0x28, 0x08, 0x52, 0x0d, 0x66, 0x69, 0x78, 0x65, 0x64, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f,
0x6e, 0x12, 0x23, 0x0a, 0x0b, 0x67, 0x70, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64,
0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x42, 0x02, 0x18, 0x01, 0x52, 0x0a, 0x67, 0x70, 0x73, 0x45,
0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x2e, 0x0a, 0x13, 0x67, 0x70, 0x73, 0x5f, 0x75, 0x70,
0x64, 0x61, 0x74, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x18, 0x05, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x11, 0x67, 0x70, 0x73, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e,
0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x12, 0x2c, 0x0a, 0x10, 0x67, 0x70, 0x73, 0x5f, 0x61, 0x74,
0x74, 0x65, 0x6d, 0x70, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d,
0x42, 0x02, 0x18, 0x01, 0x52, 0x0e, 0x67, 0x70, 0x73, 0x41, 0x74, 0x74, 0x65, 0x6d, 0x70, 0x74,
0x54, 0x69, 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
0x5f, 0x66, 0x6c, 0x61, 0x67, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x70, 0x6f,
0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x72,
0x78, 0x5f, 0x67, 0x70, 0x69, 0x6f, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x78,
0x47, 0x70, 0x69, 0x6f, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x78, 0x5f, 0x67, 0x70, 0x69, 0x6f, 0x18,
0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x74, 0x78, 0x47, 0x70, 0x69, 0x6f, 0x12, 0x47, 0x0a,
0x20, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x6d, 0x61, 0x72, 0x74,
0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x5f, 0x64, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x63,
0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x1d, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61,
0x73, 0x74, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x44, 0x69,
0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x50, 0x0a, 0x25, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63,
0x61, 0x73, 0x74, 0x5f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x69, 0x6e, 0x69, 0x6d, 0x75,
0x6d, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18,
0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x21, 0x62, 0x72, 0x6f, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74,
0x53, 0x6d, 0x61, 0x72, 0x74, 0x4d, 0x69, 0x6e, 0x69, 0x6d, 0x75, 0x6d, 0x49, 0x6e, 0x74, 0x65,
0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x73, 0x12, 0x1e, 0x0a, 0x0b, 0x67, 0x70, 0x73, 0x5f,
0x65, 0x6e, 0x5f, 0x67, 0x70, 0x69, 0x6f, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x67,
0x70, 0x73, 0x45, 0x6e, 0x47, 0x70, 0x69, 0x6f, 0x12, 0x44, 0x0a, 0x08, 0x67, 0x70, 0x73, 0x5f,
0x6d, 0x6f, 0x64, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6d, 0x65, 0x73,
0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x50,
0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x47, 0x70,
0x73, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x07, 0x67, 0x70, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x22, 0xab,
0x01, 0x0a, 0x0d, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x6c, 0x61, 0x67, 0x73,
0x12, 0x09, 0x0a, 0x05, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x41,
0x4c, 0x54, 0x49, 0x54, 0x55, 0x44, 0x45, 0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x41, 0x4c, 0x54,
0x49, 0x54, 0x55, 0x44, 0x45, 0x5f, 0x4d, 0x53, 0x4c, 0x10, 0x02, 0x12, 0x16, 0x0a, 0x12, 0x47,
0x45, 0x4f, 0x49, 0x44, 0x41, 0x4c, 0x5f, 0x53, 0x45, 0x50, 0x41, 0x52, 0x41, 0x54, 0x49, 0x4f,
0x4e, 0x10, 0x04, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x4f, 0x50, 0x10, 0x08, 0x12, 0x09, 0x0a, 0x05,
0x48, 0x56, 0x44, 0x4f, 0x50, 0x10, 0x10, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x41, 0x54, 0x49, 0x4e,
0x56, 0x49, 0x45, 0x57, 0x10, 0x20, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x45, 0x51, 0x5f, 0x4e, 0x4f,
0x10, 0x40, 0x12, 0x0e, 0x0a, 0x09, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41, 0x4d, 0x50, 0x10,
0x80, 0x01, 0x12, 0x0c, 0x0a, 0x07, 0x48, 0x45, 0x41, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x80, 0x02,
0x12, 0x0a, 0x0a, 0x05, 0x53, 0x50, 0x45, 0x45, 0x44, 0x10, 0x80, 0x04, 0x22, 0x35, 0x0a, 0x07,
0x47, 0x70, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x49, 0x53, 0x41, 0x42,
0x4c, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x45, 0x4e, 0x41, 0x42, 0x4c, 0x45, 0x44,
0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x4e, 0x4f, 0x54, 0x5f, 0x50, 0x52, 0x45, 0x53, 0x45, 0x4e,
0x54, 0x10, 0x02, 0x1a, 0xa1, 0x03, 0x0a, 0x0b, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x43, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x73, 0x5f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x5f,
0x73, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73,
0x50, 0x6f, 0x77, 0x65, 0x72, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x12, 0x42, 0x0a, 0x1e, 0x6f,
0x6e, 0x5f, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x5f, 0x73, 0x68, 0x75, 0x74, 0x64, 0x6f,
0x77, 0x6e, 0x5f, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x1a, 0x6f, 0x6e, 0x42, 0x61, 0x74, 0x74, 0x65, 0x72, 0x79, 0x53, 0x68,
0x75, 0x74, 0x64, 0x6f, 0x77, 0x6e, 0x41, 0x66, 0x74, 0x65, 0x72, 0x53, 0x65, 0x63, 0x73, 0x12,
0x36, 0x0a, 0x17, 0x61, 0x64, 0x63, 0x5f, 0x6d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65,
0x72, 0x5f, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02,
0x52, 0x15, 0x61, 0x64, 0x63, 0x4d, 0x75, 0x6c, 0x74, 0x69, 0x70, 0x6c, 0x69, 0x65, 0x72, 0x4f,
0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x12, 0x2e, 0x0a, 0x13, 0x77, 0x61, 0x69, 0x74, 0x5f,
0x62, 0x6c, 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74, 0x68, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x04,
0x20, 0x01, 0x28, 0x0d, 0x52, 0x11, 0x77, 0x61, 0x69, 0x74, 0x42, 0x6c, 0x75, 0x65, 0x74, 0x6f,
0x6f, 0x74, 0x68, 0x53, 0x65, 0x63, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x64, 0x73, 0x5f, 0x73,
0x65, 0x63, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x64, 0x73, 0x53, 0x65,
0x63, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x6c, 0x73, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x07, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x06, 0x6c, 0x73, 0x53, 0x65, 0x63, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x6d,
0x69, 0x6e, 0x5f, 0x77, 0x61, 0x6b, 0x65, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x08, 0x20, 0x01,
0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x69, 0x6e, 0x57, 0x61, 0x6b, 0x65, 0x53, 0x65, 0x63, 0x73, 0x12,
0x3b, 0x0a, 0x1a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x62, 0x61, 0x74, 0x74, 0x65, 0x72,
0x79, 0x5f, 0x69, 0x6e, 0x61, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x09, 0x20,
0x01, 0x28, 0x0d, 0x52, 0x17, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x42, 0x61, 0x74, 0x74, 0x65,
0x72, 0x79, 0x49, 0x6e, 0x61, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x29, 0x0a, 0x10,
0x70, 0x6f, 0x77, 0x65, 0x72, 0x6d, 0x6f, 0x6e, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x73,
0x18, 0x20, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x6d, 0x6f, 0x6e,
0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x73, 0x1a, 0xf7, 0x03, 0x0a, 0x0d, 0x4e, 0x65, 0x74, 0x77,
0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x69, 0x66,
0x69, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52,
0x0b, 0x77, 0x69, 0x66, 0x69, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x1b, 0x0a, 0x09,
0x77, 0x69, 0x66, 0x69, 0x5f, 0x73, 0x73, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
0x08, 0x77, 0x69, 0x66, 0x69, 0x53, 0x73, 0x69, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x69, 0x66,
0x69, 0x5f, 0x70, 0x73, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x69, 0x66,
0x69, 0x50, 0x73, 0x6b, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x74, 0x70, 0x5f, 0x73, 0x65, 0x72, 0x76,
0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x74, 0x70, 0x53, 0x65, 0x72,
0x76, 0x65, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x74, 0x68, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c,
0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x65, 0x74, 0x68, 0x45, 0x6e, 0x61,
0x62, 0x6c, 0x65, 0x64, 0x12, 0x4f, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x5f,
0x6d, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6d, 0x65, 0x73,
0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e,
0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x41, 0x64, 0x64,
0x72, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0b, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73,
0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x4c, 0x0a, 0x0b, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x63, 0x6f,
0x6e, 0x66, 0x69, 0x67, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x6d, 0x65, 0x73,
0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4e,
0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x49, 0x70, 0x56,
0x34, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x0a, 0x69, 0x70, 0x76, 0x34, 0x43, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x73, 0x79, 0x73, 0x6c, 0x6f, 0x67, 0x5f, 0x73,
0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x73, 0x79,
0x73, 0x6c, 0x6f, 0x67, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x1a, 0x60, 0x0a, 0x0a, 0x49, 0x70,
0x56, 0x34, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x70, 0x18, 0x01,
0x20, 0x01, 0x28, 0x07, 0x52, 0x02, 0x69, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x61, 0x74, 0x65,
0x77, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x07, 0x52, 0x07, 0x67, 0x61, 0x74, 0x65, 0x77,
0x61, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x18, 0x03, 0x20, 0x01,
0x28, 0x07, 0x52, 0x06, 0x73, 0x75, 0x62, 0x6e, 0x65, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x6e,
0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x07, 0x52, 0x03, 0x64, 0x6e, 0x73, 0x22, 0x23, 0x0a, 0x0b,
0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x44,
0x48, 0x43, 0x50, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x41, 0x54, 0x49, 0x43, 0x10,
0x01, 0x1a, 0xe9, 0x08, 0x0a, 0x0d, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x6f, 0x6e,
0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x63, 0x72,
0x65, 0x65, 0x6e, 0x4f, 0x6e, 0x53, 0x65, 0x63, 0x73, 0x12, 0x53, 0x0a, 0x0a, 0x67, 0x70, 0x73,
0x5f, 0x66, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x34, 0x2e,
0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e,
0x47, 0x70, 0x73, 0x43, 0x6f, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72,
0x6d, 0x61, 0x74, 0x52, 0x09, 0x67, 0x70, 0x73, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x39,
0x0a, 0x19, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x5f, 0x63, 0x61,
0x72, 0x6f, 0x75, 0x73, 0x65, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x16, 0x61, 0x75, 0x74, 0x6f, 0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x43, 0x61, 0x72,
0x6f, 0x75, 0x73, 0x65, 0x6c, 0x53, 0x65, 0x63, 0x73, 0x12, 0x2a, 0x0a, 0x11, 0x63, 0x6f, 0x6d,
0x70, 0x61, 0x73, 0x73, 0x5f, 0x6e, 0x6f, 0x72, 0x74, 0x68, 0x5f, 0x74, 0x6f, 0x70, 0x18, 0x04,
0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x73, 0x73, 0x4e, 0x6f, 0x72,
0x74, 0x68, 0x54, 0x6f, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x6c, 0x69, 0x70, 0x5f, 0x73, 0x63,
0x72, 0x65, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x66, 0x6c, 0x69, 0x70,
0x53, 0x63, 0x72, 0x65, 0x65, 0x6e, 0x12, 0x43, 0x0a, 0x05, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x18,
0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61,
0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x55,
0x6e, 0x69, 0x74, 0x73, 0x52, 0x05, 0x75, 0x6e, 0x69, 0x74, 0x73, 0x12, 0x3d, 0x0a, 0x04, 0x6f,
0x6c, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x29, 0x2e, 0x6d, 0x65, 0x73, 0x68,
0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x44, 0x69,
0x73, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4f, 0x6c, 0x65, 0x64,
0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x6f, 0x6c, 0x65, 0x64, 0x12, 0x4e, 0x0a, 0x0b, 0x64, 0x69,
0x73, 0x70, 0x6c, 0x61, 0x79, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32,
0x2c, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69,
0x67, 0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x52, 0x0b, 0x64,
0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x68, 0x65,
0x61, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x62, 0x6f, 0x6c, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08,
0x52, 0x0b, 0x68, 0x65, 0x61, 0x64, 0x69, 0x6e, 0x67, 0x42, 0x6f, 0x6c, 0x64, 0x12, 0x30, 0x0a,
0x15, 0x77, 0x61, 0x6b, 0x65, 0x5f, 0x6f, 0x6e, 0x5f, 0x74, 0x61, 0x70, 0x5f, 0x6f, 0x72, 0x5f,
0x6d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x77, 0x61,
0x6b, 0x65, 0x4f, 0x6e, 0x54, 0x61, 0x70, 0x4f, 0x72, 0x4d, 0x6f, 0x74, 0x69, 0x6f, 0x6e, 0x12,
0x64, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x73, 0x73, 0x5f, 0x6f, 0x72, 0x69, 0x65, 0x6e,
0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x33, 0x2e, 0x6d,
0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x2e, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x43,
0x6f, 0x6d, 0x70, 0x61, 0x73, 0x73, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f,
0x6e, 0x52, 0x12, 0x63, 0x6f, 0x6d, 0x70, 0x61, 0x73, 0x73, 0x4f, 0x72, 0x69, 0x65, 0x6e, 0x74,
0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4d, 0x0a, 0x13, 0x47, 0x70, 0x73, 0x43, 0x6f, 0x6f, 0x72,
0x64, 0x69, 0x6e, 0x61, 0x74, 0x65, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x07, 0x0a, 0x03,
0x44, 0x45, 0x43, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x44, 0x4d, 0x53, 0x10, 0x01, 0x12, 0x07,
0x0a, 0x03, 0x55, 0x54, 0x4d, 0x10, 0x02, 0x12, 0x08, 0x0a, 0x04, 0x4d, 0x47, 0x52, 0x53, 0x10,
0x03, 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x4c, 0x43, 0x10, 0x04, 0x12, 0x08, 0x0a, 0x04, 0x4f, 0x53,
0x47, 0x52, 0x10, 0x05, 0x22, 0x28, 0x0a, 0x0c, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x55,
0x6e, 0x69, 0x74, 0x73, 0x12, 0x0a, 0x0a, 0x06, 0x4d, 0x45, 0x54, 0x52, 0x49, 0x43, 0x10, 0x00,
0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4d, 0x50, 0x45, 0x52, 0x49, 0x41, 0x4c, 0x10, 0x01, 0x22, 0x4d,
0x0a, 0x08, 0x4f, 0x6c, 0x65, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x4c,
0x45, 0x44, 0x5f, 0x41, 0x55, 0x54, 0x4f, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x4f, 0x4c, 0x45,
0x44, 0x5f, 0x53, 0x53, 0x44, 0x31, 0x33, 0x30, 0x36, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x4f,
0x4c, 0x45, 0x44, 0x5f, 0x53, 0x48, 0x31, 0x31, 0x30, 0x36, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b,
0x4f, 0x4c, 0x45, 0x44, 0x5f, 0x53, 0x48, 0x31, 0x31, 0x30, 0x37, 0x10, 0x03, 0x22, 0x41, 0x0a,
0x0b, 0x44, 0x69, 0x73, 0x70, 0x6c, 0x61, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x12, 0x0b, 0x0a, 0x07,
0x44, 0x45, 0x46, 0x41, 0x55, 0x4c, 0x54, 0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x54, 0x57, 0x4f,
0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, 0x56, 0x45, 0x52,
0x54, 0x45, 0x44, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x43, 0x4f, 0x4c, 0x4f, 0x52, 0x10, 0x03,
0x22, 0xba, 0x01, 0x0a, 0x12, 0x43, 0x6f, 0x6d, 0x70, 0x61, 0x73, 0x73, 0x4f, 0x72, 0x69, 0x65,
0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x45, 0x47, 0x52, 0x45,
0x45, 0x53, 0x5f, 0x30, 0x10, 0x00, 0x12, 0x0e, 0x0a, 0x0a, 0x44, 0x45, 0x47, 0x52, 0x45, 0x45,
0x53, 0x5f, 0x39, 0x30, 0x10, 0x01, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x45, 0x47, 0x52, 0x45, 0x45,
0x53, 0x5f, 0x31, 0x38, 0x30, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x44, 0x45, 0x47, 0x52, 0x45,
0x45, 0x53, 0x5f, 0x32, 0x37, 0x30, 0x10, 0x03, 0x12, 0x16, 0x0a, 0x12, 0x44, 0x45, 0x47, 0x52,
0x45, 0x45, 0x53, 0x5f, 0x30, 0x5f, 0x49, 0x4e, 0x56, 0x45, 0x52, 0x54, 0x45, 0x44, 0x10, 0x04,
0x12, 0x17, 0x0a, 0x13, 0x44, 0x45, 0x47, 0x52, 0x45, 0x45, 0x53, 0x5f, 0x39, 0x30, 0x5f, 0x49,
0x4e, 0x56, 0x45, 0x52, 0x54, 0x45, 0x44, 0x10, 0x05, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x45, 0x47,
0x52, 0x45, 0x45, 0x53, 0x5f, 0x31, 0x38, 0x30, 0x5f, 0x49, 0x4e, 0x56, 0x45, 0x52, 0x54, 0x45,
0x44, 0x10, 0x06, 0x12, 0x18, 0x0a, 0x14, 0x44, 0x45, 0x47, 0x52, 0x45, 0x45, 0x53, 0x5f, 0x32,
0x37, 0x30, 0x5f, 0x49, 0x4e, 0x56, 0x45, 0x52, 0x54, 0x45, 0x44, 0x10, 0x07, 0x1a, 0x93, 0x09,
0x0a, 0x0a, 0x4c, 0x6f, 0x52, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1d, 0x0a, 0x0a,
0x75, 0x73, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08,
0x52, 0x09, 0x75, 0x73, 0x65, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x12, 0x4c, 0x0a, 0x0c, 0x6d,
0x6f, 0x64, 0x65, 0x6d, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
0x0e, 0x32, 0x29, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43,
0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x6f, 0x52, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x52, 0x0b, 0x6d, 0x6f,
0x64, 0x65, 0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x62, 0x61, 0x6e,
0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x62, 0x61,
0x6e, 0x64, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x70, 0x72, 0x65, 0x61,
0x64, 0x5f, 0x66, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c,
0x73, 0x70, 0x72, 0x65, 0x61, 0x64, 0x46, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b,
0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x72, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28,
0x0d, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x52, 0x61, 0x74, 0x65, 0x12, 0x29, 0x0a,
0x10, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x5f, 0x6f, 0x66, 0x66, 0x73, 0x65,
0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e,
0x63, 0x79, 0x4f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x12, 0x40, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69,
0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x28, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74,
0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x4c, 0x6f, 0x52,
0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x2e, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
0x64, 0x65, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x6f,
0x70, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x68,
0x6f, 0x70, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x74, 0x78, 0x5f, 0x65, 0x6e,
0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x74, 0x78, 0x45,
0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x74, 0x78, 0x5f, 0x70, 0x6f, 0x77,
0x65, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x74, 0x78, 0x50, 0x6f, 0x77, 0x65,
0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x6e, 0x75, 0x6d,
0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x4e,
0x75, 0x6d, 0x12, 0x2e, 0x0a, 0x13, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x5f, 0x64,
0x75, 0x74, 0x79, 0x5f, 0x63, 0x79, 0x63, 0x6c, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x08, 0x52,
0x11, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x44, 0x75, 0x74, 0x79, 0x43, 0x79, 0x63,
0x6c, 0x65, 0x12, 0x33, 0x0a, 0x16, 0x73, 0x78, 0x31, 0x32, 0x36, 0x78, 0x5f, 0x72, 0x78, 0x5f,
0x62, 0x6f, 0x6f, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x67, 0x61, 0x69, 0x6e, 0x18, 0x0d, 0x20, 0x01,
0x28, 0x08, 0x52, 0x13, 0x73, 0x78, 0x31, 0x32, 0x36, 0x78, 0x52, 0x78, 0x42, 0x6f, 0x6f, 0x73,
0x74, 0x65, 0x64, 0x47, 0x61, 0x69, 0x6e, 0x12, 0x2d, 0x0a, 0x12, 0x6f, 0x76, 0x65, 0x72, 0x72,
0x69, 0x64, 0x65, 0x5f, 0x66, 0x72, 0x65, 0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0e, 0x20,
0x01, 0x28, 0x02, 0x52, 0x11, 0x6f, 0x76, 0x65, 0x72, 0x72, 0x69, 0x64, 0x65, 0x46, 0x72, 0x65,
0x71, 0x75, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x26, 0x0a, 0x0f, 0x70, 0x61, 0x5f, 0x66, 0x61, 0x6e,
0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x08, 0x52,
0x0d, 0x70, 0x61, 0x46, 0x61, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x27,
0x0a, 0x0f, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x5f, 0x69, 0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e,
0x67, 0x18, 0x67, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x0e, 0x69, 0x67, 0x6e, 0x6f, 0x72, 0x65, 0x49,
0x6e, 0x63, 0x6f, 0x6d, 0x69, 0x6e, 0x67, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x67, 0x6e, 0x6f, 0x72,
0x65, 0x5f, 0x6d, 0x71, 0x74, 0x74, 0x18, 0x68, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x67,
0x6e, 0x6f, 0x72, 0x65, 0x4d, 0x71, 0x74, 0x74, 0x12, 0x29, 0x0a, 0x11, 0x63, 0x6f, 0x6e, 0x66,
0x69, 0x67, 0x5f, 0x6f, 0x6b, 0x5f, 0x74, 0x6f, 0x5f, 0x6d, 0x71, 0x74, 0x74, 0x18, 0x69, 0x20,
0x01, 0x28, 0x08, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4f, 0x6b, 0x54, 0x6f, 0x4d,
0x71, 0x74, 0x74, 0x22, 0xf1, 0x01, 0x0a, 0x0a, 0x52, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x43, 0x6f,
0x64, 0x65, 0x12, 0x09, 0x0a, 0x05, 0x55, 0x4e, 0x53, 0x45, 0x54, 0x10, 0x00, 0x12, 0x06, 0x0a,
0x02, 0x55, 0x53, 0x10, 0x01, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x55, 0x5f, 0x34, 0x33, 0x33, 0x10,
0x02, 0x12, 0x0a, 0x0a, 0x06, 0x45, 0x55, 0x5f, 0x38, 0x36, 0x38, 0x10, 0x03, 0x12, 0x06, 0x0a,
0x02, 0x43, 0x4e, 0x10, 0x04, 0x12, 0x06, 0x0a, 0x02, 0x4a, 0x50, 0x10, 0x05, 0x12, 0x07, 0x0a,
0x03, 0x41, 0x4e, 0x5a, 0x10, 0x06, 0x12, 0x06, 0x0a, 0x02, 0x4b, 0x52, 0x10, 0x07, 0x12, 0x06,
0x0a, 0x02, 0x54, 0x57, 0x10, 0x08, 0x12, 0x06, 0x0a, 0x02, 0x52, 0x55, 0x10, 0x09, 0x12, 0x06,
0x0a, 0x02, 0x49, 0x4e, 0x10, 0x0a, 0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x5a, 0x5f, 0x38, 0x36, 0x35,
0x10, 0x0b, 0x12, 0x06, 0x0a, 0x02, 0x54, 0x48, 0x10, 0x0c, 0x12, 0x0b, 0x0a, 0x07, 0x4c, 0x4f,
0x52, 0x41, 0x5f, 0x32, 0x34, 0x10, 0x0d, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x41, 0x5f, 0x34, 0x33,
0x33, 0x10, 0x0e, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x41, 0x5f, 0x38, 0x36, 0x38, 0x10, 0x0f, 0x12,
0x0a, 0x0a, 0x06, 0x4d, 0x59, 0x5f, 0x34, 0x33, 0x33, 0x10, 0x10, 0x12, 0x0a, 0x0a, 0x06, 0x4d,
0x59, 0x5f, 0x39, 0x31, 0x39, 0x10, 0x11, 0x12, 0x0a, 0x0a, 0x06, 0x53, 0x47, 0x5f, 0x39, 0x32,
0x33, 0x10, 0x12, 0x12, 0x0a, 0x0a, 0x06, 0x50, 0x48, 0x5f, 0x34, 0x33, 0x33, 0x10, 0x13, 0x12,
0x0a, 0x0a, 0x06, 0x50, 0x48, 0x5f, 0x38, 0x36, 0x38, 0x10, 0x14, 0x12, 0x0a, 0x0a, 0x06, 0x50,
0x48, 0x5f, 0x39, 0x31, 0x35, 0x10, 0x15, 0x22, 0xa9, 0x01, 0x0a, 0x0b, 0x4d, 0x6f, 0x64, 0x65,
0x6d, 0x50, 0x72, 0x65, 0x73, 0x65, 0x74, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x4e, 0x47, 0x5f,
0x46, 0x41, 0x53, 0x54, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x4c, 0x4f, 0x4e, 0x47, 0x5f, 0x53,
0x4c, 0x4f, 0x57, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x0e, 0x56, 0x45, 0x52, 0x59, 0x5f, 0x4c, 0x4f,
0x4e, 0x47, 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x10, 0x02, 0x1a, 0x02, 0x08, 0x01, 0x12, 0x0f, 0x0a,
0x0b, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x10, 0x03, 0x12, 0x0f,
0x0a, 0x0b, 0x4d, 0x45, 0x44, 0x49, 0x55, 0x4d, 0x5f, 0x46, 0x41, 0x53, 0x54, 0x10, 0x04, 0x12,
0x0e, 0x0a, 0x0a, 0x53, 0x48, 0x4f, 0x52, 0x54, 0x5f, 0x53, 0x4c, 0x4f, 0x57, 0x10, 0x05, 0x12,
0x0e, 0x0a, 0x0a, 0x53, 0x48, 0x4f, 0x52, 0x54, 0x5f, 0x46, 0x41, 0x53, 0x54, 0x10, 0x06, 0x12,
0x11, 0x0a, 0x0d, 0x4c, 0x4f, 0x4e, 0x47, 0x5f, 0x4d, 0x4f, 0x44, 0x45, 0x52, 0x41, 0x54, 0x45,
0x10, 0x07, 0x12, 0x0f, 0x0a, 0x0b, 0x53, 0x48, 0x4f, 0x52, 0x54, 0x5f, 0x54, 0x55, 0x52, 0x42,
0x4f, 0x10, 0x08, 0x1a, 0xc6, 0x01, 0x0a, 0x0f, 0x42, 0x6c, 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74,
0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c,
0x65, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65,
0x64, 0x12, 0x42, 0x0a, 0x04, 0x6d, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32,
0x2e, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x43, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x2e, 0x42, 0x6c, 0x75, 0x65, 0x74, 0x6f, 0x6f, 0x74, 0x68, 0x43, 0x6f, 0x6e,
0x66, 0x69, 0x67, 0x2e, 0x50, 0x61, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64, 0x65, 0x52,
0x04, 0x6d, 0x6f, 0x64, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x78, 0x65, 0x64, 0x5f, 0x70,
0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x66, 0x69, 0x78, 0x65, 0x64, 0x50,
0x69, 0x6e, 0x22, 0x38, 0x0a, 0x0b, 0x50, 0x61, 0x69, 0x72, 0x69, 0x6e, 0x67, 0x4d, 0x6f, 0x64,
0x65, 0x12, 0x0e, 0x0a, 0x0a, 0x52, 0x41, 0x4e, 0x44, 0x4f, 0x4d, 0x5f, 0x50, 0x49, 0x4e, 0x10,
0x00, 0x12, 0x0d, 0x0a, 0x09, 0x46, 0x49, 0x58, 0x45, 0x44, 0x5f, 0x50, 0x49, 0x4e, 0x10, 0x01,
0x12, 0x0a, 0x0a, 0x06, 0x4e, 0x4f, 0x5f, 0x50, 0x49, 0x4e, 0x10, 0x02, 0x1a, 0x9a, 0x02, 0x0a,
0x0e, 0x53, 0x65, 0x63, 0x75, 0x72, 0x69, 0x74, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12,
0x1d, 0x0a, 0x0a, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20,
0x01, 0x28, 0x0c, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x4b, 0x65, 0x79, 0x12, 0x1f,
0x0a, 0x0b, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20,
0x01, 0x28, 0x0c, 0x52, 0x0a, 0x70, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4b, 0x65, 0x79, 0x12,
0x1b, 0x0a, 0x09, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x03, 0x20, 0x03,
0x28, 0x0c, 0x52, 0x08, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a,
0x69, 0x73, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08,
0x52, 0x09, 0x69, 0x73, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x73,
0x65, 0x72, 0x69, 0x61, 0x6c, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x05, 0x20,
0x01, 0x28, 0x08, 0x52, 0x0d, 0x73, 0x65, 0x72, 0x69, 0x61, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c,
0x65, 0x64, 0x12, 0x31, 0x0a, 0x15, 0x64, 0x65, 0x62, 0x75, 0x67, 0x5f, 0x6c, 0x6f, 0x67, 0x5f,
0x61, 0x70, 0x69, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28,
0x08, 0x52, 0x12, 0x64, 0x65, 0x62, 0x75, 0x67, 0x4c, 0x6f, 0x67, 0x41, 0x70, 0x69, 0x45, 0x6e,
0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x63,
0x68, 0x61, 0x6e, 0x6e, 0x65, 0x6c, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x08,
0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x43, 0x68, 0x61, 0x6e, 0x6e,
0x65, 0x6c, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x1a, 0x12, 0x0a, 0x10, 0x53, 0x65, 0x73,
0x73, 0x69, 0x6f, 0x6e, 0x6b, 0x65, 0x79, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x42, 0x11, 0x0a,
0x0f, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x76, 0x61, 0x72, 0x69, 0x61, 0x6e, 0x74,
0x42, 0x88, 0x01, 0x0a, 0x13, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x65, 0x65, 0x6b, 0x73, 0x76, 0x69,
0x6c, 0x6c, 0x65, 0x2e, 0x6d, 0x65, 0x73, 0x68, 0x42, 0x0c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67,
0x50, 0x72, 0x6f, 0x74, 0x6f, 0x73, 0x5a, 0x49, 0x67, 0x69, 0x74, 0x2e, 0x6a, 0x61, 0x6e, 0x6b,
0x79, 0x2e, 0x73, 0x6f, 0x6c, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x66, 0x69, 0x6e, 0x6e,
0x2f, 0x6d, 0x61, 0x74, 0x72, 0x69, 0x78, 0x2d, 0x6d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74,
0x69, 0x63, 0x2d, 0x62, 0x72, 0x69, 0x64, 0x67, 0x65, 0x2d, 0x67, 0x6f, 0x2f, 0x6d, 0x65, 0x73,
0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
0x73, 0xaa, 0x02, 0x14, 0x4d, 0x65, 0x73, 0x68, 0x74, 0x61, 0x73, 0x74, 0x69, 0x63, 0x2e, 0x50,
0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x73, 0xba, 0x02, 0x00, 0x62, 0x06, 0x70, 0x72, 0x6f,
0x74, 0x6f, 0x33,
}
var (
file_protobufs_config_proto_rawDescOnce sync.Once
file_protobufs_config_proto_rawDescData = file_protobufs_config_proto_rawDesc
)
func file_protobufs_config_proto_rawDescGZIP() []byte {
file_protobufs_config_proto_rawDescOnce.Do(func() {
file_protobufs_config_proto_rawDescData = protoimpl.X.CompressGZIP(file_protobufs_config_proto_rawDescData)
})
return file_protobufs_config_proto_rawDescData
}
var file_protobufs_config_proto_enumTypes = make([]protoimpl.EnumInfo, 13)
var file_protobufs_config_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
var file_protobufs_config_proto_goTypes = []interface{}{
(Config_DeviceConfig_Role)(0), // 0: meshtastic.Config.DeviceConfig.Role
(Config_DeviceConfig_RebroadcastMode)(0), // 1: meshtastic.Config.DeviceConfig.RebroadcastMode
(Config_PositionConfig_PositionFlags)(0), // 2: meshtastic.Config.PositionConfig.PositionFlags
(Config_PositionConfig_GpsMode)(0), // 3: meshtastic.Config.PositionConfig.GpsMode
(Config_NetworkConfig_AddressMode)(0), // 4: meshtastic.Config.NetworkConfig.AddressMode
(Config_DisplayConfig_GpsCoordinateFormat)(0), // 5: meshtastic.Config.DisplayConfig.GpsCoordinateFormat
(Config_DisplayConfig_DisplayUnits)(0), // 6: meshtastic.Config.DisplayConfig.DisplayUnits
(Config_DisplayConfig_OledType)(0), // 7: meshtastic.Config.DisplayConfig.OledType
(Config_DisplayConfig_DisplayMode)(0), // 8: meshtastic.Config.DisplayConfig.DisplayMode
(Config_DisplayConfig_CompassOrientation)(0), // 9: meshtastic.Config.DisplayConfig.CompassOrientation
(Config_LoRaConfig_RegionCode)(0), // 10: meshtastic.Config.LoRaConfig.RegionCode
(Config_LoRaConfig_ModemPreset)(0), // 11: meshtastic.Config.LoRaConfig.ModemPreset
(Config_BluetoothConfig_PairingMode)(0), // 12: meshtastic.Config.BluetoothConfig.PairingMode
(*Config)(nil), // 13: meshtastic.Config
(*Config_DeviceConfig)(nil), // 14: meshtastic.Config.DeviceConfig
(*Config_PositionConfig)(nil), // 15: meshtastic.Config.PositionConfig
(*Config_PowerConfig)(nil), // 16: meshtastic.Config.PowerConfig
(*Config_NetworkConfig)(nil), // 17: meshtastic.Config.NetworkConfig
(*Config_DisplayConfig)(nil), // 18: meshtastic.Config.DisplayConfig
(*Config_LoRaConfig)(nil), // 19: meshtastic.Config.LoRaConfig
(*Config_BluetoothConfig)(nil), // 20: meshtastic.Config.BluetoothConfig
(*Config_SecurityConfig)(nil), // 21: meshtastic.Config.SecurityConfig
(*Config_SessionkeyConfig)(nil), // 22: meshtastic.Config.SessionkeyConfig
(*Config_NetworkConfig_IpV4Config)(nil), // 23: meshtastic.Config.NetworkConfig.IpV4Config
(*DeviceUIConfig)(nil), // 24: meshtastic.DeviceUIConfig
}
var file_protobufs_config_proto_depIdxs = []int32{
14, // 0: meshtastic.Config.device:type_name -> meshtastic.Config.DeviceConfig
15, // 1: meshtastic.Config.position:type_name -> meshtastic.Config.PositionConfig
16, // 2: meshtastic.Config.power:type_name -> meshtastic.Config.PowerConfig
17, // 3: meshtastic.Config.network:type_name -> meshtastic.Config.NetworkConfig
18, // 4: meshtastic.Config.display:type_name -> meshtastic.Config.DisplayConfig
19, // 5: meshtastic.Config.lora:type_name -> meshtastic.Config.LoRaConfig
20, // 6: meshtastic.Config.bluetooth:type_name -> meshtastic.Config.BluetoothConfig
21, // 7: meshtastic.Config.security:type_name -> meshtastic.Config.SecurityConfig
22, // 8: meshtastic.Config.sessionkey:type_name -> meshtastic.Config.SessionkeyConfig
24, // 9: meshtastic.Config.device_ui:type_name -> meshtastic.DeviceUIConfig
0, // 10: meshtastic.Config.DeviceConfig.role:type_name -> meshtastic.Config.DeviceConfig.Role
1, // 11: meshtastic.Config.DeviceConfig.rebroadcast_mode:type_name -> meshtastic.Config.DeviceConfig.RebroadcastMode
3, // 12: meshtastic.Config.PositionConfig.gps_mode:type_name -> meshtastic.Config.PositionConfig.GpsMode
4, // 13: meshtastic.Config.NetworkConfig.address_mode:type_name -> meshtastic.Config.NetworkConfig.AddressMode
23, // 14: meshtastic.Config.NetworkConfig.ipv4_config:type_name -> meshtastic.Config.NetworkConfig.IpV4Config
5, // 15: meshtastic.Config.DisplayConfig.gps_format:type_name -> meshtastic.Config.DisplayConfig.GpsCoordinateFormat
6, // 16: meshtastic.Config.DisplayConfig.units:type_name -> meshtastic.Config.DisplayConfig.DisplayUnits
7, // 17: meshtastic.Config.DisplayConfig.oled:type_name -> meshtastic.Config.DisplayConfig.OledType
8, // 18: meshtastic.Config.DisplayConfig.displaymode:type_name -> meshtastic.Config.DisplayConfig.DisplayMode
9, // 19: meshtastic.Config.DisplayConfig.compass_orientation:type_name -> meshtastic.Config.DisplayConfig.CompassOrientation
11, // 20: meshtastic.Config.LoRaConfig.modem_preset:type_name -> meshtastic.Config.LoRaConfig.ModemPreset
10, // 21: meshtastic.Config.LoRaConfig.region:type_name -> meshtastic.Config.LoRaConfig.RegionCode
12, // 22: meshtastic.Config.BluetoothConfig.mode:type_name -> meshtastic.Config.BluetoothConfig.PairingMode
23, // [23:23] is the sub-list for method output_type
23, // [23:23] is the sub-list for method input_type
23, // [23:23] is the sub-list for extension type_name
23, // [23:23] is the sub-list for extension extendee
0, // [0:23] is the sub-list for field type_name
}
func init() { file_protobufs_config_proto_init() }
func file_protobufs_config_proto_init() {
if File_protobufs_config_proto != nil {
return
}
file_protobufs_device_ui_proto_init()
if !protoimpl.UnsafeEnabled {
file_protobufs_config_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Config); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_config_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Config_DeviceConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_config_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Config_PositionConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_config_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Config_PowerConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_config_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Config_NetworkConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_config_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Config_DisplayConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_config_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Config_LoRaConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_config_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Config_BluetoothConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_config_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Config_SecurityConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_config_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Config_SessionkeyConfig); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
file_protobufs_config_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
switch v := v.(*Config_NetworkConfig_IpV4Config); i {
case 0:
return &v.state
case 1:
return &v.sizeCache
case 2:
return &v.unknownFields
default:
return nil
}
}
}
file_protobufs_config_proto_msgTypes[0].OneofWrappers = []interface{}{
(*Config_Device)(nil),
(*Config_Position)(nil),
(*Config_Power)(nil),
(*Config_Network)(nil),
(*Config_Display)(nil),
(*Config_Lora)(nil),
(*Config_Bluetooth)(nil),
(*Config_Security)(nil),
(*Config_Sessionkey)(nil),
(*Config_DeviceUi)(nil),
}
type x struct{}
out := protoimpl.TypeBuilder{
File: protoimpl.DescBuilder{
GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
RawDescriptor: file_protobufs_config_proto_rawDesc,
NumEnums: 13,
NumMessages: 11,
NumExtensions: 0,
NumServices: 0,
},
GoTypes: file_protobufs_config_proto_goTypes,
DependencyIndexes: file_protobufs_config_proto_depIdxs,
EnumInfos: file_protobufs_config_proto_enumTypes,
MessageInfos: file_protobufs_config_proto_msgTypes,
}.Build()
File_protobufs_config_proto = out.File
file_protobufs_config_proto_rawDesc = nil
file_protobufs_config_proto_goTypes = nil
file_protobufs_config_proto_depIdxs = nil
}