// Code generated by protoc-gen-go. DO NOT EDIT.
// source: Mumble.proto

package MumbleProto

import (
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	math "math"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

type Reject_RejectType int32

const (
	// The rejection reason is unknown (details should be available
	// in Reject.reason).
	Reject_None Reject_RejectType = 0
	// The client attempted to connect with an incompatible version.
	Reject_WrongVersion Reject_RejectType = 1
	// The user name supplied by the client was invalid.
	Reject_InvalidUsername Reject_RejectType = 2
	// The client attempted to authenticate as a user with a password but it
	// was wrong.
	Reject_WrongUserPW Reject_RejectType = 3
	// The client attempted to connect to a passworded server but the password
	// was wrong.
	Reject_WrongServerPW Reject_RejectType = 4
	// Supplied username is already in use.
	Reject_UsernameInUse Reject_RejectType = 5
	// Server is currently full and cannot accept more users.
	Reject_ServerFull Reject_RejectType = 6
	// The user did not provide a certificate but one is required.
	Reject_NoCertificate     Reject_RejectType = 7
	Reject_AuthenticatorFail Reject_RejectType = 8
)

var Reject_RejectType_name = map[int32]string{
	0: "None",
	1: "WrongVersion",
	2: "InvalidUsername",
	3: "WrongUserPW",
	4: "WrongServerPW",
	5: "UsernameInUse",
	6: "ServerFull",
	7: "NoCertificate",
	8: "AuthenticatorFail",
}

var Reject_RejectType_value = map[string]int32{
	"None":              0,
	"WrongVersion":      1,
	"InvalidUsername":   2,
	"WrongUserPW":       3,
	"WrongServerPW":     4,
	"UsernameInUse":     5,
	"ServerFull":        6,
	"NoCertificate":     7,
	"AuthenticatorFail": 8,
}

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

func (x Reject_RejectType) String() string {
	return proto.EnumName(Reject_RejectType_name, int32(x))
}

func (x *Reject_RejectType) UnmarshalJSON(data []byte) error {
	value, err := proto.UnmarshalJSONEnum(Reject_RejectType_value, data, "Reject_RejectType")
	if err != nil {
		return err
	}
	*x = Reject_RejectType(value)
	return nil
}

func (Reject_RejectType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{4, 0}
}

type PermissionDenied_DenyType int32

const (
	// Operation denied for other reason, see reason field.
	PermissionDenied_Text PermissionDenied_DenyType = 0
	// Permissions were denied.
	PermissionDenied_Permission PermissionDenied_DenyType = 1
	// Cannot modify SuperUser.
	PermissionDenied_SuperUser PermissionDenied_DenyType = 2
	// Invalid channel name.
	PermissionDenied_ChannelName PermissionDenied_DenyType = 3
	// Text message too long.
	PermissionDenied_TextTooLong PermissionDenied_DenyType = 4
	// The flux capacitor was spelled wrong.
	PermissionDenied_H9K PermissionDenied_DenyType = 5
	// Operation not permitted in temporary channel.
	PermissionDenied_TemporaryChannel PermissionDenied_DenyType = 6
	// Operation requires certificate.
	PermissionDenied_MissingCertificate PermissionDenied_DenyType = 7
	// Invalid username.
	PermissionDenied_UserName PermissionDenied_DenyType = 8
	// Channel is full.
	PermissionDenied_ChannelFull PermissionDenied_DenyType = 9
	// Channels are nested too deeply.
	PermissionDenied_NestingLimit PermissionDenied_DenyType = 10
	// Maximum channel count reached.
	PermissionDenied_ChannelCountLimit PermissionDenied_DenyType = 11
	// Amount of listener objects for this channel has been reached
	PermissionDenied_ChannelListenerLimit PermissionDenied_DenyType = 12
	// Amount of listener proxies for the user has been reached
	PermissionDenied_UserListenerLimit PermissionDenied_DenyType = 13
)

var PermissionDenied_DenyType_name = map[int32]string{
	0:  "Text",
	1:  "Permission",
	2:  "SuperUser",
	3:  "ChannelName",
	4:  "TextTooLong",
	5:  "H9K",
	6:  "TemporaryChannel",
	7:  "MissingCertificate",
	8:  "UserName",
	9:  "ChannelFull",
	10: "NestingLimit",
	11: "ChannelCountLimit",
	12: "ChannelListenerLimit",
	13: "UserListenerLimit",
}

var PermissionDenied_DenyType_value = map[string]int32{
	"Text":                 0,
	"Permission":           1,
	"SuperUser":            2,
	"ChannelName":          3,
	"TextTooLong":          4,
	"H9K":                  5,
	"TemporaryChannel":     6,
	"MissingCertificate":   7,
	"UserName":             8,
	"ChannelFull":          9,
	"NestingLimit":         10,
	"ChannelCountLimit":    11,
	"ChannelListenerLimit": 12,
	"UserListenerLimit":    13,
}

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

func (x PermissionDenied_DenyType) String() string {
	return proto.EnumName(PermissionDenied_DenyType_name, int32(x))
}

func (x *PermissionDenied_DenyType) UnmarshalJSON(data []byte) error {
	value, err := proto.UnmarshalJSONEnum(PermissionDenied_DenyType_value, data, "PermissionDenied_DenyType")
	if err != nil {
		return err
	}
	*x = PermissionDenied_DenyType(value)
	return nil
}

func (PermissionDenied_DenyType) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{12, 0}
}

type ContextActionModify_Context int32

const (
	// Action is applicable to the server.
	ContextActionModify_Server ContextActionModify_Context = 1
	// Action can target a Channel.
	ContextActionModify_Channel ContextActionModify_Context = 2
	// Action can target a User.
	ContextActionModify_User ContextActionModify_Context = 4
)

var ContextActionModify_Context_name = map[int32]string{
	1: "Server",
	2: "Channel",
	4: "User",
}

var ContextActionModify_Context_value = map[string]int32{
	"Server":  1,
	"Channel": 2,
	"User":    4,
}

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

func (x ContextActionModify_Context) String() string {
	return proto.EnumName(ContextActionModify_Context_name, int32(x))
}

func (x *ContextActionModify_Context) UnmarshalJSON(data []byte) error {
	value, err := proto.UnmarshalJSONEnum(ContextActionModify_Context_value, data, "ContextActionModify_Context")
	if err != nil {
		return err
	}
	*x = ContextActionModify_Context(value)
	return nil
}

func (ContextActionModify_Context) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{16, 0}
}

type ContextActionModify_Operation int32

const (
	ContextActionModify_Add    ContextActionModify_Operation = 0
	ContextActionModify_Remove ContextActionModify_Operation = 1
)

var ContextActionModify_Operation_name = map[int32]string{
	0: "Add",
	1: "Remove",
}

var ContextActionModify_Operation_value = map[string]int32{
	"Add":    0,
	"Remove": 1,
}

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

func (x ContextActionModify_Operation) String() string {
	return proto.EnumName(ContextActionModify_Operation_name, int32(x))
}

func (x *ContextActionModify_Operation) UnmarshalJSON(data []byte) error {
	value, err := proto.UnmarshalJSONEnum(ContextActionModify_Operation_value, data, "ContextActionModify_Operation")
	if err != nil {
		return err
	}
	*x = ContextActionModify_Operation(value)
	return nil
}

func (ContextActionModify_Operation) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{16, 1}
}

type Version struct {
	// 2-byte Major, 1-byte Minor and 1-byte Patch version number.
	Version *uint32 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"`
	// Client release name.
	Release *string `protobuf:"bytes,2,opt,name=release" json:"release,omitempty"`
	// Client OS name.
	Os *string `protobuf:"bytes,3,opt,name=os" json:"os,omitempty"`
	// Client OS version.
	OsVersion            *string  `protobuf:"bytes,4,opt,name=os_version,json=osVersion" json:"os_version,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Version) Reset()         { *m = Version{} }
func (m *Version) String() string { return proto.CompactTextString(m) }
func (*Version) ProtoMessage()    {}
func (*Version) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{0}
}

func (m *Version) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Version.Unmarshal(m, b)
}
func (m *Version) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Version.Marshal(b, m, deterministic)
}
func (m *Version) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Version.Merge(m, src)
}
func (m *Version) XXX_Size() int {
	return xxx_messageInfo_Version.Size(m)
}
func (m *Version) XXX_DiscardUnknown() {
	xxx_messageInfo_Version.DiscardUnknown(m)
}

var xxx_messageInfo_Version proto.InternalMessageInfo

func (m *Version) GetVersion() uint32 {
	if m != nil && m.Version != nil {
		return *m.Version
	}
	return 0
}

func (m *Version) GetRelease() string {
	if m != nil && m.Release != nil {
		return *m.Release
	}
	return ""
}

func (m *Version) GetOs() string {
	if m != nil && m.Os != nil {
		return *m.Os
	}
	return ""
}

func (m *Version) GetOsVersion() string {
	if m != nil && m.OsVersion != nil {
		return *m.OsVersion
	}
	return ""
}

// Not used. Not even for tunneling UDP through TCP.
type UDPTunnel struct {
	// Not used.
	Packet               []byte   `protobuf:"bytes,1,req,name=packet" json:"packet,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UDPTunnel) Reset()         { *m = UDPTunnel{} }
func (m *UDPTunnel) String() string { return proto.CompactTextString(m) }
func (*UDPTunnel) ProtoMessage()    {}
func (*UDPTunnel) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{1}
}

func (m *UDPTunnel) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UDPTunnel.Unmarshal(m, b)
}
func (m *UDPTunnel) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UDPTunnel.Marshal(b, m, deterministic)
}
func (m *UDPTunnel) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UDPTunnel.Merge(m, src)
}
func (m *UDPTunnel) XXX_Size() int {
	return xxx_messageInfo_UDPTunnel.Size(m)
}
func (m *UDPTunnel) XXX_DiscardUnknown() {
	xxx_messageInfo_UDPTunnel.DiscardUnknown(m)
}

var xxx_messageInfo_UDPTunnel proto.InternalMessageInfo

func (m *UDPTunnel) GetPacket() []byte {
	if m != nil {
		return m.Packet
	}
	return nil
}

// Used by the client to send the authentication credentials to the server.
type Authenticate struct {
	// UTF-8 encoded username.
	Username *string `protobuf:"bytes,1,opt,name=username" json:"username,omitempty"`
	// Server or user password.
	Password *string `protobuf:"bytes,2,opt,name=password" json:"password,omitempty"`
	// Additional access tokens for server ACL groups.
	Tokens []string `protobuf:"bytes,3,rep,name=tokens" json:"tokens,omitempty"`
	// A list of CELT bitstream version constants supported by the client.
	CeltVersions         []int32  `protobuf:"varint,4,rep,name=celt_versions,json=celtVersions" json:"celt_versions,omitempty"`
	Opus                 *bool    `protobuf:"varint,5,opt,name=opus,def=0" json:"opus,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Authenticate) Reset()         { *m = Authenticate{} }
func (m *Authenticate) String() string { return proto.CompactTextString(m) }
func (*Authenticate) ProtoMessage()    {}
func (*Authenticate) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{2}
}

func (m *Authenticate) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Authenticate.Unmarshal(m, b)
}
func (m *Authenticate) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Authenticate.Marshal(b, m, deterministic)
}
func (m *Authenticate) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Authenticate.Merge(m, src)
}
func (m *Authenticate) XXX_Size() int {
	return xxx_messageInfo_Authenticate.Size(m)
}
func (m *Authenticate) XXX_DiscardUnknown() {
	xxx_messageInfo_Authenticate.DiscardUnknown(m)
}

var xxx_messageInfo_Authenticate proto.InternalMessageInfo

const Default_Authenticate_Opus bool = false

func (m *Authenticate) GetUsername() string {
	if m != nil && m.Username != nil {
		return *m.Username
	}
	return ""
}

func (m *Authenticate) GetPassword() string {
	if m != nil && m.Password != nil {
		return *m.Password
	}
	return ""
}

func (m *Authenticate) GetTokens() []string {
	if m != nil {
		return m.Tokens
	}
	return nil
}

func (m *Authenticate) GetCeltVersions() []int32 {
	if m != nil {
		return m.CeltVersions
	}
	return nil
}

func (m *Authenticate) GetOpus() bool {
	if m != nil && m.Opus != nil {
		return *m.Opus
	}
	return Default_Authenticate_Opus
}

// Sent by the client to notify the server that the client is still alive.
// Server must reply to the packet with the same timestamp and its own
// good/late/lost/resync numbers. None of the fields is strictly required.
type Ping struct {
	// Client timestamp. Server should not attempt to decode.
	Timestamp *uint64 `protobuf:"varint,1,opt,name=timestamp" json:"timestamp,omitempty"`
	// The amount of good packets received.
	Good *uint32 `protobuf:"varint,2,opt,name=good" json:"good,omitempty"`
	// The amount of late packets received.
	Late *uint32 `protobuf:"varint,3,opt,name=late" json:"late,omitempty"`
	// The amount of packets never received.
	Lost *uint32 `protobuf:"varint,4,opt,name=lost" json:"lost,omitempty"`
	// The amount of nonce resyncs.
	Resync *uint32 `protobuf:"varint,5,opt,name=resync" json:"resync,omitempty"`
	// The total amount of UDP packets received.
	UdpPackets *uint32 `protobuf:"varint,6,opt,name=udp_packets,json=udpPackets" json:"udp_packets,omitempty"`
	// The total amount of TCP packets received.
	TcpPackets *uint32 `protobuf:"varint,7,opt,name=tcp_packets,json=tcpPackets" json:"tcp_packets,omitempty"`
	// UDP ping average.
	UdpPingAvg *float32 `protobuf:"fixed32,8,opt,name=udp_ping_avg,json=udpPingAvg" json:"udp_ping_avg,omitempty"`
	// UDP ping variance.
	UdpPingVar *float32 `protobuf:"fixed32,9,opt,name=udp_ping_var,json=udpPingVar" json:"udp_ping_var,omitempty"`
	// TCP ping average.
	TcpPingAvg *float32 `protobuf:"fixed32,10,opt,name=tcp_ping_avg,json=tcpPingAvg" json:"tcp_ping_avg,omitempty"`
	// TCP ping variance.
	TcpPingVar           *float32 `protobuf:"fixed32,11,opt,name=tcp_ping_var,json=tcpPingVar" json:"tcp_ping_var,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Ping) Reset()         { *m = Ping{} }
func (m *Ping) String() string { return proto.CompactTextString(m) }
func (*Ping) ProtoMessage()    {}
func (*Ping) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{3}
}

func (m *Ping) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Ping.Unmarshal(m, b)
}
func (m *Ping) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Ping.Marshal(b, m, deterministic)
}
func (m *Ping) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Ping.Merge(m, src)
}
func (m *Ping) XXX_Size() int {
	return xxx_messageInfo_Ping.Size(m)
}
func (m *Ping) XXX_DiscardUnknown() {
	xxx_messageInfo_Ping.DiscardUnknown(m)
}

var xxx_messageInfo_Ping proto.InternalMessageInfo

func (m *Ping) GetTimestamp() uint64 {
	if m != nil && m.Timestamp != nil {
		return *m.Timestamp
	}
	return 0
}

func (m *Ping) GetGood() uint32 {
	if m != nil && m.Good != nil {
		return *m.Good
	}
	return 0
}

func (m *Ping) GetLate() uint32 {
	if m != nil && m.Late != nil {
		return *m.Late
	}
	return 0
}

func (m *Ping) GetLost() uint32 {
	if m != nil && m.Lost != nil {
		return *m.Lost
	}
	return 0
}

func (m *Ping) GetResync() uint32 {
	if m != nil && m.Resync != nil {
		return *m.Resync
	}
	return 0
}

func (m *Ping) GetUdpPackets() uint32 {
	if m != nil && m.UdpPackets != nil {
		return *m.UdpPackets
	}
	return 0
}

func (m *Ping) GetTcpPackets() uint32 {
	if m != nil && m.TcpPackets != nil {
		return *m.TcpPackets
	}
	return 0
}

func (m *Ping) GetUdpPingAvg() float32 {
	if m != nil && m.UdpPingAvg != nil {
		return *m.UdpPingAvg
	}
	return 0
}

func (m *Ping) GetUdpPingVar() float32 {
	if m != nil && m.UdpPingVar != nil {
		return *m.UdpPingVar
	}
	return 0
}

func (m *Ping) GetTcpPingAvg() float32 {
	if m != nil && m.TcpPingAvg != nil {
		return *m.TcpPingAvg
	}
	return 0
}

func (m *Ping) GetTcpPingVar() float32 {
	if m != nil && m.TcpPingVar != nil {
		return *m.TcpPingVar
	}
	return 0
}

// Sent by the server when it rejects the user connection.
type Reject struct {
	// Rejection type.
	Type *Reject_RejectType `protobuf:"varint,1,opt,name=type,enum=MumbleProto.Reject_RejectType" json:"type,omitempty"`
	// Human readable rejection reason.
	Reason               *string  `protobuf:"bytes,2,opt,name=reason" json:"reason,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Reject) Reset()         { *m = Reject{} }
func (m *Reject) String() string { return proto.CompactTextString(m) }
func (*Reject) ProtoMessage()    {}
func (*Reject) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{4}
}

func (m *Reject) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_Reject.Unmarshal(m, b)
}
func (m *Reject) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_Reject.Marshal(b, m, deterministic)
}
func (m *Reject) XXX_Merge(src proto.Message) {
	xxx_messageInfo_Reject.Merge(m, src)
}
func (m *Reject) XXX_Size() int {
	return xxx_messageInfo_Reject.Size(m)
}
func (m *Reject) XXX_DiscardUnknown() {
	xxx_messageInfo_Reject.DiscardUnknown(m)
}

var xxx_messageInfo_Reject proto.InternalMessageInfo

func (m *Reject) GetType() Reject_RejectType {
	if m != nil && m.Type != nil {
		return *m.Type
	}
	return Reject_None
}

func (m *Reject) GetReason() string {
	if m != nil && m.Reason != nil {
		return *m.Reason
	}
	return ""
}

// ServerSync message is sent by the server when it has authenticated the user
// and finished synchronizing the server state.
type ServerSync struct {
	// The session of the current user.
	Session *uint32 `protobuf:"varint,1,opt,name=session" json:"session,omitempty"`
	// Maximum bandwidth that the user should use.
	MaxBandwidth *uint32 `protobuf:"varint,2,opt,name=max_bandwidth,json=maxBandwidth" json:"max_bandwidth,omitempty"`
	// Server welcome text.
	WelcomeText *string `protobuf:"bytes,3,opt,name=welcome_text,json=welcomeText" json:"welcome_text,omitempty"`
	// Current user permissions in the root channel.
	// Note: The permissions data type usually is uin32 (e.g. in PermissionQuery and PermissionDenied messages). Here
	// it is uint64 because of an oversight in the past. Nonetheless it should never exceed the uin32 range.
	// See also: https://github.com/mumble-voip/mumble/issues/5139
	Permissions          *uint64  `protobuf:"varint,4,opt,name=permissions" json:"permissions,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ServerSync) Reset()         { *m = ServerSync{} }
func (m *ServerSync) String() string { return proto.CompactTextString(m) }
func (*ServerSync) ProtoMessage()    {}
func (*ServerSync) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{5}
}

func (m *ServerSync) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ServerSync.Unmarshal(m, b)
}
func (m *ServerSync) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ServerSync.Marshal(b, m, deterministic)
}
func (m *ServerSync) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ServerSync.Merge(m, src)
}
func (m *ServerSync) XXX_Size() int {
	return xxx_messageInfo_ServerSync.Size(m)
}
func (m *ServerSync) XXX_DiscardUnknown() {
	xxx_messageInfo_ServerSync.DiscardUnknown(m)
}

var xxx_messageInfo_ServerSync proto.InternalMessageInfo

func (m *ServerSync) GetSession() uint32 {
	if m != nil && m.Session != nil {
		return *m.Session
	}
	return 0
}

func (m *ServerSync) GetMaxBandwidth() uint32 {
	if m != nil && m.MaxBandwidth != nil {
		return *m.MaxBandwidth
	}
	return 0
}

func (m *ServerSync) GetWelcomeText() string {
	if m != nil && m.WelcomeText != nil {
		return *m.WelcomeText
	}
	return ""
}

func (m *ServerSync) GetPermissions() uint64 {
	if m != nil && m.Permissions != nil {
		return *m.Permissions
	}
	return 0
}

// Sent by the client when it wants a channel removed. Sent by the server when
// a channel has been removed and clients should be notified.
type ChannelRemove struct {
	ChannelId            *uint32  `protobuf:"varint,1,req,name=channel_id,json=channelId" json:"channel_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ChannelRemove) Reset()         { *m = ChannelRemove{} }
func (m *ChannelRemove) String() string { return proto.CompactTextString(m) }
func (*ChannelRemove) ProtoMessage()    {}
func (*ChannelRemove) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{6}
}

func (m *ChannelRemove) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ChannelRemove.Unmarshal(m, b)
}
func (m *ChannelRemove) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ChannelRemove.Marshal(b, m, deterministic)
}
func (m *ChannelRemove) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ChannelRemove.Merge(m, src)
}
func (m *ChannelRemove) XXX_Size() int {
	return xxx_messageInfo_ChannelRemove.Size(m)
}
func (m *ChannelRemove) XXX_DiscardUnknown() {
	xxx_messageInfo_ChannelRemove.DiscardUnknown(m)
}

var xxx_messageInfo_ChannelRemove proto.InternalMessageInfo

func (m *ChannelRemove) GetChannelId() uint32 {
	if m != nil && m.ChannelId != nil {
		return *m.ChannelId
	}
	return 0
}

// Used to communicate channel properties between the client and the server.
// Sent by the server during the login process or when channel properties are
// updated. Client may use this message to update said channel properties.
type ChannelState struct {
	// Unique ID for the channel within the server.
	ChannelId *uint32 `protobuf:"varint,1,opt,name=channel_id,json=channelId" json:"channel_id,omitempty"`
	// channel_id of the parent channel.
	Parent *uint32 `protobuf:"varint,2,opt,name=parent" json:"parent,omitempty"`
	// UTF-8 encoded channel name.
	Name *string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
	// A collection of channel id values of the linked channels. Absent during
	// the first channel listing.
	Links []uint32 `protobuf:"varint,4,rep,name=links" json:"links,omitempty"`
	// UTF-8 encoded channel description. Only if the description is less than
	// 128 bytes
	Description *string `protobuf:"bytes,5,opt,name=description" json:"description,omitempty"`
	// A collection of channel_id values that should be added to links.
	LinksAdd []uint32 `protobuf:"varint,6,rep,name=links_add,json=linksAdd" json:"links_add,omitempty"`
	// A collection of channel_id values that should be removed from links.
	LinksRemove []uint32 `protobuf:"varint,7,rep,name=links_remove,json=linksRemove" json:"links_remove,omitempty"`
	// True if the channel is temporary.
	Temporary *bool `protobuf:"varint,8,opt,name=temporary,def=0" json:"temporary,omitempty"`
	// Position weight to tweak the channel position in the channel list.
	Position *int32 `protobuf:"varint,9,opt,name=position,def=0" json:"position,omitempty"`
	// SHA1 hash of the description if the description is 128 bytes or more.
	DescriptionHash []byte `protobuf:"bytes,10,opt,name=description_hash,json=descriptionHash" json:"description_hash,omitempty"`
	// Maximum number of users allowed in the channel. If this value is zero,
	// the maximum number of users allowed in the channel is given by the
	// server's "usersperchannel" setting.
	MaxUsers *uint32 `protobuf:"varint,11,opt,name=max_users,json=maxUsers" json:"max_users,omitempty"`
	// Whether this channel has enter restrictions (ACL denying ENTER) set
	IsEnterRestricted *bool `protobuf:"varint,12,opt,name=is_enter_restricted,json=isEnterRestricted" json:"is_enter_restricted,omitempty"`
	// Whether the receiver of this msg is considered to be able to enter this channel
	CanEnter             *bool    `protobuf:"varint,13,opt,name=can_enter,json=canEnter" json:"can_enter,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ChannelState) Reset()         { *m = ChannelState{} }
func (m *ChannelState) String() string { return proto.CompactTextString(m) }
func (*ChannelState) ProtoMessage()    {}
func (*ChannelState) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{7}
}

func (m *ChannelState) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ChannelState.Unmarshal(m, b)
}
func (m *ChannelState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ChannelState.Marshal(b, m, deterministic)
}
func (m *ChannelState) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ChannelState.Merge(m, src)
}
func (m *ChannelState) XXX_Size() int {
	return xxx_messageInfo_ChannelState.Size(m)
}
func (m *ChannelState) XXX_DiscardUnknown() {
	xxx_messageInfo_ChannelState.DiscardUnknown(m)
}

var xxx_messageInfo_ChannelState proto.InternalMessageInfo

const Default_ChannelState_Temporary bool = false
const Default_ChannelState_Position int32 = 0

func (m *ChannelState) GetChannelId() uint32 {
	if m != nil && m.ChannelId != nil {
		return *m.ChannelId
	}
	return 0
}

func (m *ChannelState) GetParent() uint32 {
	if m != nil && m.Parent != nil {
		return *m.Parent
	}
	return 0
}

func (m *ChannelState) GetName() string {
	if m != nil && m.Name != nil {
		return *m.Name
	}
	return ""
}

func (m *ChannelState) GetLinks() []uint32 {
	if m != nil {
		return m.Links
	}
	return nil
}

func (m *ChannelState) GetDescription() string {
	if m != nil && m.Description != nil {
		return *m.Description
	}
	return ""
}

func (m *ChannelState) GetLinksAdd() []uint32 {
	if m != nil {
		return m.LinksAdd
	}
	return nil
}

func (m *ChannelState) GetLinksRemove() []uint32 {
	if m != nil {
		return m.LinksRemove
	}
	return nil
}

func (m *ChannelState) GetTemporary() bool {
	if m != nil && m.Temporary != nil {
		return *m.Temporary
	}
	return Default_ChannelState_Temporary
}

func (m *ChannelState) GetPosition() int32 {
	if m != nil && m.Position != nil {
		return *m.Position
	}
	return Default_ChannelState_Position
}

func (m *ChannelState) GetDescriptionHash() []byte {
	if m != nil {
		return m.DescriptionHash
	}
	return nil
}

func (m *ChannelState) GetMaxUsers() uint32 {
	if m != nil && m.MaxUsers != nil {
		return *m.MaxUsers
	}
	return 0
}

func (m *ChannelState) GetIsEnterRestricted() bool {
	if m != nil && m.IsEnterRestricted != nil {
		return *m.IsEnterRestricted
	}
	return false
}

func (m *ChannelState) GetCanEnter() bool {
	if m != nil && m.CanEnter != nil {
		return *m.CanEnter
	}
	return false
}

// Used to communicate user leaving or being kicked. May be sent by the client
// when it attempts to kick a user. Sent by the server when it informs the
// clients that a user is not present anymore.
type UserRemove struct {
	// The user who is being kicked, identified by their session, not present
	// when no one is being kicked.
	Session *uint32 `protobuf:"varint,1,req,name=session" json:"session,omitempty"`
	// The user who initiated the removal. Either the user who performs the kick
	// or the user who is currently leaving.
	Actor *uint32 `protobuf:"varint,2,opt,name=actor" json:"actor,omitempty"`
	// Reason for the kick, stored as the ban reason if the user is banned.
	Reason *string `protobuf:"bytes,3,opt,name=reason" json:"reason,omitempty"`
	// True if the kick should result in a ban.
	Ban                  *bool    `protobuf:"varint,4,opt,name=ban" json:"ban,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UserRemove) Reset()         { *m = UserRemove{} }
func (m *UserRemove) String() string { return proto.CompactTextString(m) }
func (*UserRemove) ProtoMessage()    {}
func (*UserRemove) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{8}
}

func (m *UserRemove) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UserRemove.Unmarshal(m, b)
}
func (m *UserRemove) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UserRemove.Marshal(b, m, deterministic)
}
func (m *UserRemove) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UserRemove.Merge(m, src)
}
func (m *UserRemove) XXX_Size() int {
	return xxx_messageInfo_UserRemove.Size(m)
}
func (m *UserRemove) XXX_DiscardUnknown() {
	xxx_messageInfo_UserRemove.DiscardUnknown(m)
}

var xxx_messageInfo_UserRemove proto.InternalMessageInfo

func (m *UserRemove) GetSession() uint32 {
	if m != nil && m.Session != nil {
		return *m.Session
	}
	return 0
}

func (m *UserRemove) GetActor() uint32 {
	if m != nil && m.Actor != nil {
		return *m.Actor
	}
	return 0
}

func (m *UserRemove) GetReason() string {
	if m != nil && m.Reason != nil {
		return *m.Reason
	}
	return ""
}

func (m *UserRemove) GetBan() bool {
	if m != nil && m.Ban != nil {
		return *m.Ban
	}
	return false
}

// Sent by the server when it communicates new and changed users to client.
// First seen during login procedure. May be sent by the client when it wishes
// to alter its state.
type UserState struct {
	// Unique user session ID of the user whose state this is, may change on
	// reconnect.
	Session *uint32 `protobuf:"varint,1,opt,name=session" json:"session,omitempty"`
	// The session of the user who is updating this user.
	Actor *uint32 `protobuf:"varint,2,opt,name=actor" json:"actor,omitempty"`
	// User name, UTF-8 encoded.
	Name *string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
	// Registered user ID if the user is registered.
	UserId *uint32 `protobuf:"varint,4,opt,name=user_id,json=userId" json:"user_id,omitempty"`
	// Channel on which the user is.
	ChannelId *uint32 `protobuf:"varint,5,opt,name=channel_id,json=channelId" json:"channel_id,omitempty"`
	// True if the user is muted by admin.
	Mute *bool `protobuf:"varint,6,opt,name=mute" json:"mute,omitempty"`
	// True if the user is deafened by admin.
	Deaf *bool `protobuf:"varint,7,opt,name=deaf" json:"deaf,omitempty"`
	// True if the user has been suppressed from talking by a reason other than
	// being muted.
	Suppress *bool `protobuf:"varint,8,opt,name=suppress" json:"suppress,omitempty"`
	// True if the user has muted self.
	SelfMute *bool `protobuf:"varint,9,opt,name=self_mute,json=selfMute" json:"self_mute,omitempty"`
	// True if the user has deafened self.
	SelfDeaf *bool `protobuf:"varint,10,opt,name=self_deaf,json=selfDeaf" json:"self_deaf,omitempty"`
	// User image if it is less than 128 bytes.
	Texture []byte `protobuf:"bytes,11,opt,name=texture" json:"texture,omitempty"`
	// The positional audio plugin identifier.
	// Positional audio information is only sent to users who share
	// identical plugin contexts.
	//
	// This value is not transmitted to clients.
	PluginContext []byte `protobuf:"bytes,12,opt,name=plugin_context,json=pluginContext" json:"plugin_context,omitempty"`
	// The user's plugin-specific identity.
	// This value is not transmitted to clients.
	PluginIdentity *string `protobuf:"bytes,13,opt,name=plugin_identity,json=pluginIdentity" json:"plugin_identity,omitempty"`
	// User comment if it is less than 128 bytes.
	Comment *string `protobuf:"bytes,14,opt,name=comment" json:"comment,omitempty"`
	// The hash of the user certificate.
	Hash *string `protobuf:"bytes,15,opt,name=hash" json:"hash,omitempty"`
	// SHA1 hash of the user comment if it 128 bytes or more.
	CommentHash []byte `protobuf:"bytes,16,opt,name=comment_hash,json=commentHash" json:"comment_hash,omitempty"`
	// SHA1 hash of the user picture if it 128 bytes or more.
	TextureHash []byte `protobuf:"bytes,17,opt,name=texture_hash,json=textureHash" json:"texture_hash,omitempty"`
	// True if the user is a priority speaker.
	PrioritySpeaker *bool `protobuf:"varint,18,opt,name=priority_speaker,json=prioritySpeaker" json:"priority_speaker,omitempty"`
	// True if the user is currently recording.
	Recording *bool `protobuf:"varint,19,opt,name=recording" json:"recording,omitempty"`
	// A list of temporary access tokens to be respected when processing this request.
	TemporaryAccessTokens []string `protobuf:"bytes,20,rep,name=temporary_access_tokens,json=temporaryAccessTokens" json:"temporary_access_tokens,omitempty"`
	// A list of channels the user wants to start listening to.
	ListeningChannelAdd []uint32 `protobuf:"varint,21,rep,name=listening_channel_add,json=listeningChannelAdd" json:"listening_channel_add,omitempty"`
	// a list of channels the user does no longer want to listen to.
	ListeningChannelRemove []uint32 `protobuf:"varint,22,rep,name=listening_channel_remove,json=listeningChannelRemove" json:"listening_channel_remove,omitempty"`
	XXX_NoUnkeyedLiteral   struct{} `json:"-"`
	XXX_unrecognized       []byte   `json:"-"`
	XXX_sizecache          int32    `json:"-"`
}

func (m *UserState) Reset()         { *m = UserState{} }
func (m *UserState) String() string { return proto.CompactTextString(m) }
func (*UserState) ProtoMessage()    {}
func (*UserState) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{9}
}

func (m *UserState) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UserState.Unmarshal(m, b)
}
func (m *UserState) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UserState.Marshal(b, m, deterministic)
}
func (m *UserState) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UserState.Merge(m, src)
}
func (m *UserState) XXX_Size() int {
	return xxx_messageInfo_UserState.Size(m)
}
func (m *UserState) XXX_DiscardUnknown() {
	xxx_messageInfo_UserState.DiscardUnknown(m)
}

var xxx_messageInfo_UserState proto.InternalMessageInfo

func (m *UserState) GetSession() uint32 {
	if m != nil && m.Session != nil {
		return *m.Session
	}
	return 0
}

func (m *UserState) GetActor() uint32 {
	if m != nil && m.Actor != nil {
		return *m.Actor
	}
	return 0
}

func (m *UserState) GetName() string {
	if m != nil && m.Name != nil {
		return *m.Name
	}
	return ""
}

func (m *UserState) GetUserId() uint32 {
	if m != nil && m.UserId != nil {
		return *m.UserId
	}
	return 0
}

func (m *UserState) GetChannelId() uint32 {
	if m != nil && m.ChannelId != nil {
		return *m.ChannelId
	}
	return 0
}

func (m *UserState) GetMute() bool {
	if m != nil && m.Mute != nil {
		return *m.Mute
	}
	return false
}

func (m *UserState) GetDeaf() bool {
	if m != nil && m.Deaf != nil {
		return *m.Deaf
	}
	return false
}

func (m *UserState) GetSuppress() bool {
	if m != nil && m.Suppress != nil {
		return *m.Suppress
	}
	return false
}

func (m *UserState) GetSelfMute() bool {
	if m != nil && m.SelfMute != nil {
		return *m.SelfMute
	}
	return false
}

func (m *UserState) GetSelfDeaf() bool {
	if m != nil && m.SelfDeaf != nil {
		return *m.SelfDeaf
	}
	return false
}

func (m *UserState) GetTexture() []byte {
	if m != nil {
		return m.Texture
	}
	return nil
}

func (m *UserState) GetPluginContext() []byte {
	if m != nil {
		return m.PluginContext
	}
	return nil
}

func (m *UserState) GetPluginIdentity() string {
	if m != nil && m.PluginIdentity != nil {
		return *m.PluginIdentity
	}
	return ""
}

func (m *UserState) GetComment() string {
	if m != nil && m.Comment != nil {
		return *m.Comment
	}
	return ""
}

func (m *UserState) GetHash() string {
	if m != nil && m.Hash != nil {
		return *m.Hash
	}
	return ""
}

func (m *UserState) GetCommentHash() []byte {
	if m != nil {
		return m.CommentHash
	}
	return nil
}

func (m *UserState) GetTextureHash() []byte {
	if m != nil {
		return m.TextureHash
	}
	return nil
}

func (m *UserState) GetPrioritySpeaker() bool {
	if m != nil && m.PrioritySpeaker != nil {
		return *m.PrioritySpeaker
	}
	return false
}

func (m *UserState) GetRecording() bool {
	if m != nil && m.Recording != nil {
		return *m.Recording
	}
	return false
}

func (m *UserState) GetTemporaryAccessTokens() []string {
	if m != nil {
		return m.TemporaryAccessTokens
	}
	return nil
}

func (m *UserState) GetListeningChannelAdd() []uint32 {
	if m != nil {
		return m.ListeningChannelAdd
	}
	return nil
}

func (m *UserState) GetListeningChannelRemove() []uint32 {
	if m != nil {
		return m.ListeningChannelRemove
	}
	return nil
}

// Relays information on the bans. The client may send the BanList message to
// either modify the list of bans or query them from the server. The server
// sends this list only after a client queries for it.
type BanList struct {
	// List of ban entries currently in place.
	Bans []*BanList_BanEntry `protobuf:"bytes,1,rep,name=bans" json:"bans,omitempty"`
	// True if the server should return the list, false if it should replace old
	// ban list with the one provided.
	Query                *bool    `protobuf:"varint,2,opt,name=query,def=0" json:"query,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *BanList) Reset()         { *m = BanList{} }
func (m *BanList) String() string { return proto.CompactTextString(m) }
func (*BanList) ProtoMessage()    {}
func (*BanList) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{10}
}

func (m *BanList) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BanList.Unmarshal(m, b)
}
func (m *BanList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BanList.Marshal(b, m, deterministic)
}
func (m *BanList) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BanList.Merge(m, src)
}
func (m *BanList) XXX_Size() int {
	return xxx_messageInfo_BanList.Size(m)
}
func (m *BanList) XXX_DiscardUnknown() {
	xxx_messageInfo_BanList.DiscardUnknown(m)
}

var xxx_messageInfo_BanList proto.InternalMessageInfo

const Default_BanList_Query bool = false

func (m *BanList) GetBans() []*BanList_BanEntry {
	if m != nil {
		return m.Bans
	}
	return nil
}

func (m *BanList) GetQuery() bool {
	if m != nil && m.Query != nil {
		return *m.Query
	}
	return Default_BanList_Query
}

type BanList_BanEntry struct {
	// Banned IP address.
	Address []byte `protobuf:"bytes,1,req,name=address" json:"address,omitempty"`
	// The length of the subnet mask for the ban.
	Mask *uint32 `protobuf:"varint,2,req,name=mask" json:"mask,omitempty"`
	// User name for identification purposes (does not affect the ban).
	Name *string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"`
	// The certificate hash of the banned user.
	Hash *string `protobuf:"bytes,4,opt,name=hash" json:"hash,omitempty"`
	// Reason for the ban (does not affect the ban).
	Reason *string `protobuf:"bytes,5,opt,name=reason" json:"reason,omitempty"`
	// Ban start time.
	Start *string `protobuf:"bytes,6,opt,name=start" json:"start,omitempty"`
	// Ban duration in seconds.
	Duration             *uint32  `protobuf:"varint,7,opt,name=duration" json:"duration,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *BanList_BanEntry) Reset()         { *m = BanList_BanEntry{} }
func (m *BanList_BanEntry) String() string { return proto.CompactTextString(m) }
func (*BanList_BanEntry) ProtoMessage()    {}
func (*BanList_BanEntry) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{10, 0}
}

func (m *BanList_BanEntry) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_BanList_BanEntry.Unmarshal(m, b)
}
func (m *BanList_BanEntry) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_BanList_BanEntry.Marshal(b, m, deterministic)
}
func (m *BanList_BanEntry) XXX_Merge(src proto.Message) {
	xxx_messageInfo_BanList_BanEntry.Merge(m, src)
}
func (m *BanList_BanEntry) XXX_Size() int {
	return xxx_messageInfo_BanList_BanEntry.Size(m)
}
func (m *BanList_BanEntry) XXX_DiscardUnknown() {
	xxx_messageInfo_BanList_BanEntry.DiscardUnknown(m)
}

var xxx_messageInfo_BanList_BanEntry proto.InternalMessageInfo

func (m *BanList_BanEntry) GetAddress() []byte {
	if m != nil {
		return m.Address
	}
	return nil
}

func (m *BanList_BanEntry) GetMask() uint32 {
	if m != nil && m.Mask != nil {
		return *m.Mask
	}
	return 0
}

func (m *BanList_BanEntry) GetName() string {
	if m != nil && m.Name != nil {
		return *m.Name
	}
	return ""
}

func (m *BanList_BanEntry) GetHash() string {
	if m != nil && m.Hash != nil {
		return *m.Hash
	}
	return ""
}

func (m *BanList_BanEntry) GetReason() string {
	if m != nil && m.Reason != nil {
		return *m.Reason
	}
	return ""
}

func (m *BanList_BanEntry) GetStart() string {
	if m != nil && m.Start != nil {
		return *m.Start
	}
	return ""
}

func (m *BanList_BanEntry) GetDuration() uint32 {
	if m != nil && m.Duration != nil {
		return *m.Duration
	}
	return 0
}

// Used to send and broadcast text messages.
type TextMessage struct {
	// The message sender, identified by its session.
	Actor *uint32 `protobuf:"varint,1,opt,name=actor" json:"actor,omitempty"`
	// Target users for the message, identified by their session.
	Session []uint32 `protobuf:"varint,2,rep,name=session" json:"session,omitempty"`
	// The channels to which the message is sent, identified by their
	// channel_ids.
	ChannelId []uint32 `protobuf:"varint,3,rep,name=channel_id,json=channelId" json:"channel_id,omitempty"`
	// The root channels when sending message recursively to several channels,
	// identified by their channel_ids.
	TreeId []uint32 `protobuf:"varint,4,rep,name=tree_id,json=treeId" json:"tree_id,omitempty"`
	// The UTF-8 encoded message. May be HTML if the server allows.
	Message              *string  `protobuf:"bytes,5,req,name=message" json:"message,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TextMessage) Reset()         { *m = TextMessage{} }
func (m *TextMessage) String() string { return proto.CompactTextString(m) }
func (*TextMessage) ProtoMessage()    {}
func (*TextMessage) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{11}
}

func (m *TextMessage) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TextMessage.Unmarshal(m, b)
}
func (m *TextMessage) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TextMessage.Marshal(b, m, deterministic)
}
func (m *TextMessage) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TextMessage.Merge(m, src)
}
func (m *TextMessage) XXX_Size() int {
	return xxx_messageInfo_TextMessage.Size(m)
}
func (m *TextMessage) XXX_DiscardUnknown() {
	xxx_messageInfo_TextMessage.DiscardUnknown(m)
}

var xxx_messageInfo_TextMessage proto.InternalMessageInfo

func (m *TextMessage) GetActor() uint32 {
	if m != nil && m.Actor != nil {
		return *m.Actor
	}
	return 0
}

func (m *TextMessage) GetSession() []uint32 {
	if m != nil {
		return m.Session
	}
	return nil
}

func (m *TextMessage) GetChannelId() []uint32 {
	if m != nil {
		return m.ChannelId
	}
	return nil
}

func (m *TextMessage) GetTreeId() []uint32 {
	if m != nil {
		return m.TreeId
	}
	return nil
}

func (m *TextMessage) GetMessage() string {
	if m != nil && m.Message != nil {
		return *m.Message
	}
	return ""
}

type PermissionDenied struct {
	// The denied permission when type is Permission.
	Permission *uint32 `protobuf:"varint,1,opt,name=permission" json:"permission,omitempty"`
	// channel_id for the channel where the permission was denied when type is
	// Permission.
	ChannelId *uint32 `protobuf:"varint,2,opt,name=channel_id,json=channelId" json:"channel_id,omitempty"`
	// The user who was denied permissions, identified by session.
	Session *uint32 `protobuf:"varint,3,opt,name=session" json:"session,omitempty"`
	// Textual reason for the denial.
	Reason *string `protobuf:"bytes,4,opt,name=reason" json:"reason,omitempty"`
	// Type of the denial.
	Type *PermissionDenied_DenyType `protobuf:"varint,5,opt,name=type,enum=MumbleProto.PermissionDenied_DenyType" json:"type,omitempty"`
	// The name that is invalid when type is UserName.
	Name                 *string  `protobuf:"bytes,6,opt,name=name" json:"name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PermissionDenied) Reset()         { *m = PermissionDenied{} }
func (m *PermissionDenied) String() string { return proto.CompactTextString(m) }
func (*PermissionDenied) ProtoMessage()    {}
func (*PermissionDenied) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{12}
}

func (m *PermissionDenied) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PermissionDenied.Unmarshal(m, b)
}
func (m *PermissionDenied) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PermissionDenied.Marshal(b, m, deterministic)
}
func (m *PermissionDenied) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PermissionDenied.Merge(m, src)
}
func (m *PermissionDenied) XXX_Size() int {
	return xxx_messageInfo_PermissionDenied.Size(m)
}
func (m *PermissionDenied) XXX_DiscardUnknown() {
	xxx_messageInfo_PermissionDenied.DiscardUnknown(m)
}

var xxx_messageInfo_PermissionDenied proto.InternalMessageInfo

func (m *PermissionDenied) GetPermission() uint32 {
	if m != nil && m.Permission != nil {
		return *m.Permission
	}
	return 0
}

func (m *PermissionDenied) GetChannelId() uint32 {
	if m != nil && m.ChannelId != nil {
		return *m.ChannelId
	}
	return 0
}

func (m *PermissionDenied) GetSession() uint32 {
	if m != nil && m.Session != nil {
		return *m.Session
	}
	return 0
}

func (m *PermissionDenied) GetReason() string {
	if m != nil && m.Reason != nil {
		return *m.Reason
	}
	return ""
}

func (m *PermissionDenied) GetType() PermissionDenied_DenyType {
	if m != nil && m.Type != nil {
		return *m.Type
	}
	return PermissionDenied_Text
}

func (m *PermissionDenied) GetName() string {
	if m != nil && m.Name != nil {
		return *m.Name
	}
	return ""
}

type ACL struct {
	// Channel ID of the channel this message affects.
	ChannelId *uint32 `protobuf:"varint,1,req,name=channel_id,json=channelId" json:"channel_id,omitempty"`
	// True if the channel inherits its parent's ACLs.
	InheritAcls *bool `protobuf:"varint,2,opt,name=inherit_acls,json=inheritAcls,def=1" json:"inherit_acls,omitempty"`
	// User group specifications.
	Groups []*ACL_ChanGroup `protobuf:"bytes,3,rep,name=groups" json:"groups,omitempty"`
	// ACL specifications.
	Acls []*ACL_ChanACL `protobuf:"bytes,4,rep,name=acls" json:"acls,omitempty"`
	// True if the message is a query for ACLs instead of setting them.
	Query                *bool    `protobuf:"varint,5,opt,name=query,def=0" json:"query,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ACL) Reset()         { *m = ACL{} }
func (m *ACL) String() string { return proto.CompactTextString(m) }
func (*ACL) ProtoMessage()    {}
func (*ACL) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{13}
}

func (m *ACL) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ACL.Unmarshal(m, b)
}
func (m *ACL) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ACL.Marshal(b, m, deterministic)
}
func (m *ACL) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ACL.Merge(m, src)
}
func (m *ACL) XXX_Size() int {
	return xxx_messageInfo_ACL.Size(m)
}
func (m *ACL) XXX_DiscardUnknown() {
	xxx_messageInfo_ACL.DiscardUnknown(m)
}

var xxx_messageInfo_ACL proto.InternalMessageInfo

const Default_ACL_InheritAcls bool = true
const Default_ACL_Query bool = false

func (m *ACL) GetChannelId() uint32 {
	if m != nil && m.ChannelId != nil {
		return *m.ChannelId
	}
	return 0
}

func (m *ACL) GetInheritAcls() bool {
	if m != nil && m.InheritAcls != nil {
		return *m.InheritAcls
	}
	return Default_ACL_InheritAcls
}

func (m *ACL) GetGroups() []*ACL_ChanGroup {
	if m != nil {
		return m.Groups
	}
	return nil
}

func (m *ACL) GetAcls() []*ACL_ChanACL {
	if m != nil {
		return m.Acls
	}
	return nil
}

func (m *ACL) GetQuery() bool {
	if m != nil && m.Query != nil {
		return *m.Query
	}
	return Default_ACL_Query
}

type ACL_ChanGroup struct {
	// Name of the channel group, UTF-8 encoded.
	Name *string `protobuf:"bytes,1,req,name=name" json:"name,omitempty"`
	// True if the group has been inherited from the parent (Read only).
	Inherited *bool `protobuf:"varint,2,opt,name=inherited,def=1" json:"inherited,omitempty"`
	// True if the group members are inherited.
	Inherit *bool `protobuf:"varint,3,opt,name=inherit,def=1" json:"inherit,omitempty"`
	// True if the group can be inherited by sub channels.
	Inheritable *bool `protobuf:"varint,4,opt,name=inheritable,def=1" json:"inheritable,omitempty"`
	// Users explicitly included in this group, identified by user_id.
	Add []uint32 `protobuf:"varint,5,rep,name=add" json:"add,omitempty"`
	// Users explicitly removed from this group in this channel if the group
	// has been inherited, identified by user_id.
	Remove []uint32 `protobuf:"varint,6,rep,name=remove" json:"remove,omitempty"`
	// Users inherited, identified by user_id.
	InheritedMembers     []uint32 `protobuf:"varint,7,rep,name=inherited_members,json=inheritedMembers" json:"inherited_members,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ACL_ChanGroup) Reset()         { *m = ACL_ChanGroup{} }
func (m *ACL_ChanGroup) String() string { return proto.CompactTextString(m) }
func (*ACL_ChanGroup) ProtoMessage()    {}
func (*ACL_ChanGroup) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{13, 0}
}

func (m *ACL_ChanGroup) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ACL_ChanGroup.Unmarshal(m, b)
}
func (m *ACL_ChanGroup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ACL_ChanGroup.Marshal(b, m, deterministic)
}
func (m *ACL_ChanGroup) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ACL_ChanGroup.Merge(m, src)
}
func (m *ACL_ChanGroup) XXX_Size() int {
	return xxx_messageInfo_ACL_ChanGroup.Size(m)
}
func (m *ACL_ChanGroup) XXX_DiscardUnknown() {
	xxx_messageInfo_ACL_ChanGroup.DiscardUnknown(m)
}

var xxx_messageInfo_ACL_ChanGroup proto.InternalMessageInfo

const Default_ACL_ChanGroup_Inherited bool = true
const Default_ACL_ChanGroup_Inherit bool = true
const Default_ACL_ChanGroup_Inheritable bool = true

func (m *ACL_ChanGroup) GetName() string {
	if m != nil && m.Name != nil {
		return *m.Name
	}
	return ""
}

func (m *ACL_ChanGroup) GetInherited() bool {
	if m != nil && m.Inherited != nil {
		return *m.Inherited
	}
	return Default_ACL_ChanGroup_Inherited
}

func (m *ACL_ChanGroup) GetInherit() bool {
	if m != nil && m.Inherit != nil {
		return *m.Inherit
	}
	return Default_ACL_ChanGroup_Inherit
}

func (m *ACL_ChanGroup) GetInheritable() bool {
	if m != nil && m.Inheritable != nil {
		return *m.Inheritable
	}
	return Default_ACL_ChanGroup_Inheritable
}

func (m *ACL_ChanGroup) GetAdd() []uint32 {
	if m != nil {
		return m.Add
	}
	return nil
}

func (m *ACL_ChanGroup) GetRemove() []uint32 {
	if m != nil {
		return m.Remove
	}
	return nil
}

func (m *ACL_ChanGroup) GetInheritedMembers() []uint32 {
	if m != nil {
		return m.InheritedMembers
	}
	return nil
}

type ACL_ChanACL struct {
	// True if this ACL applies to the current channel.
	ApplyHere *bool `protobuf:"varint,1,opt,name=apply_here,json=applyHere,def=1" json:"apply_here,omitempty"`
	// True if this ACL applies to the sub channels.
	ApplySubs *bool `protobuf:"varint,2,opt,name=apply_subs,json=applySubs,def=1" json:"apply_subs,omitempty"`
	// True if the ACL has been inherited from the parent.
	Inherited *bool `protobuf:"varint,3,opt,name=inherited,def=1" json:"inherited,omitempty"`
	// ID of the user that is affected by this ACL.
	UserId *uint32 `protobuf:"varint,4,opt,name=user_id,json=userId" json:"user_id,omitempty"`
	// ID of the group that is affected by this ACL.
	Group *string `protobuf:"bytes,5,opt,name=group" json:"group,omitempty"`
	// Bit flag field of the permissions granted by this ACL.
	Grant *uint32 `protobuf:"varint,6,opt,name=grant" json:"grant,omitempty"`
	// Bit flag field of the permissions denied by this ACL.
	Deny                 *uint32  `protobuf:"varint,7,opt,name=deny" json:"deny,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ACL_ChanACL) Reset()         { *m = ACL_ChanACL{} }
func (m *ACL_ChanACL) String() string { return proto.CompactTextString(m) }
func (*ACL_ChanACL) ProtoMessage()    {}
func (*ACL_ChanACL) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{13, 1}
}

func (m *ACL_ChanACL) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ACL_ChanACL.Unmarshal(m, b)
}
func (m *ACL_ChanACL) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ACL_ChanACL.Marshal(b, m, deterministic)
}
func (m *ACL_ChanACL) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ACL_ChanACL.Merge(m, src)
}
func (m *ACL_ChanACL) XXX_Size() int {
	return xxx_messageInfo_ACL_ChanACL.Size(m)
}
func (m *ACL_ChanACL) XXX_DiscardUnknown() {
	xxx_messageInfo_ACL_ChanACL.DiscardUnknown(m)
}

var xxx_messageInfo_ACL_ChanACL proto.InternalMessageInfo

const Default_ACL_ChanACL_ApplyHere bool = true
const Default_ACL_ChanACL_ApplySubs bool = true
const Default_ACL_ChanACL_Inherited bool = true

func (m *ACL_ChanACL) GetApplyHere() bool {
	if m != nil && m.ApplyHere != nil {
		return *m.ApplyHere
	}
	return Default_ACL_ChanACL_ApplyHere
}

func (m *ACL_ChanACL) GetApplySubs() bool {
	if m != nil && m.ApplySubs != nil {
		return *m.ApplySubs
	}
	return Default_ACL_ChanACL_ApplySubs
}

func (m *ACL_ChanACL) GetInherited() bool {
	if m != nil && m.Inherited != nil {
		return *m.Inherited
	}
	return Default_ACL_ChanACL_Inherited
}

func (m *ACL_ChanACL) GetUserId() uint32 {
	if m != nil && m.UserId != nil {
		return *m.UserId
	}
	return 0
}

func (m *ACL_ChanACL) GetGroup() string {
	if m != nil && m.Group != nil {
		return *m.Group
	}
	return ""
}

func (m *ACL_ChanACL) GetGrant() uint32 {
	if m != nil && m.Grant != nil {
		return *m.Grant
	}
	return 0
}

func (m *ACL_ChanACL) GetDeny() uint32 {
	if m != nil && m.Deny != nil {
		return *m.Deny
	}
	return 0
}

// Client may use this message to refresh its registered user information. The
// client should fill the IDs or Names of the users it wants to refresh. The
// server fills the missing parts and sends the message back.
type QueryUsers struct {
	// user_ids.
	Ids []uint32 `protobuf:"varint,1,rep,name=ids" json:"ids,omitempty"`
	// User names in the same order as ids.
	Names                []string `protobuf:"bytes,2,rep,name=names" json:"names,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *QueryUsers) Reset()         { *m = QueryUsers{} }
func (m *QueryUsers) String() string { return proto.CompactTextString(m) }
func (*QueryUsers) ProtoMessage()    {}
func (*QueryUsers) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{14}
}

func (m *QueryUsers) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_QueryUsers.Unmarshal(m, b)
}
func (m *QueryUsers) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_QueryUsers.Marshal(b, m, deterministic)
}
func (m *QueryUsers) XXX_Merge(src proto.Message) {
	xxx_messageInfo_QueryUsers.Merge(m, src)
}
func (m *QueryUsers) XXX_Size() int {
	return xxx_messageInfo_QueryUsers.Size(m)
}
func (m *QueryUsers) XXX_DiscardUnknown() {
	xxx_messageInfo_QueryUsers.DiscardUnknown(m)
}

var xxx_messageInfo_QueryUsers proto.InternalMessageInfo

func (m *QueryUsers) GetIds() []uint32 {
	if m != nil {
		return m.Ids
	}
	return nil
}

func (m *QueryUsers) GetNames() []string {
	if m != nil {
		return m.Names
	}
	return nil
}

// Used to initialize and resync the UDP encryption. Either side may request a
// resync by sending the message without any values filled. The resync is
// performed by sending the message with only the client or server nonce
// filled.
type CryptSetup struct {
	// Encryption key.
	Key []byte `protobuf:"bytes,1,opt,name=key" json:"key,omitempty"`
	// Client nonce.
	ClientNonce []byte `protobuf:"bytes,2,opt,name=client_nonce,json=clientNonce" json:"client_nonce,omitempty"`
	// Server nonce.
	ServerNonce          []byte   `protobuf:"bytes,3,opt,name=server_nonce,json=serverNonce" json:"server_nonce,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CryptSetup) Reset()         { *m = CryptSetup{} }
func (m *CryptSetup) String() string { return proto.CompactTextString(m) }
func (*CryptSetup) ProtoMessage()    {}
func (*CryptSetup) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{15}
}

func (m *CryptSetup) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CryptSetup.Unmarshal(m, b)
}
func (m *CryptSetup) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CryptSetup.Marshal(b, m, deterministic)
}
func (m *CryptSetup) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CryptSetup.Merge(m, src)
}
func (m *CryptSetup) XXX_Size() int {
	return xxx_messageInfo_CryptSetup.Size(m)
}
func (m *CryptSetup) XXX_DiscardUnknown() {
	xxx_messageInfo_CryptSetup.DiscardUnknown(m)
}

var xxx_messageInfo_CryptSetup proto.InternalMessageInfo

func (m *CryptSetup) GetKey() []byte {
	if m != nil {
		return m.Key
	}
	return nil
}

func (m *CryptSetup) GetClientNonce() []byte {
	if m != nil {
		return m.ClientNonce
	}
	return nil
}

func (m *CryptSetup) GetServerNonce() []byte {
	if m != nil {
		return m.ServerNonce
	}
	return nil
}

// Used to add or remove custom context menu item on client-side.
type ContextActionModify struct {
	// The action identifier. Used later to initiate an action.
	Action *string `protobuf:"bytes,1,req,name=action" json:"action,omitempty"`
	// The display name of the action.
	Text *string `protobuf:"bytes,2,opt,name=text" json:"text,omitempty"`
	// Context bit flags defining where the action should be displayed.
	// Flags can be OR-ed to combine different types.
	Context *uint32 `protobuf:"varint,3,opt,name=context" json:"context,omitempty"`
	// Choose either to add or to remove the context action.
	// Note: This field only exists after Mumble 1.2.4-beta1 release.
	//       The message will be recognized as Add regardless of this field
	//       before said release.
	Operation            *ContextActionModify_Operation `protobuf:"varint,4,opt,name=operation,enum=MumbleProto.ContextActionModify_Operation" json:"operation,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                       `json:"-"`
	XXX_unrecognized     []byte                         `json:"-"`
	XXX_sizecache        int32                          `json:"-"`
}

func (m *ContextActionModify) Reset()         { *m = ContextActionModify{} }
func (m *ContextActionModify) String() string { return proto.CompactTextString(m) }
func (*ContextActionModify) ProtoMessage()    {}
func (*ContextActionModify) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{16}
}

func (m *ContextActionModify) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ContextActionModify.Unmarshal(m, b)
}
func (m *ContextActionModify) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ContextActionModify.Marshal(b, m, deterministic)
}
func (m *ContextActionModify) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ContextActionModify.Merge(m, src)
}
func (m *ContextActionModify) XXX_Size() int {
	return xxx_messageInfo_ContextActionModify.Size(m)
}
func (m *ContextActionModify) XXX_DiscardUnknown() {
	xxx_messageInfo_ContextActionModify.DiscardUnknown(m)
}

var xxx_messageInfo_ContextActionModify proto.InternalMessageInfo

func (m *ContextActionModify) GetAction() string {
	if m != nil && m.Action != nil {
		return *m.Action
	}
	return ""
}

func (m *ContextActionModify) GetText() string {
	if m != nil && m.Text != nil {
		return *m.Text
	}
	return ""
}

func (m *ContextActionModify) GetContext() uint32 {
	if m != nil && m.Context != nil {
		return *m.Context
	}
	return 0
}

func (m *ContextActionModify) GetOperation() ContextActionModify_Operation {
	if m != nil && m.Operation != nil {
		return *m.Operation
	}
	return ContextActionModify_Add
}

// Sent by the client when it wants to initiate a Context action.
type ContextAction struct {
	// The target User for the action, identified by session.
	Session *uint32 `protobuf:"varint,1,opt,name=session" json:"session,omitempty"`
	// The target Channel for the action, identified by channel_id.
	ChannelId *uint32 `protobuf:"varint,2,opt,name=channel_id,json=channelId" json:"channel_id,omitempty"`
	// The action that should be executed.
	Action               *string  `protobuf:"bytes,3,req,name=action" json:"action,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ContextAction) Reset()         { *m = ContextAction{} }
func (m *ContextAction) String() string { return proto.CompactTextString(m) }
func (*ContextAction) ProtoMessage()    {}
func (*ContextAction) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{17}
}

func (m *ContextAction) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ContextAction.Unmarshal(m, b)
}
func (m *ContextAction) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ContextAction.Marshal(b, m, deterministic)
}
func (m *ContextAction) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ContextAction.Merge(m, src)
}
func (m *ContextAction) XXX_Size() int {
	return xxx_messageInfo_ContextAction.Size(m)
}
func (m *ContextAction) XXX_DiscardUnknown() {
	xxx_messageInfo_ContextAction.DiscardUnknown(m)
}

var xxx_messageInfo_ContextAction proto.InternalMessageInfo

func (m *ContextAction) GetSession() uint32 {
	if m != nil && m.Session != nil {
		return *m.Session
	}
	return 0
}

func (m *ContextAction) GetChannelId() uint32 {
	if m != nil && m.ChannelId != nil {
		return *m.ChannelId
	}
	return 0
}

func (m *ContextAction) GetAction() string {
	if m != nil && m.Action != nil {
		return *m.Action
	}
	return ""
}

// Lists the registered users.
type UserList struct {
	// A list of registered users.
	Users                []*UserList_User `protobuf:"bytes,1,rep,name=users" json:"users,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *UserList) Reset()         { *m = UserList{} }
func (m *UserList) String() string { return proto.CompactTextString(m) }
func (*UserList) ProtoMessage()    {}
func (*UserList) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{18}
}

func (m *UserList) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UserList.Unmarshal(m, b)
}
func (m *UserList) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UserList.Marshal(b, m, deterministic)
}
func (m *UserList) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UserList.Merge(m, src)
}
func (m *UserList) XXX_Size() int {
	return xxx_messageInfo_UserList.Size(m)
}
func (m *UserList) XXX_DiscardUnknown() {
	xxx_messageInfo_UserList.DiscardUnknown(m)
}

var xxx_messageInfo_UserList proto.InternalMessageInfo

func (m *UserList) GetUsers() []*UserList_User {
	if m != nil {
		return m.Users
	}
	return nil
}

type UserList_User struct {
	// Registered user ID.
	UserId *uint32 `protobuf:"varint,1,req,name=user_id,json=userId" json:"user_id,omitempty"`
	// Registered user name.
	Name                 *string  `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"`
	LastSeen             *string  `protobuf:"bytes,3,opt,name=last_seen,json=lastSeen" json:"last_seen,omitempty"`
	LastChannel          *uint32  `protobuf:"varint,4,opt,name=last_channel,json=lastChannel" json:"last_channel,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UserList_User) Reset()         { *m = UserList_User{} }
func (m *UserList_User) String() string { return proto.CompactTextString(m) }
func (*UserList_User) ProtoMessage()    {}
func (*UserList_User) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{18, 0}
}

func (m *UserList_User) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UserList_User.Unmarshal(m, b)
}
func (m *UserList_User) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UserList_User.Marshal(b, m, deterministic)
}
func (m *UserList_User) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UserList_User.Merge(m, src)
}
func (m *UserList_User) XXX_Size() int {
	return xxx_messageInfo_UserList_User.Size(m)
}
func (m *UserList_User) XXX_DiscardUnknown() {
	xxx_messageInfo_UserList_User.DiscardUnknown(m)
}

var xxx_messageInfo_UserList_User proto.InternalMessageInfo

func (m *UserList_User) GetUserId() uint32 {
	if m != nil && m.UserId != nil {
		return *m.UserId
	}
	return 0
}

func (m *UserList_User) GetName() string {
	if m != nil && m.Name != nil {
		return *m.Name
	}
	return ""
}

func (m *UserList_User) GetLastSeen() string {
	if m != nil && m.LastSeen != nil {
		return *m.LastSeen
	}
	return ""
}

func (m *UserList_User) GetLastChannel() uint32 {
	if m != nil && m.LastChannel != nil {
		return *m.LastChannel
	}
	return 0
}

// Sent by the client when it wants to register or clear whisper targets.
//
// Note: The first available target ID is 1 as 0 is reserved for normal
// talking. Maximum target ID is 30.
type VoiceTarget struct {
	// Voice target ID.
	Id *uint32 `protobuf:"varint,1,opt,name=id" json:"id,omitempty"`
	// The receivers that this voice target includes.
	Targets              []*VoiceTarget_Target `protobuf:"bytes,2,rep,name=targets" json:"targets,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *VoiceTarget) Reset()         { *m = VoiceTarget{} }
func (m *VoiceTarget) String() string { return proto.CompactTextString(m) }
func (*VoiceTarget) ProtoMessage()    {}
func (*VoiceTarget) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{19}
}

func (m *VoiceTarget) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_VoiceTarget.Unmarshal(m, b)
}
func (m *VoiceTarget) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_VoiceTarget.Marshal(b, m, deterministic)
}
func (m *VoiceTarget) XXX_Merge(src proto.Message) {
	xxx_messageInfo_VoiceTarget.Merge(m, src)
}
func (m *VoiceTarget) XXX_Size() int {
	return xxx_messageInfo_VoiceTarget.Size(m)
}
func (m *VoiceTarget) XXX_DiscardUnknown() {
	xxx_messageInfo_VoiceTarget.DiscardUnknown(m)
}

var xxx_messageInfo_VoiceTarget proto.InternalMessageInfo

func (m *VoiceTarget) GetId() uint32 {
	if m != nil && m.Id != nil {
		return *m.Id
	}
	return 0
}

func (m *VoiceTarget) GetTargets() []*VoiceTarget_Target {
	if m != nil {
		return m.Targets
	}
	return nil
}

type VoiceTarget_Target struct {
	// Users that are included as targets.
	Session []uint32 `protobuf:"varint,1,rep,name=session" json:"session,omitempty"`
	// Channel that is included as a target.
	ChannelId *uint32 `protobuf:"varint,2,opt,name=channel_id,json=channelId" json:"channel_id,omitempty"`
	// ACL group that is included as a target.
	Group *string `protobuf:"bytes,3,opt,name=group" json:"group,omitempty"`
	// True if the voice should follow links from the specified channel.
	Links *bool `protobuf:"varint,4,opt,name=links,def=0" json:"links,omitempty"`
	// True if the voice should also be sent to children of the specific
	// channel.
	Children             *bool    `protobuf:"varint,5,opt,name=children,def=0" json:"children,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *VoiceTarget_Target) Reset()         { *m = VoiceTarget_Target{} }
func (m *VoiceTarget_Target) String() string { return proto.CompactTextString(m) }
func (*VoiceTarget_Target) ProtoMessage()    {}
func (*VoiceTarget_Target) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{19, 0}
}

func (m *VoiceTarget_Target) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_VoiceTarget_Target.Unmarshal(m, b)
}
func (m *VoiceTarget_Target) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_VoiceTarget_Target.Marshal(b, m, deterministic)
}
func (m *VoiceTarget_Target) XXX_Merge(src proto.Message) {
	xxx_messageInfo_VoiceTarget_Target.Merge(m, src)
}
func (m *VoiceTarget_Target) XXX_Size() int {
	return xxx_messageInfo_VoiceTarget_Target.Size(m)
}
func (m *VoiceTarget_Target) XXX_DiscardUnknown() {
	xxx_messageInfo_VoiceTarget_Target.DiscardUnknown(m)
}

var xxx_messageInfo_VoiceTarget_Target proto.InternalMessageInfo

const Default_VoiceTarget_Target_Links bool = false
const Default_VoiceTarget_Target_Children bool = false

func (m *VoiceTarget_Target) GetSession() []uint32 {
	if m != nil {
		return m.Session
	}
	return nil
}

func (m *VoiceTarget_Target) GetChannelId() uint32 {
	if m != nil && m.ChannelId != nil {
		return *m.ChannelId
	}
	return 0
}

func (m *VoiceTarget_Target) GetGroup() string {
	if m != nil && m.Group != nil {
		return *m.Group
	}
	return ""
}

func (m *VoiceTarget_Target) GetLinks() bool {
	if m != nil && m.Links != nil {
		return *m.Links
	}
	return Default_VoiceTarget_Target_Links
}

func (m *VoiceTarget_Target) GetChildren() bool {
	if m != nil && m.Children != nil {
		return *m.Children
	}
	return Default_VoiceTarget_Target_Children
}

// Sent by the client when it wants permissions for a certain channel. Sent by
// the server when it replies to the query or wants the user to resync all
// channel permissions.
type PermissionQuery struct {
	// channel_id of the channel for which the permissions are queried.
	ChannelId *uint32 `protobuf:"varint,1,opt,name=channel_id,json=channelId" json:"channel_id,omitempty"`
	// Channel permissions.
	Permissions *uint32 `protobuf:"varint,2,opt,name=permissions" json:"permissions,omitempty"`
	// True if the client should drop its current permission information for all
	// channels.
	Flush                *bool    `protobuf:"varint,3,opt,name=flush,def=0" json:"flush,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PermissionQuery) Reset()         { *m = PermissionQuery{} }
func (m *PermissionQuery) String() string { return proto.CompactTextString(m) }
func (*PermissionQuery) ProtoMessage()    {}
func (*PermissionQuery) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{20}
}

func (m *PermissionQuery) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PermissionQuery.Unmarshal(m, b)
}
func (m *PermissionQuery) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PermissionQuery.Marshal(b, m, deterministic)
}
func (m *PermissionQuery) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PermissionQuery.Merge(m, src)
}
func (m *PermissionQuery) XXX_Size() int {
	return xxx_messageInfo_PermissionQuery.Size(m)
}
func (m *PermissionQuery) XXX_DiscardUnknown() {
	xxx_messageInfo_PermissionQuery.DiscardUnknown(m)
}

var xxx_messageInfo_PermissionQuery proto.InternalMessageInfo

const Default_PermissionQuery_Flush bool = false

func (m *PermissionQuery) GetChannelId() uint32 {
	if m != nil && m.ChannelId != nil {
		return *m.ChannelId
	}
	return 0
}

func (m *PermissionQuery) GetPermissions() uint32 {
	if m != nil && m.Permissions != nil {
		return *m.Permissions
	}
	return 0
}

func (m *PermissionQuery) GetFlush() bool {
	if m != nil && m.Flush != nil {
		return *m.Flush
	}
	return Default_PermissionQuery_Flush
}

// Sent by the server to notify the users of the version of the CELT codec they
// should use. This may change during the connection when new users join.
type CodecVersion struct {
	// The version of the CELT Alpha codec.
	Alpha *int32 `protobuf:"varint,1,req,name=alpha" json:"alpha,omitempty"`
	// The version of the CELT Beta codec.
	Beta *int32 `protobuf:"varint,2,req,name=beta" json:"beta,omitempty"`
	// True if the user should prefer Alpha over Beta.
	PreferAlpha          *bool    `protobuf:"varint,3,req,name=prefer_alpha,json=preferAlpha,def=1" json:"prefer_alpha,omitempty"`
	Opus                 *bool    `protobuf:"varint,4,opt,name=opus,def=0" json:"opus,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *CodecVersion) Reset()         { *m = CodecVersion{} }
func (m *CodecVersion) String() string { return proto.CompactTextString(m) }
func (*CodecVersion) ProtoMessage()    {}
func (*CodecVersion) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{21}
}

func (m *CodecVersion) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_CodecVersion.Unmarshal(m, b)
}
func (m *CodecVersion) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_CodecVersion.Marshal(b, m, deterministic)
}
func (m *CodecVersion) XXX_Merge(src proto.Message) {
	xxx_messageInfo_CodecVersion.Merge(m, src)
}
func (m *CodecVersion) XXX_Size() int {
	return xxx_messageInfo_CodecVersion.Size(m)
}
func (m *CodecVersion) XXX_DiscardUnknown() {
	xxx_messageInfo_CodecVersion.DiscardUnknown(m)
}

var xxx_messageInfo_CodecVersion proto.InternalMessageInfo

const Default_CodecVersion_PreferAlpha bool = true
const Default_CodecVersion_Opus bool = false

func (m *CodecVersion) GetAlpha() int32 {
	if m != nil && m.Alpha != nil {
		return *m.Alpha
	}
	return 0
}

func (m *CodecVersion) GetBeta() int32 {
	if m != nil && m.Beta != nil {
		return *m.Beta
	}
	return 0
}

func (m *CodecVersion) GetPreferAlpha() bool {
	if m != nil && m.PreferAlpha != nil {
		return *m.PreferAlpha
	}
	return Default_CodecVersion_PreferAlpha
}

func (m *CodecVersion) GetOpus() bool {
	if m != nil && m.Opus != nil {
		return *m.Opus
	}
	return Default_CodecVersion_Opus
}

// Used to communicate user stats between the server and clients.
type UserStats struct {
	// User whose stats these are.
	Session *uint32 `protobuf:"varint,1,opt,name=session" json:"session,omitempty"`
	// True if the message contains only mutable stats (packets, ping).
	StatsOnly *bool `protobuf:"varint,2,opt,name=stats_only,json=statsOnly,def=0" json:"stats_only,omitempty"`
	// Full user certificate chain of the user certificate in DER format.
	Certificates [][]byte `protobuf:"bytes,3,rep,name=certificates" json:"certificates,omitempty"`
	// Packet statistics for packets received from the client.
	FromClient *UserStats_Stats `protobuf:"bytes,4,opt,name=from_client,json=fromClient" json:"from_client,omitempty"`
	// Packet statistics for packets sent by the server.
	FromServer *UserStats_Stats `protobuf:"bytes,5,opt,name=from_server,json=fromServer" json:"from_server,omitempty"`
	// Amount of UDP packets sent.
	UdpPackets *uint32 `protobuf:"varint,6,opt,name=udp_packets,json=udpPackets" json:"udp_packets,omitempty"`
	// Amount of TCP packets sent.
	TcpPackets *uint32 `protobuf:"varint,7,opt,name=tcp_packets,json=tcpPackets" json:"tcp_packets,omitempty"`
	// UDP ping average.
	UdpPingAvg *float32 `protobuf:"fixed32,8,opt,name=udp_ping_avg,json=udpPingAvg" json:"udp_ping_avg,omitempty"`
	// UDP ping variance.
	UdpPingVar *float32 `protobuf:"fixed32,9,opt,name=udp_ping_var,json=udpPingVar" json:"udp_ping_var,omitempty"`
	// TCP ping average.
	TcpPingAvg *float32 `protobuf:"fixed32,10,opt,name=tcp_ping_avg,json=tcpPingAvg" json:"tcp_ping_avg,omitempty"`
	// TCP ping variance.
	TcpPingVar *float32 `protobuf:"fixed32,11,opt,name=tcp_ping_var,json=tcpPingVar" json:"tcp_ping_var,omitempty"`
	// Client version.
	Version *Version `protobuf:"bytes,12,opt,name=version" json:"version,omitempty"`
	// A list of CELT bitstream version constants supported by the client of this
	// user.
	CeltVersions []int32 `protobuf:"varint,13,rep,name=celt_versions,json=celtVersions" json:"celt_versions,omitempty"`
	// Client IP address.
	Address []byte `protobuf:"bytes,14,opt,name=address" json:"address,omitempty"`
	// Bandwidth used by this client.
	Bandwidth *uint32 `protobuf:"varint,15,opt,name=bandwidth" json:"bandwidth,omitempty"`
	// Connection duration.
	Onlinesecs *uint32 `protobuf:"varint,16,opt,name=onlinesecs" json:"onlinesecs,omitempty"`
	// Duration since last activity.
	Idlesecs *uint32 `protobuf:"varint,17,opt,name=idlesecs" json:"idlesecs,omitempty"`
	// True if the user has a strong certificate.
	StrongCertificate    *bool    `protobuf:"varint,18,opt,name=strong_certificate,json=strongCertificate,def=0" json:"strong_certificate,omitempty"`
	Opus                 *bool    `protobuf:"varint,19,opt,name=opus,def=0" json:"opus,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UserStats) Reset()         { *m = UserStats{} }
func (m *UserStats) String() string { return proto.CompactTextString(m) }
func (*UserStats) ProtoMessage()    {}
func (*UserStats) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{22}
}

func (m *UserStats) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UserStats.Unmarshal(m, b)
}
func (m *UserStats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UserStats.Marshal(b, m, deterministic)
}
func (m *UserStats) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UserStats.Merge(m, src)
}
func (m *UserStats) XXX_Size() int {
	return xxx_messageInfo_UserStats.Size(m)
}
func (m *UserStats) XXX_DiscardUnknown() {
	xxx_messageInfo_UserStats.DiscardUnknown(m)
}

var xxx_messageInfo_UserStats proto.InternalMessageInfo

const Default_UserStats_StatsOnly bool = false
const Default_UserStats_StrongCertificate bool = false
const Default_UserStats_Opus bool = false

func (m *UserStats) GetSession() uint32 {
	if m != nil && m.Session != nil {
		return *m.Session
	}
	return 0
}

func (m *UserStats) GetStatsOnly() bool {
	if m != nil && m.StatsOnly != nil {
		return *m.StatsOnly
	}
	return Default_UserStats_StatsOnly
}

func (m *UserStats) GetCertificates() [][]byte {
	if m != nil {
		return m.Certificates
	}
	return nil
}

func (m *UserStats) GetFromClient() *UserStats_Stats {
	if m != nil {
		return m.FromClient
	}
	return nil
}

func (m *UserStats) GetFromServer() *UserStats_Stats {
	if m != nil {
		return m.FromServer
	}
	return nil
}

func (m *UserStats) GetUdpPackets() uint32 {
	if m != nil && m.UdpPackets != nil {
		return *m.UdpPackets
	}
	return 0
}

func (m *UserStats) GetTcpPackets() uint32 {
	if m != nil && m.TcpPackets != nil {
		return *m.TcpPackets
	}
	return 0
}

func (m *UserStats) GetUdpPingAvg() float32 {
	if m != nil && m.UdpPingAvg != nil {
		return *m.UdpPingAvg
	}
	return 0
}

func (m *UserStats) GetUdpPingVar() float32 {
	if m != nil && m.UdpPingVar != nil {
		return *m.UdpPingVar
	}
	return 0
}

func (m *UserStats) GetTcpPingAvg() float32 {
	if m != nil && m.TcpPingAvg != nil {
		return *m.TcpPingAvg
	}
	return 0
}

func (m *UserStats) GetTcpPingVar() float32 {
	if m != nil && m.TcpPingVar != nil {
		return *m.TcpPingVar
	}
	return 0
}

func (m *UserStats) GetVersion() *Version {
	if m != nil {
		return m.Version
	}
	return nil
}

func (m *UserStats) GetCeltVersions() []int32 {
	if m != nil {
		return m.CeltVersions
	}
	return nil
}

func (m *UserStats) GetAddress() []byte {
	if m != nil {
		return m.Address
	}
	return nil
}

func (m *UserStats) GetBandwidth() uint32 {
	if m != nil && m.Bandwidth != nil {
		return *m.Bandwidth
	}
	return 0
}

func (m *UserStats) GetOnlinesecs() uint32 {
	if m != nil && m.Onlinesecs != nil {
		return *m.Onlinesecs
	}
	return 0
}

func (m *UserStats) GetIdlesecs() uint32 {
	if m != nil && m.Idlesecs != nil {
		return *m.Idlesecs
	}
	return 0
}

func (m *UserStats) GetStrongCertificate() bool {
	if m != nil && m.StrongCertificate != nil {
		return *m.StrongCertificate
	}
	return Default_UserStats_StrongCertificate
}

func (m *UserStats) GetOpus() bool {
	if m != nil && m.Opus != nil {
		return *m.Opus
	}
	return Default_UserStats_Opus
}

type UserStats_Stats struct {
	// The amount of good packets received.
	Good *uint32 `protobuf:"varint,1,opt,name=good" json:"good,omitempty"`
	// The amount of late packets received.
	Late *uint32 `protobuf:"varint,2,opt,name=late" json:"late,omitempty"`
	// The amount of packets never received.
	Lost *uint32 `protobuf:"varint,3,opt,name=lost" json:"lost,omitempty"`
	// The amount of nonce resyncs.
	Resync               *uint32  `protobuf:"varint,4,opt,name=resync" json:"resync,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UserStats_Stats) Reset()         { *m = UserStats_Stats{} }
func (m *UserStats_Stats) String() string { return proto.CompactTextString(m) }
func (*UserStats_Stats) ProtoMessage()    {}
func (*UserStats_Stats) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{22, 0}
}

func (m *UserStats_Stats) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_UserStats_Stats.Unmarshal(m, b)
}
func (m *UserStats_Stats) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_UserStats_Stats.Marshal(b, m, deterministic)
}
func (m *UserStats_Stats) XXX_Merge(src proto.Message) {
	xxx_messageInfo_UserStats_Stats.Merge(m, src)
}
func (m *UserStats_Stats) XXX_Size() int {
	return xxx_messageInfo_UserStats_Stats.Size(m)
}
func (m *UserStats_Stats) XXX_DiscardUnknown() {
	xxx_messageInfo_UserStats_Stats.DiscardUnknown(m)
}

var xxx_messageInfo_UserStats_Stats proto.InternalMessageInfo

func (m *UserStats_Stats) GetGood() uint32 {
	if m != nil && m.Good != nil {
		return *m.Good
	}
	return 0
}

func (m *UserStats_Stats) GetLate() uint32 {
	if m != nil && m.Late != nil {
		return *m.Late
	}
	return 0
}

func (m *UserStats_Stats) GetLost() uint32 {
	if m != nil && m.Lost != nil {
		return *m.Lost
	}
	return 0
}

func (m *UserStats_Stats) GetResync() uint32 {
	if m != nil && m.Resync != nil {
		return *m.Resync
	}
	return 0
}

// Used by the client to request binary data from the server. By default large
// comments or textures are not sent within standard messages but instead the
// hash is. If the client does not recognize the hash it may request the
// resource when it needs it. The client does so by sending a RequestBlob
// message with the correct fields filled with the user sessions or channel_ids
// it wants to receive. The server replies to this by sending a new
// UserState/ChannelState message with the resources filled even if they would
// normally be transmitted as hashes.
type RequestBlob struct {
	// sessions of the requested UserState textures.
	SessionTexture []uint32 `protobuf:"varint,1,rep,name=session_texture,json=sessionTexture" json:"session_texture,omitempty"`
	// sessions of the requested UserState comments.
	SessionComment []uint32 `protobuf:"varint,2,rep,name=session_comment,json=sessionComment" json:"session_comment,omitempty"`
	// channel_ids of the requested ChannelState descriptions.
	ChannelDescription   []uint32 `protobuf:"varint,3,rep,name=channel_description,json=channelDescription" json:"channel_description,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *RequestBlob) Reset()         { *m = RequestBlob{} }
func (m *RequestBlob) String() string { return proto.CompactTextString(m) }
func (*RequestBlob) ProtoMessage()    {}
func (*RequestBlob) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{23}
}

func (m *RequestBlob) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_RequestBlob.Unmarshal(m, b)
}
func (m *RequestBlob) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_RequestBlob.Marshal(b, m, deterministic)
}
func (m *RequestBlob) XXX_Merge(src proto.Message) {
	xxx_messageInfo_RequestBlob.Merge(m, src)
}
func (m *RequestBlob) XXX_Size() int {
	return xxx_messageInfo_RequestBlob.Size(m)
}
func (m *RequestBlob) XXX_DiscardUnknown() {
	xxx_messageInfo_RequestBlob.DiscardUnknown(m)
}

var xxx_messageInfo_RequestBlob proto.InternalMessageInfo

func (m *RequestBlob) GetSessionTexture() []uint32 {
	if m != nil {
		return m.SessionTexture
	}
	return nil
}

func (m *RequestBlob) GetSessionComment() []uint32 {
	if m != nil {
		return m.SessionComment
	}
	return nil
}

func (m *RequestBlob) GetChannelDescription() []uint32 {
	if m != nil {
		return m.ChannelDescription
	}
	return nil
}

// Sent by the server when it informs the clients on server configuration
// details.
type ServerConfig struct {
	// The maximum bandwidth the clients should use.
	MaxBandwidth *uint32 `protobuf:"varint,1,opt,name=max_bandwidth,json=maxBandwidth" json:"max_bandwidth,omitempty"`
	// Server welcome text.
	WelcomeText *string `protobuf:"bytes,2,opt,name=welcome_text,json=welcomeText" json:"welcome_text,omitempty"`
	// True if the server allows HTML.
	AllowHtml *bool `protobuf:"varint,3,opt,name=allow_html,json=allowHtml" json:"allow_html,omitempty"`
	// Maximum text message length.
	MessageLength *uint32 `protobuf:"varint,4,opt,name=message_length,json=messageLength" json:"message_length,omitempty"`
	// Maximum image message length.
	ImageMessageLength *uint32 `protobuf:"varint,5,opt,name=image_message_length,json=imageMessageLength" json:"image_message_length,omitempty"`
	// The maximum number of users allowed on the server.
	MaxUsers *uint32 `protobuf:"varint,6,opt,name=max_users,json=maxUsers" json:"max_users,omitempty"`
	// Whether using Mumble's recording feature is allowed on the server
	RecordingAllowed     *bool    `protobuf:"varint,7,opt,name=recording_allowed,json=recordingAllowed" json:"recording_allowed,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ServerConfig) Reset()         { *m = ServerConfig{} }
func (m *ServerConfig) String() string { return proto.CompactTextString(m) }
func (*ServerConfig) ProtoMessage()    {}
func (*ServerConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{24}
}

func (m *ServerConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_ServerConfig.Unmarshal(m, b)
}
func (m *ServerConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_ServerConfig.Marshal(b, m, deterministic)
}
func (m *ServerConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_ServerConfig.Merge(m, src)
}
func (m *ServerConfig) XXX_Size() int {
	return xxx_messageInfo_ServerConfig.Size(m)
}
func (m *ServerConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_ServerConfig.DiscardUnknown(m)
}

var xxx_messageInfo_ServerConfig proto.InternalMessageInfo

func (m *ServerConfig) GetMaxBandwidth() uint32 {
	if m != nil && m.MaxBandwidth != nil {
		return *m.MaxBandwidth
	}
	return 0
}

func (m *ServerConfig) GetWelcomeText() string {
	if m != nil && m.WelcomeText != nil {
		return *m.WelcomeText
	}
	return ""
}

func (m *ServerConfig) GetAllowHtml() bool {
	if m != nil && m.AllowHtml != nil {
		return *m.AllowHtml
	}
	return false
}

func (m *ServerConfig) GetMessageLength() uint32 {
	if m != nil && m.MessageLength != nil {
		return *m.MessageLength
	}
	return 0
}

func (m *ServerConfig) GetImageMessageLength() uint32 {
	if m != nil && m.ImageMessageLength != nil {
		return *m.ImageMessageLength
	}
	return 0
}

func (m *ServerConfig) GetMaxUsers() uint32 {
	if m != nil && m.MaxUsers != nil {
		return *m.MaxUsers
	}
	return 0
}

func (m *ServerConfig) GetRecordingAllowed() bool {
	if m != nil && m.RecordingAllowed != nil {
		return *m.RecordingAllowed
	}
	return false
}

// Sent by the server to inform the clients of suggested client configuration
// specified by the server administrator.
type SuggestConfig struct {
	// Suggested client version.
	Version *uint32 `protobuf:"varint,1,opt,name=version" json:"version,omitempty"`
	// True if the administrator suggests positional audio to be used on this
	// server.
	Positional *bool `protobuf:"varint,2,opt,name=positional" json:"positional,omitempty"`
	// True if the administrator suggests push to talk to be used on this server.
	PushToTalk           *bool    `protobuf:"varint,3,opt,name=push_to_talk,json=pushToTalk" json:"push_to_talk,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *SuggestConfig) Reset()         { *m = SuggestConfig{} }
func (m *SuggestConfig) String() string { return proto.CompactTextString(m) }
func (*SuggestConfig) ProtoMessage()    {}
func (*SuggestConfig) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{25}
}

func (m *SuggestConfig) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_SuggestConfig.Unmarshal(m, b)
}
func (m *SuggestConfig) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_SuggestConfig.Marshal(b, m, deterministic)
}
func (m *SuggestConfig) XXX_Merge(src proto.Message) {
	xxx_messageInfo_SuggestConfig.Merge(m, src)
}
func (m *SuggestConfig) XXX_Size() int {
	return xxx_messageInfo_SuggestConfig.Size(m)
}
func (m *SuggestConfig) XXX_DiscardUnknown() {
	xxx_messageInfo_SuggestConfig.DiscardUnknown(m)
}

var xxx_messageInfo_SuggestConfig proto.InternalMessageInfo

func (m *SuggestConfig) GetVersion() uint32 {
	if m != nil && m.Version != nil {
		return *m.Version
	}
	return 0
}

func (m *SuggestConfig) GetPositional() bool {
	if m != nil && m.Positional != nil {
		return *m.Positional
	}
	return false
}

func (m *SuggestConfig) GetPushToTalk() bool {
	if m != nil && m.PushToTalk != nil {
		return *m.PushToTalk
	}
	return false
}

// Used to send plugin messages between clients
type PluginDataTransmission struct {
	// The session ID of the client this message was sent from
	SenderSession *uint32 `protobuf:"varint,1,opt,name=senderSession" json:"senderSession,omitempty"`
	// The session IDs of the clients that should receive this message
	ReceiverSessions []uint32 `protobuf:"varint,2,rep,packed,name=receiverSessions" json:"receiverSessions,omitempty"`
	// The data that is sent
	Data []byte `protobuf:"bytes,3,opt,name=data" json:"data,omitempty"`
	// The ID of the sent data. This will be used by plugins to check whether they will
	// process it or not
	DataID               *string  `protobuf:"bytes,4,opt,name=dataID" json:"dataID,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PluginDataTransmission) Reset()         { *m = PluginDataTransmission{} }
func (m *PluginDataTransmission) String() string { return proto.CompactTextString(m) }
func (*PluginDataTransmission) ProtoMessage()    {}
func (*PluginDataTransmission) Descriptor() ([]byte, []int) {
	return fileDescriptor_56c09c2dce0fb003, []int{26}
}

func (m *PluginDataTransmission) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PluginDataTransmission.Unmarshal(m, b)
}
func (m *PluginDataTransmission) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PluginDataTransmission.Marshal(b, m, deterministic)
}
func (m *PluginDataTransmission) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PluginDataTransmission.Merge(m, src)
}
func (m *PluginDataTransmission) XXX_Size() int {
	return xxx_messageInfo_PluginDataTransmission.Size(m)
}
func (m *PluginDataTransmission) XXX_DiscardUnknown() {
	xxx_messageInfo_PluginDataTransmission.DiscardUnknown(m)
}

var xxx_messageInfo_PluginDataTransmission proto.InternalMessageInfo

func (m *PluginDataTransmission) GetSenderSession() uint32 {
	if m != nil && m.SenderSession != nil {
		return *m.SenderSession
	}
	return 0
}

func (m *PluginDataTransmission) GetReceiverSessions() []uint32 {
	if m != nil {
		return m.ReceiverSessions
	}
	return nil
}

func (m *PluginDataTransmission) GetData() []byte {
	if m != nil {
		return m.Data
	}
	return nil
}

func (m *PluginDataTransmission) GetDataID() string {
	if m != nil && m.DataID != nil {
		return *m.DataID
	}
	return ""
}

func init() {
	proto.RegisterEnum("MumbleProto.Reject_RejectType", Reject_RejectType_name, Reject_RejectType_value)
	proto.RegisterEnum("MumbleProto.PermissionDenied_DenyType", PermissionDenied_DenyType_name, PermissionDenied_DenyType_value)
	proto.RegisterEnum("MumbleProto.ContextActionModify_Context", ContextActionModify_Context_name, ContextActionModify_Context_value)
	proto.RegisterEnum("MumbleProto.ContextActionModify_Operation", ContextActionModify_Operation_name, ContextActionModify_Operation_value)
	proto.RegisterType((*Version)(nil), "MumbleProto.Version")
	proto.RegisterType((*UDPTunnel)(nil), "MumbleProto.UDPTunnel")
	proto.RegisterType((*Authenticate)(nil), "MumbleProto.Authenticate")
	proto.RegisterType((*Ping)(nil), "MumbleProto.Ping")
	proto.RegisterType((*Reject)(nil), "MumbleProto.Reject")
	proto.RegisterType((*ServerSync)(nil), "MumbleProto.ServerSync")
	proto.RegisterType((*ChannelRemove)(nil), "MumbleProto.ChannelRemove")
	proto.RegisterType((*ChannelState)(nil), "MumbleProto.ChannelState")
	proto.RegisterType((*UserRemove)(nil), "MumbleProto.UserRemove")
	proto.RegisterType((*UserState)(nil), "MumbleProto.UserState")
	proto.RegisterType((*BanList)(nil), "MumbleProto.BanList")
	proto.RegisterType((*BanList_BanEntry)(nil), "MumbleProto.BanList.BanEntry")
	proto.RegisterType((*TextMessage)(nil), "MumbleProto.TextMessage")
	proto.RegisterType((*PermissionDenied)(nil), "MumbleProto.PermissionDenied")
	proto.RegisterType((*ACL)(nil), "MumbleProto.ACL")
	proto.RegisterType((*ACL_ChanGroup)(nil), "MumbleProto.ACL.ChanGroup")
	proto.RegisterType((*ACL_ChanACL)(nil), "MumbleProto.ACL.ChanACL")
	proto.RegisterType((*QueryUsers)(nil), "MumbleProto.QueryUsers")
	proto.RegisterType((*CryptSetup)(nil), "MumbleProto.CryptSetup")
	proto.RegisterType((*ContextActionModify)(nil), "MumbleProto.ContextActionModify")
	proto.RegisterType((*ContextAction)(nil), "MumbleProto.ContextAction")
	proto.RegisterType((*UserList)(nil), "MumbleProto.UserList")
	proto.RegisterType((*UserList_User)(nil), "MumbleProto.UserList.User")
	proto.RegisterType((*VoiceTarget)(nil), "MumbleProto.VoiceTarget")
	proto.RegisterType((*VoiceTarget_Target)(nil), "MumbleProto.VoiceTarget.Target")
	proto.RegisterType((*PermissionQuery)(nil), "MumbleProto.PermissionQuery")
	proto.RegisterType((*CodecVersion)(nil), "MumbleProto.CodecVersion")
	proto.RegisterType((*UserStats)(nil), "MumbleProto.UserStats")
	proto.RegisterType((*UserStats_Stats)(nil), "MumbleProto.UserStats.Stats")
	proto.RegisterType((*RequestBlob)(nil), "MumbleProto.RequestBlob")
	proto.RegisterType((*ServerConfig)(nil), "MumbleProto.ServerConfig")
	proto.RegisterType((*SuggestConfig)(nil), "MumbleProto.SuggestConfig")
	proto.RegisterType((*PluginDataTransmission)(nil), "MumbleProto.PluginDataTransmission")
}

func init() {
	proto.RegisterFile("Mumble.proto", fileDescriptor_56c09c2dce0fb003)
}

var fileDescriptor_56c09c2dce0fb003 = []byte{
	// 2665 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x59, 0xcd, 0x6e, 0xe4, 0xc6,
	0xf1, 0x37, 0xe7, 0x7b, 0x6a, 0x66, 0x24, 0xaa, 0xa5, 0x5d, 0xcf, 0x5f, 0xf6, 0xda, 0x32, 0xd7,
	0x1f, 0xf2, 0xdf, 0x86, 0xe2, 0x08, 0x46, 0x10, 0x1b, 0xc8, 0x41, 0x2b, 0xd9, 0x91, 0x10, 0x69,
	0xad, 0x50, 0xda, 0xf5, 0x21, 0x07, 0xa6, 0x45, 0xb6, 0x66, 0x18, 0x71, 0x48, 0x9a, 0xdd, 0xd4,
	0xee, 0x00, 0x39, 0x26, 0xb9, 0xc6, 0xb7, 0x04, 0x39, 0xe4, 0x01, 0x7c, 0x30, 0x90, 0x57, 0xc8,
	0x13, 0x04, 0xb9, 0xe6, 0x96, 0x47, 0x08, 0x90, 0x7b, 0x50, 0xd5, 0xcd, 0x2f, 0x49, 0xeb, 0x75,
	0xae, 0xb9, 0x68, 0xba, 0x7e, 0x55, 0xdd, 0x5d, 0xac, 0xae, 0xaa, 0xae, 0x6a, 0xc1, 0xf8, 0x24,
	0x5f, 0x5c, 0x44, 0x62, 0x27, 0xcd, 0x12, 0x95, 0xb0, 0x91, 0xa6, 0x4e, 0x91, 0x70, 0x22, 0xe8,
	0x3f, 0x15, 0x99, 0x0c, 0x93, 0x98, 0x4d, 0xa1, 0x7f, 0xad, 0x87, 0x53, 0x6b, 0xcb, 0xda, 0x9e,
	0xb8, 0x05, 0x89, 0x9c, 0x4c, 0x44, 0x82, 0x4b, 0x31, 0x6d, 0x6d, 0x59, 0xdb, 0x43, 0xb7, 0x20,
	0xd9, 0x0a, 0xb4, 0x12, 0x39, 0x6d, 0x13, 0xd8, 0x4a, 0x24, 0x7b, 0x00, 0x90, 0x48, 0xaf, 0x58,
	0xa6, 0x43, 0xf8, 0x30, 0x91, 0x66, 0x0b, 0xe7, 0x21, 0x0c, 0x9f, 0x1c, 0x9c, 0x9e, 0xe7, 0x71,
	0x2c, 0x22, 0x76, 0x1f, 0x7a, 0x29, 0xf7, 0xaf, 0x84, 0x9a, 0x5a, 0x5b, 0xad, 0xed, 0xb1, 0x6b,
	0x28, 0xe7, 0xcf, 0x16, 0x8c, 0xf7, 0x72, 0x35, 0x17, 0xb1, 0x0a, 0x7d, 0xae, 0x04, 0xdb, 0x84,
	0x41, 0x2e, 0x45, 0x16, 0xf3, 0x85, 0x20, 0xcd, 0x86, 0x6e, 0x49, 0x23, 0x2f, 0xe5, 0x52, 0x3e,
	0x4b, 0xb2, 0xc0, 0xe8, 0x56, 0xd2, 0xb8, 0x81, 0x4a, 0xae, 0x44, 0x8c, 0x0a, 0xb6, 0xb7, 0x87,
	0xae, 0xa1, 0xd8, 0x43, 0x98, 0xf8, 0x22, 0x52, 0x85, 0x9a, 0x72, 0xda, 0xd9, 0x6a, 0x6f, 0x77,
	0xdd, 0x31, 0x82, 0x46, 0x53, 0xc9, 0xfe, 0x0f, 0x3a, 0x49, 0x9a, 0xcb, 0x69, 0x77, 0xcb, 0xda,
	0x1e, 0x7c, 0xda, 0xbd, 0xe4, 0x91, 0x14, 0x2e, 0x41, 0xce, 0x5f, 0x5b, 0xd0, 0x39, 0x0d, 0xe3,
	0x19, 0x7b, 0x1d, 0x86, 0x2a, 0x5c, 0x08, 0xa9, 0xf8, 0x22, 0x25, 0xcd, 0x3a, 0x6e, 0x05, 0x30,
	0x06, 0x9d, 0x59, 0x92, 0x68, 0xb5, 0x26, 0x2e, 0x8d, 0x11, 0x8b, 0xb8, 0x12, 0x64, 0xb1, 0x89,
	0x4b, 0x63, 0xc2, 0x12, 0xa9, 0xc8, 0x5a, 0x88, 0x25, 0x52, 0xa1, 0xea, 0x99, 0x90, 0xcb, 0xd8,
	0xa7, 0xfd, 0x27, 0xae, 0xa1, 0xd8, 0x9b, 0x30, 0xca, 0x83, 0xd4, 0xd3, 0x96, 0x92, 0xd3, 0x1e,
	0x31, 0x21, 0x0f, 0xd2, 0x53, 0x8d, 0xa0, 0x80, 0xf2, 0x2b, 0x81, 0xbe, 0x16, 0x50, 0x7e, 0x29,
	0xb0, 0x05, 0x63, 0x5a, 0x21, 0x8c, 0x67, 0x1e, 0xbf, 0x9e, 0x4d, 0x07, 0x5b, 0xd6, 0x76, 0x4b,
	0x2f, 0x11, 0xc6, 0xb3, 0xbd, 0xeb, 0x59, 0x43, 0xe2, 0x9a, 0x67, 0xd3, 0x61, 0x43, 0xe2, 0x29,
	0xcf, 0x50, 0x82, 0x36, 0x29, 0xd6, 0x00, 0x2d, 0x81, 0xbb, 0x54, 0x6b, 0x94, 0x12, 0xb8, 0xc6,
	0xa8, 0x21, 0xf1, 0x94, 0x67, 0xce, 0x6f, 0x5b, 0xd0, 0x73, 0xc5, 0xaf, 0x84, 0xaf, 0xd8, 0x2e,
	0x74, 0xd4, 0x32, 0xd5, 0x67, 0xbb, 0xb2, 0xfb, 0xc6, 0x4e, 0xcd, 0x3f, 0x77, 0xb4, 0x88, 0xf9,
	0x39, 0x5f, 0xa6, 0xc2, 0x25, 0x59, 0x6d, 0x20, 0x2e, 0x93, 0xd8, 0x9c, 0xba, 0xa1, 0x9c, 0x6f,
	0x2d, 0x80, 0x4a, 0x98, 0x0d, 0xa0, 0xf3, 0x38, 0x89, 0x85, 0xfd, 0x0a, 0xb3, 0x61, 0xfc, 0x65,
	0x96, 0xc4, 0x33, 0x73, 0xc0, 0xb6, 0xc5, 0xd6, 0x61, 0xf5, 0x28, 0xbe, 0xe6, 0x51, 0x18, 0x3c,
	0x31, 0xde, 0x64, 0xb7, 0xd8, 0x2a, 0x8c, 0x48, 0x0c, 0xa1, 0xd3, 0x2f, 0xed, 0x36, 0x5b, 0x83,
	0x09, 0x01, 0x67, 0x22, 0xbb, 0x26, 0xa8, 0x83, 0x50, 0x31, 0xe3, 0x28, 0x7e, 0x22, 0x85, 0xdd,
	0x65, 0x2b, 0x00, 0x5a, 0xe0, 0xf3, 0x3c, 0x8a, 0xec, 0x1e, 0x8a, 0x3c, 0x4e, 0xf6, 0x45, 0xa6,
	0xc2, 0x4b, 0xf2, 0x61, 0xbb, 0xcf, 0xee, 0xc1, 0x5a, 0xcd, 0xab, 0x93, 0xec, 0x73, 0x1e, 0x46,
	0xf6, 0xc0, 0xf9, 0xda, 0x2a, 0xa6, 0x9e, 0xe1, 0x01, 0x4f, 0xa1, 0x2f, 0x85, 0xac, 0x07, 0xa1,
	0x21, 0xd1, 0x6b, 0x17, 0xfc, 0xb9, 0x77, 0xc1, 0xe3, 0xe0, 0x59, 0x18, 0xa8, 0xb9, 0xf1, 0xab,
	0xf1, 0x82, 0x3f, 0x7f, 0x54, 0x60, 0xec, 0x2d, 0x18, 0x3f, 0x13, 0x91, 0x9f, 0x2c, 0x84, 0xa7,
	0xc4, 0x73, 0x65, 0x22, 0x73, 0x64, 0xb0, 0x73, 0xf1, 0x5c, 0xb1, 0x2d, 0x18, 0xa5, 0x22, 0x5b,
	0x84, 0xb2, 0xf0, 0x7d, 0x74, 0xdb, 0x3a, 0xe4, 0xec, 0xc0, 0x64, 0x7f, 0xce, 0x31, 0x46, 0x5d,
	0xb1, 0x48, 0xae, 0x05, 0x46, 0xb5, 0xaf, 0x01, 0x2f, 0x0c, 0x28, 0x5a, 0x27, 0xee, 0xd0, 0x20,
	0x47, 0x81, 0xf3, 0x4d, 0x1b, 0xc6, 0x66, 0xc2, 0x99, 0x42, 0x8f, 0xbe, 0x29, 0x6f, 0x35, 0xe4,
	0x75, 0xe0, 0x67, 0x22, 0x56, 0xe6, 0x13, 0x0c, 0x85, 0x81, 0x40, 0x31, 0xae, 0x95, 0xa6, 0x31,
	0xdb, 0x80, 0x6e, 0x14, 0xc6, 0x57, 0x3a, 0x46, 0x27, 0xae, 0x26, 0xf0, 0x1b, 0x02, 0x21, 0xfd,
	0x2c, 0x4c, 0x15, 0x5a, 0xaa, 0xab, 0xbf, 0xb2, 0x06, 0xb1, 0xd7, 0x60, 0x48, 0xa2, 0x1e, 0x0f,
	0x82, 0x69, 0x8f, 0xe6, 0x0e, 0x08, 0xd8, 0x0b, 0x02, 0xb4, 0x92, 0x66, 0x66, 0xf4, 0x7d, 0xd3,
	0x3e, 0xf1, 0x47, 0x84, 0x99, 0x4f, 0x7e, 0x08, 0x43, 0x25, 0x16, 0x69, 0x92, 0xf1, 0x6c, 0x49,
	0x31, 0x52, 0xe6, 0x80, 0x0a, 0x67, 0x0f, 0x60, 0x90, 0x26, 0x32, 0x24, 0x1d, 0x30, 0x4a, 0xba,
	0x9f, 0x5a, 0x1f, 0xb9, 0x25, 0xc4, 0xde, 0x07, 0xbb, 0xa6, 0x92, 0x37, 0xe7, 0x72, 0x4e, 0xa1,
	0x32, 0x76, 0x57, 0x6b, 0xf8, 0x21, 0x97, 0x73, 0x54, 0x17, 0x0f, 0x17, 0xd3, 0x9a, 0xa4, 0x60,
	0x99, 0xb8, 0x83, 0x05, 0x7f, 0x8e, 0x6e, 0x26, 0xd9, 0x0e, 0xac, 0x87, 0xd2, 0x13, 0xb1, 0x12,
	0x99, 0x97, 0x09, 0xa9, 0xb2, 0xd0, 0x57, 0x22, 0x98, 0x8e, 0x51, 0x2b, 0x77, 0x2d, 0x94, 0x9f,
	0x21, 0xc7, 0x2d, 0x19, 0xb8, 0x98, 0xcf, 0x63, 0x3d, 0x61, 0x3a, 0x21, 0xa9, 0x81, 0xcf, 0x63,
	0x12, 0x73, 0x2e, 0x01, 0x70, 0x55, 0xf3, 0x99, 0x0d, 0x77, 0x6b, 0xd5, 0xdd, 0x6d, 0x03, 0xba,
	0xdc, 0x57, 0x49, 0x66, 0xce, 0x48, 0x13, 0xb5, 0xb0, 0x6b, 0xd7, 0xc3, 0x8e, 0xd9, 0xd0, 0xbe,
	0xe0, 0x3a, 0xe1, 0x0f, 0x5c, 0x1c, 0x3a, 0x7f, 0xef, 0xc2, 0x10, 0x37, 0xd2, 0x1e, 0xf1, 0x62,
	0xb7, 0xbe, 0x7b, 0x9f, 0xbb, 0x5c, 0xe1, 0x55, 0xe8, 0xa3, 0x7d, 0xd0, 0xa5, 0x74, 0xaa, 0xec,
	0x21, 0x79, 0x14, 0xdc, 0x70, 0xb7, 0xee, 0x4d, 0x77, 0x63, 0xd0, 0x59, 0xe4, 0x4a, 0x50, 0xb2,
	0x1c, 0xb8, 0x34, 0x46, 0x2c, 0x10, 0xfc, 0x92, 0xf2, 0xe3, 0xc0, 0xa5, 0x31, 0x5e, 0x25, 0x32,
	0x4f, 0xd3, 0x4c, 0x48, 0xa9, 0x4f, 0xdc, 0x2d, 0x69, 0x34, 0xa9, 0x14, 0xd1, 0xa5, 0x47, 0x0b,
	0x0d, 0x0d, 0x53, 0x44, 0x97, 0x27, 0xb8, 0x58, 0xc1, 0xa4, 0x15, 0xa1, 0x62, 0x1e, 0xe0, 0xaa,
	0x53, 0xe8, 0x63, 0x24, 0xe6, 0x99, 0xa0, 0x73, 0x1d, 0xbb, 0x05, 0xc9, 0xde, 0x81, 0x95, 0x34,
	0xca, 0x67, 0x61, 0xec, 0xf9, 0x49, 0x4c, 0xd1, 0x3a, 0x26, 0x81, 0x89, 0x46, 0xf7, 0x35, 0xc8,
	0xde, 0x83, 0x55, 0x23, 0x16, 0x06, 0x98, 0x3c, 0xd4, 0x92, 0xce, 0x74, 0xe8, 0x9a, 0xd9, 0x47,
	0x06, 0xc5, 0x9d, 0xfc, 0x64, 0xb1, 0xc0, 0xb8, 0x5a, 0xd1, 0xb7, 0xb4, 0x21, 0xf1, 0x6b, 0xc9,
	0xf9, 0x56, 0xb5, 0x35, 0x71, 0x8c, 0x31, 0x60, 0xd8, 0xda, 0x31, 0x6d, 0xda, 0x7b, 0x64, 0xb0,
	0x43, 0x23, 0x62, 0x74, 0xd5, 0x22, 0x6b, 0x5a, 0xc4, 0x60, 0x24, 0xf2, 0x3e, 0xd8, 0x69, 0x16,
	0x26, 0x59, 0xa8, 0x96, 0x9e, 0x4c, 0x05, 0xbf, 0x12, 0xd9, 0x94, 0x91, 0x05, 0x56, 0x0b, 0xfc,
	0x4c, 0xc3, 0x78, 0x59, 0x66, 0xc2, 0x4f, 0xb2, 0x20, 0x8c, 0x67, 0xd3, 0x75, 0x92, 0xa9, 0x00,
	0xf6, 0x23, 0x78, 0xb5, 0x8c, 0x2b, 0x8f, 0xfb, 0xbe, 0x90, 0xd2, 0x33, 0x97, 0xf7, 0x06, 0x5d,
	0xde, 0xf7, 0x4a, 0xf6, 0x1e, 0x71, 0xcf, 0xf5, 0x5d, 0xbe, 0x0b, 0xf7, 0xa2, 0x50, 0x2a, 0x11,
	0xe3, 0x4d, 0x53, 0x78, 0x01, 0xc6, 0xfc, 0x3d, 0x8a, 0xe9, 0xf5, 0x92, 0x69, 0x12, 0x14, 0x86,
	0xff, 0x8f, 0x61, 0x7a, 0x7b, 0x8e, 0x49, 0x05, 0xf7, 0x69, 0xda, 0xfd, 0x9b, 0xd3, 0x74, 0xb8,
	0x38, 0xbf, 0x6b, 0x41, 0xff, 0x11, 0x8f, 0x8f, 0x43, 0xa9, 0xd8, 0x0f, 0xa1, 0x73, 0xc1, 0x63,
	0x39, 0xb5, 0xb6, 0xda, 0xdb, 0xa3, 0xdd, 0x07, 0x8d, 0x5b, 0xcb, 0xc8, 0xe0, 0xef, 0x67, 0xb1,
	0xca, 0x96, 0x2e, 0x89, 0xb2, 0xd7, 0xa0, 0xfb, 0x55, 0x2e, 0xb2, 0x25, 0xf9, 0x7a, 0x99, 0x50,
	0x34, 0xb6, 0xf9, 0x8d, 0x05, 0x83, 0x42, 0x1e, 0xcf, 0x92, 0x07, 0x01, 0xb9, 0xa2, 0x2e, 0x8e,
	0x0a, 0x92, 0xbc, 0x99, 0xcb, 0xab, 0x69, 0x8b, 0xc2, 0x95, 0xc6, 0x77, 0x46, 0x4b, 0x71, 0xe6,
	0x9d, 0xda, 0x99, 0x57, 0xd1, 0xdb, 0x6d, 0x44, 0xef, 0x06, 0x74, 0xa5, 0xe2, 0x99, 0xa2, 0x10,
	0x19, 0xba, 0x9a, 0xc0, 0x78, 0x08, 0xf2, 0x8c, 0x53, 0x76, 0xd3, 0x75, 0x44, 0x49, 0x3b, 0xbf,
	0xb7, 0x60, 0x84, 0xb7, 0xc9, 0x89, 0x90, 0x92, 0xcf, 0x44, 0x15, 0xc5, 0x56, 0x3d, 0x8a, 0x6b,
	0x51, 0xdf, 0x22, 0xbb, 0x96, 0x51, 0xdf, 0x0c, 0xd9, 0x36, 0x31, 0x6b, 0x21, 0xfb, 0x2a, 0xf4,
	0x55, 0x26, 0x84, 0x0e, 0x75, 0xe4, 0xf5, 0x90, 0x3c, 0x0a, 0x70, 0xc5, 0x85, 0xde, 0x72, 0xda,
	0xdd, 0x6a, 0xa1, 0x8f, 0x1b, 0xd2, 0xf9, 0x47, 0x1b, 0xec, 0xd3, 0xf2, 0x12, 0x3b, 0x10, 0x71,
	0x28, 0x02, 0xf6, 0x06, 0x40, 0x75, 0xb1, 0x19, 0xdd, 0x6a, 0xc8, 0x0d, 0x35, 0x5a, 0x37, 0x33,
	0x47, 0x4d, 0xff, 0x76, 0x33, 0x6b, 0x55, 0x96, 0xec, 0x34, 0x2c, 0xf9, 0xa9, 0x29, 0x65, 0xba,
	0x54, 0xca, 0xbc, 0xdb, 0x70, 0x8a, 0x9b, 0xda, 0xed, 0x1c, 0x88, 0x78, 0x59, 0x2b, 0x69, 0x8a,
	0x53, 0xec, 0x55, 0xa7, 0x88, 0x55, 0xd2, 0xa0, 0x10, 0xc3, 0x62, 0x06, 0x6d, 0x6e, 0xbf, 0x82,
	0xe5, 0x46, 0xb5, 0x9a, 0x6d, 0xb1, 0x09, 0x0c, 0xcf, 0xf2, 0x54, 0x64, 0x98, 0x70, 0x75, 0x11,
	0x63, 0xfc, 0xf6, 0x31, 0x56, 0x35, 0x6d, 0x04, 0x70, 0xe6, 0x79, 0x92, 0x1c, 0x27, 0xf1, 0xcc,
	0xee, 0xb0, 0x3e, 0xb4, 0x0f, 0x3f, 0xf9, 0x99, 0xdd, 0x65, 0x1b, 0x60, 0x9f, 0x17, 0x81, 0x65,
	0xe6, 0xd8, 0x3d, 0x76, 0x1f, 0xd8, 0x09, 0x2e, 0x1e, 0xcf, 0x9a, 0x35, 0xcc, 0x18, 0x06, 0xb8,
	0x05, 0xad, 0x3a, 0xa8, 0x6d, 0x43, 0x55, 0xcf, 0x10, 0x6b, 0xac, 0xc7, 0x42, 0xaa, 0x30, 0x9e,
	0x1d, 0x87, 0x8b, 0x50, 0xd9, 0x80, 0x45, 0x8f, 0x11, 0xd9, 0x4f, 0xf2, 0x58, 0x69, 0x78, 0xc4,
	0xa6, 0xb0, 0x61, 0xe0, 0x63, 0x0a, 0x34, 0x91, 0x69, 0xce, 0x18, 0x27, 0xe0, 0x0e, 0x4d, 0x78,
	0xe2, 0xfc, 0xa6, 0x0b, 0xed, 0xbd, 0xfd, 0xe3, 0x97, 0x54, 0x22, 0xec, 0x3d, 0x18, 0x87, 0xf1,
	0x5c, 0x64, 0xa1, 0xf2, 0xb8, 0x1f, 0x49, 0x13, 0x67, 0x1d, 0x95, 0xe5, 0xc2, 0x1d, 0x19, 0xce,
	0x9e, 0x1f, 0x61, 0xda, 0xe8, 0xcd, 0xb2, 0x24, 0x4f, 0x75, 0x6b, 0x30, 0xda, 0xdd, 0x6c, 0x9c,
	0xd4, 0xde, 0xfe, 0xf1, 0x0e, 0xea, 0xf7, 0x53, 0x14, 0x71, 0x8d, 0x24, 0xfb, 0x10, 0x3a, 0xb4,
	0x68, 0x87, 0x66, 0x4c, 0xef, 0x9c, 0xb1, 0xb7, 0x7f, 0xec, 0x92, 0x54, 0x15, 0xeb, 0xdd, 0x3b,
	0x62, 0xfd, 0x9f, 0x16, 0x0c, 0xcb, 0x0d, 0xca, 0x83, 0xb7, 0xc8, 0xa3, 0x75, 0xf8, 0x3a, 0x30,
	0x34, 0xfa, 0x8a, 0xa0, 0xf1, 0x19, 0x15, 0xcc, 0xde, 0x80, 0xbe, 0x21, 0xc8, 0x3d, 0x0b, 0x89,
	0x02, 0x64, 0xef, 0x42, 0xf1, 0xcd, 0xfc, 0x22, 0x12, 0xfa, 0x72, 0xbe, 0x61, 0x0c, 0x64, 0xe0,
	0xe5, 0x8d, 0x19, 0xb3, 0x4b, 0x91, 0x86, 0x43, 0xed, 0xde, 0x94, 0x0f, 0x75, 0xe9, 0x64, 0x28,
	0xf6, 0x01, 0xac, 0x95, 0xdb, 0x7b, 0x0b, 0xb1, 0xb8, 0xc0, 0x72, 0x45, 0x57, 0x4f, 0x76, 0xc9,
	0x38, 0xd1, 0xf8, 0xe6, 0xdf, 0x2c, 0xe8, 0x1b, 0x9b, 0xb0, 0x87, 0x00, 0x3c, 0x4d, 0xa3, 0xa5,
	0x37, 0x17, 0x99, 0x2e, 0xf4, 0xcb, 0xef, 0x21, 0xfc, 0x50, 0x64, 0xa2, 0x12, 0x92, 0xf9, 0x45,
	0xf3, 0xec, 0xb4, 0xd0, 0x59, 0x7e, 0x21, 0x9b, 0x86, 0x69, 0xdf, 0x6d, 0x98, 0x17, 0x56, 0x0a,
	0x1b, 0xd0, 0xa5, 0xc3, 0x34, 0xf9, 0x4f, 0x13, 0x1a, 0xe5, 0xb1, 0x32, 0xed, 0x94, 0x26, 0x74,
	0x89, 0x10, 0x2f, 0x4d, 0xea, 0xa3, 0xb1, 0xf3, 0x31, 0xc0, 0xcf, 0xf1, 0x00, 0x75, 0x5d, 0x66,
	0x43, 0x3b, 0x0c, 0xf4, 0x05, 0x30, 0x71, 0x71, 0x88, 0x2b, 0xe1, 0xe9, 0x49, 0x4a, 0x77, 0x43,
	0x57, 0x13, 0x4e, 0x00, 0xb0, 0x9f, 0x2d, 0x53, 0x75, 0x26, 0x54, 0x9e, 0xe2, 0xac, 0x2b, 0xb1,
	0x24, 0x1b, 0x8c, 0x5d, 0x1c, 0xd2, 0x55, 0x1c, 0x85, 0x78, 0x13, 0xc7, 0x49, 0xec, 0xeb, 0x1e,
	0x1b, 0xaf, 0x62, 0xc2, 0x1e, 0x23, 0x84, 0x22, 0x92, 0x9a, 0x04, 0x23, 0xd2, 0xd6, 0x22, 0x1a,
	0x23, 0x11, 0xe7, 0xdf, 0x16, 0xac, 0x9b, 0x9a, 0x61, 0xcf, 0xc7, 0x24, 0x7d, 0x92, 0x04, 0xe1,
	0xe5, 0x12, 0xcf, 0x92, 0x13, 0x6d, 0xfc, 0xcb, 0x50, 0xf8, 0x7d, 0x54, 0x74, 0xe8, 0xfe, 0x89,
	0xc6, 0xba, 0x84, 0x88, 0xcb, 0xce, 0x61, 0xe2, 0x16, 0x24, 0x3b, 0x84, 0x61, 0x92, 0x0a, 0x73,
	0x1b, 0x74, 0x28, 0xbb, 0xfd, 0x7f, 0x23, 0x02, 0xee, 0xd8, 0x7a, 0xe7, 0x8b, 0x62, 0x86, 0x5b,
	0x4d, 0x76, 0x3e, 0x84, 0x7e, 0x51, 0xda, 0x00, 0xf4, 0x74, 0xeb, 0x63, 0x5b, 0x6c, 0xa4, 0x9d,
	0x05, 0xf3, 0x4f, 0x0b, 0x33, 0x1d, 0xa5, 0xb2, 0x8e, 0xb3, 0x05, 0xc3, 0x72, 0x15, 0xcc, 0x5a,
	0x7b, 0x41, 0x60, 0xbf, 0x82, 0x13, 0xf5, 0x8d, 0x6c, 0x5b, 0xce, 0x2f, 0x61, 0xd2, 0xd8, 0xfb,
	0x3b, 0x6a, 0xcd, 0x97, 0xa4, 0xfb, 0xca, 0x52, 0xed, 0xba, 0xa5, 0x9c, 0xbf, 0x58, 0x3a, 0xed,
	0xd1, 0xb5, 0xff, 0x11, 0x74, 0x75, 0x95, 0x6e, 0xdd, 0x91, 0x38, 0x0a, 0x29, 0x1a, 0xb8, 0x5a,
	0x70, 0x53, 0xea, 0x8f, 0xa9, 0x7b, 0xa5, 0x4e, 0x5c, 0x85, 0x57, 0x16, 0xf1, 0xdf, 0xaa, 0x5d,
	0xdf, 0xd8, 0xbf, 0x70, 0xa9, 0x3c, 0x29, 0x44, 0x51, 0x6b, 0x0f, 0x10, 0x38, 0x13, 0x22, 0xa6,
	0xfe, 0x05, 0x99, 0x46, 0x75, 0xe3, 0xe4, 0x23, 0xc4, 0x8c, 0x0d, 0x9d, 0x7f, 0x59, 0x30, 0x7a,
	0x9a, 0x84, 0xbe, 0x38, 0xe7, 0xd9, 0x4c, 0x28, 0xb6, 0x02, 0xad, 0xb2, 0x15, 0x6b, 0x85, 0x01,
	0xfb, 0x04, 0xfa, 0x8a, 0x38, 0xda, 0x57, 0x47, 0xbb, 0x6f, 0x36, 0x3e, 0xa4, 0x36, 0x75, 0x47,
	0xff, 0xb8, 0x85, 0xfc, 0xe6, 0x1f, 0x2c, 0xe8, 0x99, 0x55, 0x1b, 0xa6, 0x6e, 0xff, 0x17, 0xa6,
	0x2e, 0x03, 0xb1, 0x5d, 0x0f, 0xc4, 0xd7, 0xaa, 0x66, 0xaf, 0x9e, 0x33, 0x75, 0xcf, 0xf7, 0x16,
	0x0c, 0xfc, 0x79, 0x18, 0x05, 0x99, 0x88, 0x9b, 0x39, 0xb5, 0x84, 0x9d, 0x04, 0x56, 0xab, 0x6b,
	0x91, 0x02, 0xf5, 0x65, 0xad, 0xe8, 0x8d, 0x66, 0x58, 0xeb, 0x59, 0x87, 0x50, 0xa7, 0xcb, 0x28,
	0x97, 0x73, 0x93, 0x6b, 0x0a, 0x9d, 0x08, 0x73, 0x7e, 0x0d, 0xe3, 0xfd, 0x24, 0x10, 0x7e, 0xf1,
	0x84, 0x86, 0x65, 0x50, 0x94, 0xce, 0x39, 0x1d, 0x70, 0xd7, 0xd5, 0x04, 0x9e, 0xef, 0x85, 0x50,
	0x9c, 0x4a, 0xb6, 0xae, 0x4b, 0x63, 0xbc, 0xa9, 0xd2, 0x4c, 0x5c, 0x8a, 0xcc, 0xd3, 0x13, 0xd0,
	0xe3, 0xca, 0xe4, 0xac, 0x39, 0x7b, 0x34, 0xb9, 0x78, 0x87, 0xea, 0xdc, 0x7e, 0x87, 0xfa, 0xb6,
	0x57, 0xb5, 0x58, 0xf2, 0x3b, 0xdc, 0xfe, 0x6d, 0x00, 0x89, 0x22, 0x5e, 0x12, 0x47, 0x37, 0x6a,
	0xcf, 0x21, 0x31, 0xbe, 0x88, 0xa3, 0x25, 0x73, 0x60, 0xec, 0x57, 0x97, 0xbd, 0xbe, 0x18, 0xc7,
	0x6e, 0x03, 0x63, 0x3f, 0x81, 0xd1, 0x65, 0x96, 0x2c, 0x3c, 0x9d, 0x9a, 0x48, 0xa7, 0xd1, 0xee,
	0xeb, 0xb7, 0x42, 0x80, 0x14, 0xda, 0xa1, 0xbf, 0x2e, 0xe0, 0x84, 0x7d, 0x92, 0x2f, 0xa7, 0xeb,
	0xb4, 0x45, 0xa7, 0xf8, 0xbd, 0xa6, 0xeb, 0x24, 0xf1, 0xbf, 0xf3, 0xf8, 0xc5, 0x76, 0xaa, 0xa7,
	0xd6, 0x31, 0x19, 0x61, 0xa3, 0x19, 0x7d, 0x9a, 0x57, 0x3d, 0xc0, 0xde, 0x7a, 0xb1, 0x9c, 0xdc,
	0xf1, 0x62, 0x59, 0xeb, 0x19, 0x56, 0x74, 0xa7, 0x59, 0xf4, 0x0c, 0xaf, 0xc3, 0xb0, 0x7a, 0x36,
	0x5a, 0xd5, 0x31, 0x50, 0x02, 0x58, 0x24, 0x27, 0x71, 0x14, 0xc6, 0x42, 0x0a, 0x5f, 0x52, 0x1f,
	0x38, 0x71, 0x6b, 0x08, 0xf6, 0x01, 0x61, 0x10, 0x69, 0xee, 0x9a, 0xee, 0x03, 0x0a, 0x9a, 0x7d,
	0x0c, 0x4c, 0xaa, 0x2c, 0xc1, 0x3e, 0xaa, 0xf2, 0x13, 0xdd, 0x01, 0x16, 0x2e, 0xb6, 0xa6, 0x05,
	0x6a, 0x85, 0x64, 0xe9, 0xd3, 0xeb, 0xb7, 0x7c, 0x7a, 0xf3, 0x17, 0xd0, 0xd5, 0xee, 0x5c, 0xbc,
	0x9e, 0x5a, 0x77, 0xbc, 0x9e, 0xb6, 0xee, 0x78, 0x3d, 0x6d, 0xdf, 0xf9, 0x7a, 0xda, 0xa9, 0xbf,
	0x9e, 0x3a, 0x5f, 0x5b, 0x30, 0x72, 0xc5, 0x57, 0xb9, 0x90, 0xea, 0x51, 0x94, 0x5c, 0x60, 0x6b,
	0x6d, 0x62, 0xc4, 0x2b, 0x7a, 0x74, 0x9d, 0xc6, 0x56, 0x0c, 0x7c, 0x6e, 0x5a, 0xf5, 0x9a, 0x60,
	0xd1, 0x62, 0xb7, 0x1a, 0x82, 0xfb, 0xa6, 0xd3, 0xfe, 0x01, 0xac, 0x17, 0xe9, 0xa6, 0xfe, 0x40,
	0xa5, 0x1b, 0x1c, 0x66, 0x58, 0x07, 0x15, 0xc7, 0xf9, 0x63, 0x0b, 0xc6, 0xda, 0xbd, 0xf7, 0x93,
	0xf8, 0x32, 0x9c, 0xdd, 0x7e, 0xe6, 0xb3, 0xbe, 0xc7, 0x33, 0x5f, 0xeb, 0xf6, 0x33, 0xdf, 0x03,
	0x00, 0x1e, 0x45, 0xc9, 0x33, 0x6f, 0xae, 0x16, 0x91, 0x4e, 0x5e, 0xee, 0x90, 0x90, 0x43, 0xb5,
	0x88, 0xd8, 0x3b, 0xb0, 0x62, 0x3a, 0x27, 0x2f, 0x12, 0xf1, 0x4c, 0xcd, 0x8d, 0xa9, 0x26, 0x06,
	0x3d, 0x26, 0x90, 0x7d, 0x04, 0x1b, 0xe1, 0x02, 0x85, 0x6e, 0x08, 0xeb, 0x47, 0x16, 0x46, 0xbc,
	0x93, 0xc6, 0x8c, 0xc6, 0x4b, 0x56, 0xef, 0xc6, 0x4b, 0xd6, 0x07, 0xb0, 0x56, 0xb6, 0xfc, 0x1e,
	0x29, 0x23, 0x02, 0xf3, 0x06, 0x63, 0x97, 0x8c, 0x3d, 0x8d, 0x3b, 0x57, 0x30, 0x39, 0xcb, 0x67,
	0x33, 0x21, 0x95, 0x31, 0xcd, 0x8b, 0xff, 0x41, 0x81, 0x7d, 0x9e, 0x79, 0x75, 0xe3, 0x91, 0xce,
	0x70, 0x6e, 0x0d, 0xc1, 0x88, 0x4c, 0x73, 0x39, 0xf7, 0x54, 0xe2, 0x29, 0x1e, 0x5d, 0x19, 0x73,
	0x00, 0x62, 0xe7, 0xc9, 0x39, 0x8f, 0xae, 0x9c, 0x3f, 0x59, 0x70, 0xff, 0x94, 0xde, 0x53, 0x0e,
	0xb8, 0xe2, 0xe7, 0x19, 0x8f, 0x65, 0xd1, 0x24, 0xbe, 0x0d, 0x13, 0x29, 0xe2, 0x40, 0x64, 0x67,
	0x8d, 0xf4, 0xda, 0x04, 0xd9, 0x0e, 0xe0, 0x17, 0x88, 0xf0, 0xba, 0x84, 0xf4, 0xcd, 0x3a, 0x79,
	0xd4, 0xb2, 0x2d, 0xf7, 0x16, 0x8f, 0xca, 0x4b, 0xae, 0xb8, 0xa9, 0xe4, 0x68, 0x8c, 0x7e, 0x8b,
	0xbf, 0x47, 0x07, 0x45, 0x57, 0xa9, 0xa9, 0x47, 0xad, 0x43, 0xeb, 0x3f, 0x01, 0x00, 0x00, 0xff,
	0xff, 0x94, 0x0a, 0x29, 0x9c, 0xc4, 0x19, 0x00, 0x00,
}
