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

package api

import (
	fmt "fmt"
	proto "github.com/golang/protobuf/proto"
	timestamp "github.com/golang/protobuf/ptypes/timestamp"
	wrappers "github.com/golang/protobuf/ptypes/wrappers"
	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

// The friendship status.
type Friend_State int32

const (
	// The user is a friend of the current user.
	Friend_FRIEND Friend_State = 0
	// The current user has sent an invite to the user.
	Friend_INVITE_SENT Friend_State = 1
	// The current user has received an invite from this user.
	Friend_INVITE_RECEIVED Friend_State = 2
	// The current user has blocked this user.
	Friend_BLOCKED Friend_State = 3
)

var Friend_State_name = map[int32]string{
	0: "FRIEND",
	1: "INVITE_SENT",
	2: "INVITE_RECEIVED",
	3: "BLOCKED",
}

var Friend_State_value = map[string]int32{
	"FRIEND":          0,
	"INVITE_SENT":     1,
	"INVITE_RECEIVED": 2,
	"BLOCKED":         3,
}

func (x Friend_State) String() string {
	return proto.EnumName(Friend_State_name, int32(x))
}

func (Friend_State) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{33, 0}
}

// The group role status.
type GroupUserList_GroupUser_State int32

const (
	// The user is a superadmin with full control of the group.
	GroupUserList_GroupUser_SUPERADMIN GroupUserList_GroupUser_State = 0
	// The user is an admin with additional privileges.
	GroupUserList_GroupUser_ADMIN GroupUserList_GroupUser_State = 1
	// The user is a regular member.
	GroupUserList_GroupUser_MEMBER GroupUserList_GroupUser_State = 2
	// The user has requested to join the group
	GroupUserList_GroupUser_JOIN_REQUEST GroupUserList_GroupUser_State = 3
)

var GroupUserList_GroupUser_State_name = map[int32]string{
	0: "SUPERADMIN",
	1: "ADMIN",
	2: "MEMBER",
	3: "JOIN_REQUEST",
}

var GroupUserList_GroupUser_State_value = map[string]int32{
	"SUPERADMIN":   0,
	"ADMIN":        1,
	"MEMBER":       2,
	"JOIN_REQUEST": 3,
}

func (x GroupUserList_GroupUser_State) String() string {
	return proto.EnumName(GroupUserList_GroupUser_State_name, int32(x))
}

func (GroupUserList_GroupUser_State) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{38, 0, 0}
}

// The group role status.
type UserGroupList_UserGroup_State int32

const (
	// The user is a superadmin with full control of the group.
	UserGroupList_UserGroup_SUPERADMIN UserGroupList_UserGroup_State = 0
	// The user is an admin with additional privileges.
	UserGroupList_UserGroup_ADMIN UserGroupList_UserGroup_State = 1
	// The user is a regular member.
	UserGroupList_UserGroup_MEMBER UserGroupList_UserGroup_State = 2
	// The user has requested to join the group
	UserGroupList_UserGroup_JOIN_REQUEST UserGroupList_UserGroup_State = 3
)

var UserGroupList_UserGroup_State_name = map[int32]string{
	0: "SUPERADMIN",
	1: "ADMIN",
	2: "MEMBER",
	3: "JOIN_REQUEST",
}

var UserGroupList_UserGroup_State_value = map[string]int32{
	"SUPERADMIN":   0,
	"ADMIN":        1,
	"MEMBER":       2,
	"JOIN_REQUEST": 3,
}

func (x UserGroupList_UserGroup_State) String() string {
	return proto.EnumName(UserGroupList_UserGroup_State_name, int32(x))
}

func (UserGroupList_UserGroup_State) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{81, 0, 0}
}

// A user with additional account details. Always the current user.
type Account struct {
	// The user object.
	User *User `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`
	// The user's wallet data.
	Wallet string `protobuf:"bytes,2,opt,name=wallet,proto3" json:"wallet,omitempty"`
	// The email address of the user.
	Email string `protobuf:"bytes,3,opt,name=email,proto3" json:"email,omitempty"`
	// The devices which belong to the user's account.
	Devices []*AccountDevice `protobuf:"bytes,4,rep,name=devices,proto3" json:"devices,omitempty"`
	// The custom id in the user's account.
	CustomId string `protobuf:"bytes,5,opt,name=custom_id,json=customId,proto3" json:"custom_id,omitempty"`
	// The UNIX time when the user's email was verified.
	VerifyTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=verify_time,json=verifyTime,proto3" json:"verify_time,omitempty"`
	// The UNIX time when the user's account was disabled/banned.
	DisableTime          *timestamp.Timestamp `protobuf:"bytes,7,opt,name=disable_time,json=disableTime,proto3" json:"disable_time,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

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

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

var xxx_messageInfo_Account proto.InternalMessageInfo

func (m *Account) GetUser() *User {
	if m != nil {
		return m.User
	}
	return nil
}

func (m *Account) GetWallet() string {
	if m != nil {
		return m.Wallet
	}
	return ""
}

func (m *Account) GetEmail() string {
	if m != nil {
		return m.Email
	}
	return ""
}

func (m *Account) GetDevices() []*AccountDevice {
	if m != nil {
		return m.Devices
	}
	return nil
}

func (m *Account) GetCustomId() string {
	if m != nil {
		return m.CustomId
	}
	return ""
}

func (m *Account) GetVerifyTime() *timestamp.Timestamp {
	if m != nil {
		return m.VerifyTime
	}
	return nil
}

func (m *Account) GetDisableTime() *timestamp.Timestamp {
	if m != nil {
		return m.DisableTime
	}
	return nil
}

// Send a Apple Sign In token to the server. Used with authenticate/link/unlink.
type AccountApple struct {
	// The ID token received from Apple to validate.
	Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	// Extra information that will be bundled in the session token.
	Vars                 map[string]string `protobuf:"bytes,2,rep,name=vars,proto3" json:"vars,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

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

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

var xxx_messageInfo_AccountApple proto.InternalMessageInfo

func (m *AccountApple) GetToken() string {
	if m != nil {
		return m.Token
	}
	return ""
}

func (m *AccountApple) GetVars() map[string]string {
	if m != nil {
		return m.Vars
	}
	return nil
}

// Send a custom ID to the server. Used with authenticate/link/unlink.
type AccountCustom struct {
	// A custom identifier.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Extra information that will be bundled in the session token.
	Vars                 map[string]string `protobuf:"bytes,2,rep,name=vars,proto3" json:"vars,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

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

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

var xxx_messageInfo_AccountCustom proto.InternalMessageInfo

func (m *AccountCustom) GetId() string {
	if m != nil {
		return m.Id
	}
	return ""
}

func (m *AccountCustom) GetVars() map[string]string {
	if m != nil {
		return m.Vars
	}
	return nil
}

// Send a device to the server. Used with authenticate/link/unlink and user.
type AccountDevice struct {
	// A device identifier. Should be obtained by a platform-specific device API.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Extra information that will be bundled in the session token.
	Vars                 map[string]string `protobuf:"bytes,2,rep,name=vars,proto3" json:"vars,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

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

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

var xxx_messageInfo_AccountDevice proto.InternalMessageInfo

func (m *AccountDevice) GetId() string {
	if m != nil {
		return m.Id
	}
	return ""
}

func (m *AccountDevice) GetVars() map[string]string {
	if m != nil {
		return m.Vars
	}
	return nil
}

// Send an email with password to the server. Used with authenticate/link/unlink.
type AccountEmail struct {
	// A valid RFC-5322 email address.
	Email string `protobuf:"bytes,1,opt,name=email,proto3" json:"email,omitempty"`
	// A password for the user account.
	Password string `protobuf:"bytes,2,opt,name=password,proto3" json:"password,omitempty"`
	// Extra information that will be bundled in the session token.
	Vars                 map[string]string `protobuf:"bytes,3,rep,name=vars,proto3" json:"vars,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

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

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

var xxx_messageInfo_AccountEmail proto.InternalMessageInfo

func (m *AccountEmail) GetEmail() string {
	if m != nil {
		return m.Email
	}
	return ""
}

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

func (m *AccountEmail) GetVars() map[string]string {
	if m != nil {
		return m.Vars
	}
	return nil
}

// Send a Facebook token to the server. Used with authenticate/link/unlink.
type AccountFacebook struct {
	// The OAuth token received from Facebook to access their profile API.
	Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	// Extra information that will be bundled in the session token.
	Vars                 map[string]string `protobuf:"bytes,2,rep,name=vars,proto3" json:"vars,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

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

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

var xxx_messageInfo_AccountFacebook proto.InternalMessageInfo

func (m *AccountFacebook) GetToken() string {
	if m != nil {
		return m.Token
	}
	return ""
}

func (m *AccountFacebook) GetVars() map[string]string {
	if m != nil {
		return m.Vars
	}
	return nil
}

// Send a Facebook Instant Game token to the server. Used with authenticate/link/unlink.
type AccountFacebookInstantGame struct {
	// The OAuth token received from a Facebook Instant Game that may be decoded with the Application Secret (must be available with the nakama configuration)
	SignedPlayerInfo string `protobuf:"bytes,1,opt,name=signed_player_info,json=signedPlayerInfo,proto3" json:"signed_player_info,omitempty"`
	// Extra information that will be bundled in the session token.
	Vars                 map[string]string `protobuf:"bytes,2,rep,name=vars,proto3" json:"vars,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

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

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

var xxx_messageInfo_AccountFacebookInstantGame proto.InternalMessageInfo

func (m *AccountFacebookInstantGame) GetSignedPlayerInfo() string {
	if m != nil {
		return m.SignedPlayerInfo
	}
	return ""
}

func (m *AccountFacebookInstantGame) GetVars() map[string]string {
	if m != nil {
		return m.Vars
	}
	return nil
}

// Send Apple's Game Center account credentials to the server. Used with authenticate/link/unlink.
type AccountGameCenter struct {
	// Player ID (generated by GameCenter).
	PlayerId string `protobuf:"bytes,1,opt,name=player_id,json=playerId,proto3" json:"player_id,omitempty"`
	// Bundle ID (generated by GameCenter).
	BundleId string `protobuf:"bytes,2,opt,name=bundle_id,json=bundleId,proto3" json:"bundle_id,omitempty"`
	// Time since UNIX epoch when the signature was created.
	TimestampSeconds int64 `protobuf:"varint,3,opt,name=timestamp_seconds,json=timestampSeconds,proto3" json:"timestamp_seconds,omitempty"`
	// A random "NSString" used to compute the hash and keep it randomized.
	Salt string `protobuf:"bytes,4,opt,name=salt,proto3" json:"salt,omitempty"`
	// The verification signature data generated.
	Signature string `protobuf:"bytes,5,opt,name=signature,proto3" json:"signature,omitempty"`
	// The URL for the public encryption key.
	PublicKeyUrl string `protobuf:"bytes,6,opt,name=public_key_url,json=publicKeyUrl,proto3" json:"public_key_url,omitempty"`
	// Extra information that will be bundled in the session token.
	Vars                 map[string]string `protobuf:"bytes,7,rep,name=vars,proto3" json:"vars,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

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

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

var xxx_messageInfo_AccountGameCenter proto.InternalMessageInfo

func (m *AccountGameCenter) GetPlayerId() string {
	if m != nil {
		return m.PlayerId
	}
	return ""
}

func (m *AccountGameCenter) GetBundleId() string {
	if m != nil {
		return m.BundleId
	}
	return ""
}

func (m *AccountGameCenter) GetTimestampSeconds() int64 {
	if m != nil {
		return m.TimestampSeconds
	}
	return 0
}

func (m *AccountGameCenter) GetSalt() string {
	if m != nil {
		return m.Salt
	}
	return ""
}

func (m *AccountGameCenter) GetSignature() string {
	if m != nil {
		return m.Signature
	}
	return ""
}

func (m *AccountGameCenter) GetPublicKeyUrl() string {
	if m != nil {
		return m.PublicKeyUrl
	}
	return ""
}

func (m *AccountGameCenter) GetVars() map[string]string {
	if m != nil {
		return m.Vars
	}
	return nil
}

// Send a Google token to the server. Used with authenticate/link/unlink.
type AccountGoogle struct {
	// The OAuth token received from Google to access their profile API.
	Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	// Extra information that will be bundled in the session token.
	Vars                 map[string]string `protobuf:"bytes,2,rep,name=vars,proto3" json:"vars,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

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

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

var xxx_messageInfo_AccountGoogle proto.InternalMessageInfo

func (m *AccountGoogle) GetToken() string {
	if m != nil {
		return m.Token
	}
	return ""
}

func (m *AccountGoogle) GetVars() map[string]string {
	if m != nil {
		return m.Vars
	}
	return nil
}

// Send a Steam token to the server. Used with authenticate/link/unlink.
type AccountSteam struct {
	// The account token received from Steam to access their profile API.
	Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"`
	// Extra information that will be bundled in the session token.
	Vars                 map[string]string `protobuf:"bytes,2,rep,name=vars,proto3" json:"vars,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

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

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

var xxx_messageInfo_AccountSteam proto.InternalMessageInfo

func (m *AccountSteam) GetToken() string {
	if m != nil {
		return m.Token
	}
	return ""
}

func (m *AccountSteam) GetVars() map[string]string {
	if m != nil {
		return m.Vars
	}
	return nil
}

// Add one or more friends to the current user.
type AddFriendsRequest struct {
	// The account id of a user.
	Ids []string `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"`
	// The account username of a user.
	Usernames            []string `protobuf:"bytes,2,rep,name=usernames,proto3" json:"usernames,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_AddFriendsRequest proto.InternalMessageInfo

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

func (m *AddFriendsRequest) GetUsernames() []string {
	if m != nil {
		return m.Usernames
	}
	return nil
}

// Add users to a group.
type AddGroupUsersRequest struct {
	// The group to add users to.
	GroupId string `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	// The users to add.
	UserIds              []string `protobuf:"bytes,2,rep,name=user_ids,json=userIds,proto3" json:"user_ids,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_AddGroupUsersRequest proto.InternalMessageInfo

func (m *AddGroupUsersRequest) GetGroupId() string {
	if m != nil {
		return m.GroupId
	}
	return ""
}

func (m *AddGroupUsersRequest) GetUserIds() []string {
	if m != nil {
		return m.UserIds
	}
	return nil
}

// Authenticate against the server with Apple Sign In.
type AuthenticateAppleRequest struct {
	// The Apple account details.
	Account *AccountApple `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"`
	// Register the account if the user does not already exist.
	Create *wrappers.BoolValue `protobuf:"bytes,2,opt,name=create,proto3" json:"create,omitempty"`
	// Set the username on the account at register. Must be unique.
	Username             string   `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_AuthenticateAppleRequest proto.InternalMessageInfo

func (m *AuthenticateAppleRequest) GetAccount() *AccountApple {
	if m != nil {
		return m.Account
	}
	return nil
}

func (m *AuthenticateAppleRequest) GetCreate() *wrappers.BoolValue {
	if m != nil {
		return m.Create
	}
	return nil
}

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

// Authenticate against the server with a custom ID.
type AuthenticateCustomRequest struct {
	// The custom account details.
	Account *AccountCustom `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"`
	// Register the account if the user does not already exist.
	Create *wrappers.BoolValue `protobuf:"bytes,2,opt,name=create,proto3" json:"create,omitempty"`
	// Set the username on the account at register. Must be unique.
	Username             string   `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_AuthenticateCustomRequest proto.InternalMessageInfo

func (m *AuthenticateCustomRequest) GetAccount() *AccountCustom {
	if m != nil {
		return m.Account
	}
	return nil
}

func (m *AuthenticateCustomRequest) GetCreate() *wrappers.BoolValue {
	if m != nil {
		return m.Create
	}
	return nil
}

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

// Authenticate against the server with a device ID.
type AuthenticateDeviceRequest struct {
	// The device account details.
	Account *AccountDevice `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"`
	// Register the account if the user does not already exist.
	Create *wrappers.BoolValue `protobuf:"bytes,2,opt,name=create,proto3" json:"create,omitempty"`
	// Set the username on the account at register. Must be unique.
	Username             string   `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_AuthenticateDeviceRequest proto.InternalMessageInfo

func (m *AuthenticateDeviceRequest) GetAccount() *AccountDevice {
	if m != nil {
		return m.Account
	}
	return nil
}

func (m *AuthenticateDeviceRequest) GetCreate() *wrappers.BoolValue {
	if m != nil {
		return m.Create
	}
	return nil
}

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

// Authenticate against the server with email+password.
type AuthenticateEmailRequest struct {
	// The email account details.
	Account *AccountEmail `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"`
	// Register the account if the user does not already exist.
	Create *wrappers.BoolValue `protobuf:"bytes,2,opt,name=create,proto3" json:"create,omitempty"`
	// Set the username on the account at register. Must be unique.
	Username             string   `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_AuthenticateEmailRequest proto.InternalMessageInfo

func (m *AuthenticateEmailRequest) GetAccount() *AccountEmail {
	if m != nil {
		return m.Account
	}
	return nil
}

func (m *AuthenticateEmailRequest) GetCreate() *wrappers.BoolValue {
	if m != nil {
		return m.Create
	}
	return nil
}

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

// Authenticate against the server with Facebook.
type AuthenticateFacebookRequest struct {
	// The Facebook account details.
	Account *AccountFacebook `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"`
	// Register the account if the user does not already exist.
	Create *wrappers.BoolValue `protobuf:"bytes,2,opt,name=create,proto3" json:"create,omitempty"`
	// Set the username on the account at register. Must be unique.
	Username string `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"`
	// Import Facebook friends for the user.
	Sync                 *wrappers.BoolValue `protobuf:"bytes,4,opt,name=sync,proto3" json:"sync,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

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

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

var xxx_messageInfo_AuthenticateFacebookRequest proto.InternalMessageInfo

func (m *AuthenticateFacebookRequest) GetAccount() *AccountFacebook {
	if m != nil {
		return m.Account
	}
	return nil
}

func (m *AuthenticateFacebookRequest) GetCreate() *wrappers.BoolValue {
	if m != nil {
		return m.Create
	}
	return nil
}

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

func (m *AuthenticateFacebookRequest) GetSync() *wrappers.BoolValue {
	if m != nil {
		return m.Sync
	}
	return nil
}

// Authenticate against the server with Facebook Instant Game token.
type AuthenticateFacebookInstantGameRequest struct {
	// The Facebook Instant Game account details.
	Account *AccountFacebookInstantGame `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"`
	// Register the account if the user does not already exist.
	Create *wrappers.BoolValue `protobuf:"bytes,2,opt,name=create,proto3" json:"create,omitempty"`
	// Set the username on the account at register. Must be unique.
	Username             string   `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_AuthenticateFacebookInstantGameRequest proto.InternalMessageInfo

func (m *AuthenticateFacebookInstantGameRequest) GetAccount() *AccountFacebookInstantGame {
	if m != nil {
		return m.Account
	}
	return nil
}

func (m *AuthenticateFacebookInstantGameRequest) GetCreate() *wrappers.BoolValue {
	if m != nil {
		return m.Create
	}
	return nil
}

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

// Authenticate against the server with Apple's Game Center.
type AuthenticateGameCenterRequest struct {
	// The Game Center account details.
	Account *AccountGameCenter `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"`
	// Register the account if the user does not already exist.
	Create *wrappers.BoolValue `protobuf:"bytes,2,opt,name=create,proto3" json:"create,omitempty"`
	// Set the username on the account at register. Must be unique.
	Username             string   `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_AuthenticateGameCenterRequest proto.InternalMessageInfo

func (m *AuthenticateGameCenterRequest) GetAccount() *AccountGameCenter {
	if m != nil {
		return m.Account
	}
	return nil
}

func (m *AuthenticateGameCenterRequest) GetCreate() *wrappers.BoolValue {
	if m != nil {
		return m.Create
	}
	return nil
}

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

// Authenticate against the server with Google.
type AuthenticateGoogleRequest struct {
	// The Google account details.
	Account *AccountGoogle `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"`
	// Register the account if the user does not already exist.
	Create *wrappers.BoolValue `protobuf:"bytes,2,opt,name=create,proto3" json:"create,omitempty"`
	// Set the username on the account at register. Must be unique.
	Username             string   `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_AuthenticateGoogleRequest proto.InternalMessageInfo

func (m *AuthenticateGoogleRequest) GetAccount() *AccountGoogle {
	if m != nil {
		return m.Account
	}
	return nil
}

func (m *AuthenticateGoogleRequest) GetCreate() *wrappers.BoolValue {
	if m != nil {
		return m.Create
	}
	return nil
}

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

// Authenticate against the server with Steam.
type AuthenticateSteamRequest struct {
	// The Steam account details.
	Account *AccountSteam `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"`
	// Register the account if the user does not already exist.
	Create *wrappers.BoolValue `protobuf:"bytes,2,opt,name=create,proto3" json:"create,omitempty"`
	// Set the username on the account at register. Must be unique.
	Username             string   `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_AuthenticateSteamRequest proto.InternalMessageInfo

func (m *AuthenticateSteamRequest) GetAccount() *AccountSteam {
	if m != nil {
		return m.Account
	}
	return nil
}

func (m *AuthenticateSteamRequest) GetCreate() *wrappers.BoolValue {
	if m != nil {
		return m.Create
	}
	return nil
}

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

// Ban users from a group.
type BanGroupUsersRequest struct {
	// The group to ban users from.
	GroupId string `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	// The users to ban.
	UserIds              []string `protobuf:"bytes,2,rep,name=user_ids,json=userIds,proto3" json:"user_ids,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_BanGroupUsersRequest proto.InternalMessageInfo

func (m *BanGroupUsersRequest) GetGroupId() string {
	if m != nil {
		return m.GroupId
	}
	return ""
}

func (m *BanGroupUsersRequest) GetUserIds() []string {
	if m != nil {
		return m.UserIds
	}
	return nil
}

// Block one or more friends for the current user.
type BlockFriendsRequest struct {
	// The account id of a user.
	Ids []string `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"`
	// The account username of a user.
	Usernames            []string `protobuf:"bytes,2,rep,name=usernames,proto3" json:"usernames,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_BlockFriendsRequest proto.InternalMessageInfo

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

func (m *BlockFriendsRequest) GetUsernames() []string {
	if m != nil {
		return m.Usernames
	}
	return nil
}

// A message sent on a channel.
type ChannelMessage struct {
	// The channel this message belongs to.
	ChannelId string `protobuf:"bytes,1,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
	// The unique ID of this message.
	MessageId string `protobuf:"bytes,2,opt,name=message_id,json=messageId,proto3" json:"message_id,omitempty"`
	// The code representing a message type or category.
	Code *wrappers.Int32Value `protobuf:"bytes,3,opt,name=code,proto3" json:"code,omitempty"`
	// Message sender, usually a user ID.
	SenderId string `protobuf:"bytes,4,opt,name=sender_id,json=senderId,proto3" json:"sender_id,omitempty"`
	// The username of the message sender, if any.
	Username string `protobuf:"bytes,5,opt,name=username,proto3" json:"username,omitempty"`
	// The content payload.
	Content string `protobuf:"bytes,6,opt,name=content,proto3" json:"content,omitempty"`
	// The UNIX time when the message was created.
	CreateTime *timestamp.Timestamp `protobuf:"bytes,7,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// The UNIX time when the message was last updated.
	UpdateTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	// True if the message was persisted to the channel's history, false otherwise.
	Persistent *wrappers.BoolValue `protobuf:"bytes,9,opt,name=persistent,proto3" json:"persistent,omitempty"`
	// The name of the chat room, or an empty string if this message was not sent through a chat room.
	RoomName string `protobuf:"bytes,10,opt,name=room_name,json=roomName,proto3" json:"room_name,omitempty"`
	// The ID of the group, or an empty string if this message was not sent through a group channel.
	GroupId string `protobuf:"bytes,11,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	// The ID of the first DM user, or an empty string if this message was not sent through a DM chat.
	UserIdOne string `protobuf:"bytes,12,opt,name=user_id_one,json=userIdOne,proto3" json:"user_id_one,omitempty"`
	// The ID of the second DM user, or an empty string if this message was not sent through a DM chat.
	UserIdTwo            string   `protobuf:"bytes,13,opt,name=user_id_two,json=userIdTwo,proto3" json:"user_id_two,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ChannelMessage proto.InternalMessageInfo

func (m *ChannelMessage) GetChannelId() string {
	if m != nil {
		return m.ChannelId
	}
	return ""
}

func (m *ChannelMessage) GetMessageId() string {
	if m != nil {
		return m.MessageId
	}
	return ""
}

func (m *ChannelMessage) GetCode() *wrappers.Int32Value {
	if m != nil {
		return m.Code
	}
	return nil
}

func (m *ChannelMessage) GetSenderId() string {
	if m != nil {
		return m.SenderId
	}
	return ""
}

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

func (m *ChannelMessage) GetContent() string {
	if m != nil {
		return m.Content
	}
	return ""
}

func (m *ChannelMessage) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *ChannelMessage) GetUpdateTime() *timestamp.Timestamp {
	if m != nil {
		return m.UpdateTime
	}
	return nil
}

func (m *ChannelMessage) GetPersistent() *wrappers.BoolValue {
	if m != nil {
		return m.Persistent
	}
	return nil
}

func (m *ChannelMessage) GetRoomName() string {
	if m != nil {
		return m.RoomName
	}
	return ""
}

func (m *ChannelMessage) GetGroupId() string {
	if m != nil {
		return m.GroupId
	}
	return ""
}

func (m *ChannelMessage) GetUserIdOne() string {
	if m != nil {
		return m.UserIdOne
	}
	return ""
}

func (m *ChannelMessage) GetUserIdTwo() string {
	if m != nil {
		return m.UserIdTwo
	}
	return ""
}

// A list of channel messages, usually a result of a list operation.
type ChannelMessageList struct {
	// A list of messages.
	Messages []*ChannelMessage `protobuf:"bytes,1,rep,name=messages,proto3" json:"messages,omitempty"`
	// The cursor to send when retireving the next page, if any.
	NextCursor string `protobuf:"bytes,2,opt,name=next_cursor,json=nextCursor,proto3" json:"next_cursor,omitempty"`
	// The cursor to send when retrieving the previous page, if any.
	PrevCursor           string   `protobuf:"bytes,3,opt,name=prev_cursor,json=prevCursor,proto3" json:"prev_cursor,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_ChannelMessageList proto.InternalMessageInfo

func (m *ChannelMessageList) GetMessages() []*ChannelMessage {
	if m != nil {
		return m.Messages
	}
	return nil
}

func (m *ChannelMessageList) GetNextCursor() string {
	if m != nil {
		return m.NextCursor
	}
	return ""
}

func (m *ChannelMessageList) GetPrevCursor() string {
	if m != nil {
		return m.PrevCursor
	}
	return ""
}

// Create a group with the current user as owner.
type CreateGroupRequest struct {
	// A unique name for the group.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// A description for the group.
	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	// The language expected to be a tag which follows the BCP-47 spec.
	LangTag string `protobuf:"bytes,3,opt,name=lang_tag,json=langTag,proto3" json:"lang_tag,omitempty"`
	// A URL for an avatar image.
	AvatarUrl string `protobuf:"bytes,4,opt,name=avatar_url,json=avatarUrl,proto3" json:"avatar_url,omitempty"`
	// Mark a group as open or not where only admins can accept members.
	Open bool `protobuf:"varint,5,opt,name=open,proto3" json:"open,omitempty"`
	// Maximum number of group members.
	MaxCount             int32    `protobuf:"varint,6,opt,name=max_count,json=maxCount,proto3" json:"max_count,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_CreateGroupRequest proto.InternalMessageInfo

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

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

func (m *CreateGroupRequest) GetLangTag() string {
	if m != nil {
		return m.LangTag
	}
	return ""
}

func (m *CreateGroupRequest) GetAvatarUrl() string {
	if m != nil {
		return m.AvatarUrl
	}
	return ""
}

func (m *CreateGroupRequest) GetOpen() bool {
	if m != nil {
		return m.Open
	}
	return false
}

func (m *CreateGroupRequest) GetMaxCount() int32 {
	if m != nil {
		return m.MaxCount
	}
	return 0
}

// Delete one or more friends for the current user.
type DeleteFriendsRequest struct {
	// The account id of a user.
	Ids []string `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"`
	// The account username of a user.
	Usernames            []string `protobuf:"bytes,2,rep,name=usernames,proto3" json:"usernames,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_DeleteFriendsRequest proto.InternalMessageInfo

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

func (m *DeleteFriendsRequest) GetUsernames() []string {
	if m != nil {
		return m.Usernames
	}
	return nil
}

// Delete a group the user has access to.
type DeleteGroupRequest struct {
	// The id of a group.
	GroupId              string   `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeleteGroupRequest) Reset()         { *m = DeleteGroupRequest{} }
func (m *DeleteGroupRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteGroupRequest) ProtoMessage()    {}
func (*DeleteGroupRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{27}
}

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

var xxx_messageInfo_DeleteGroupRequest proto.InternalMessageInfo

func (m *DeleteGroupRequest) GetGroupId() string {
	if m != nil {
		return m.GroupId
	}
	return ""
}

// Delete a leaderboard record.
type DeleteLeaderboardRecordRequest struct {
	// The leaderboard ID to delete from.
	LeaderboardId        string   `protobuf:"bytes,1,opt,name=leaderboard_id,json=leaderboardId,proto3" json:"leaderboard_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeleteLeaderboardRecordRequest) Reset()         { *m = DeleteLeaderboardRecordRequest{} }
func (m *DeleteLeaderboardRecordRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteLeaderboardRecordRequest) ProtoMessage()    {}
func (*DeleteLeaderboardRecordRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{28}
}

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

var xxx_messageInfo_DeleteLeaderboardRecordRequest proto.InternalMessageInfo

func (m *DeleteLeaderboardRecordRequest) GetLeaderboardId() string {
	if m != nil {
		return m.LeaderboardId
	}
	return ""
}

// Delete one or more notifications for the current user.
type DeleteNotificationsRequest struct {
	// The id of notifications.
	Ids                  []string `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeleteNotificationsRequest) Reset()         { *m = DeleteNotificationsRequest{} }
func (m *DeleteNotificationsRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteNotificationsRequest) ProtoMessage()    {}
func (*DeleteNotificationsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{29}
}

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

var xxx_messageInfo_DeleteNotificationsRequest proto.InternalMessageInfo

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

// Storage objects to delete.
type DeleteStorageObjectId struct {
	// The collection which stores the object.
	Collection string `protobuf:"bytes,1,opt,name=collection,proto3" json:"collection,omitempty"`
	// The key of the object within the collection.
	Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
	// The version hash of the object.
	Version              string   `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DeleteStorageObjectId) Reset()         { *m = DeleteStorageObjectId{} }
func (m *DeleteStorageObjectId) String() string { return proto.CompactTextString(m) }
func (*DeleteStorageObjectId) ProtoMessage()    {}
func (*DeleteStorageObjectId) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{30}
}

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

var xxx_messageInfo_DeleteStorageObjectId proto.InternalMessageInfo

func (m *DeleteStorageObjectId) GetCollection() string {
	if m != nil {
		return m.Collection
	}
	return ""
}

func (m *DeleteStorageObjectId) GetKey() string {
	if m != nil {
		return m.Key
	}
	return ""
}

func (m *DeleteStorageObjectId) GetVersion() string {
	if m != nil {
		return m.Version
	}
	return ""
}

// Batch delete storage objects.
type DeleteStorageObjectsRequest struct {
	// Batch of storage objects.
	ObjectIds            []*DeleteStorageObjectId `protobuf:"bytes,1,rep,name=object_ids,json=objectIds,proto3" json:"object_ids,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
	XXX_unrecognized     []byte                   `json:"-"`
	XXX_sizecache        int32                    `json:"-"`
}

func (m *DeleteStorageObjectsRequest) Reset()         { *m = DeleteStorageObjectsRequest{} }
func (m *DeleteStorageObjectsRequest) String() string { return proto.CompactTextString(m) }
func (*DeleteStorageObjectsRequest) ProtoMessage()    {}
func (*DeleteStorageObjectsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{31}
}

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

var xxx_messageInfo_DeleteStorageObjectsRequest proto.InternalMessageInfo

func (m *DeleteStorageObjectsRequest) GetObjectIds() []*DeleteStorageObjectId {
	if m != nil {
		return m.ObjectIds
	}
	return nil
}

// Represents an event to be passed through the server to registered event handlers.
type Event struct {
	// An event name, type, category, or identifier.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Arbitrary event property values.
	Properties map[string]string `protobuf:"bytes,2,rep,name=properties,proto3" json:"properties,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// The time when the event was triggered.
	Timestamp *timestamp.Timestamp `protobuf:"bytes,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"`
	// True if the event came directly from a client call, false otherwise.
	External             bool     `protobuf:"varint,4,opt,name=external,proto3" json:"external,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Event) Reset()         { *m = Event{} }
func (m *Event) String() string { return proto.CompactTextString(m) }
func (*Event) ProtoMessage()    {}
func (*Event) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{32}
}

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

var xxx_messageInfo_Event proto.InternalMessageInfo

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

func (m *Event) GetProperties() map[string]string {
	if m != nil {
		return m.Properties
	}
	return nil
}

func (m *Event) GetTimestamp() *timestamp.Timestamp {
	if m != nil {
		return m.Timestamp
	}
	return nil
}

func (m *Event) GetExternal() bool {
	if m != nil {
		return m.External
	}
	return false
}

// A friend of a user.
type Friend struct {
	// The user object.
	User *User `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`
	// The friend status.
	State *wrappers.Int32Value `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
	// Time of the latest relationship update.
	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,3,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *Friend) Reset()         { *m = Friend{} }
func (m *Friend) String() string { return proto.CompactTextString(m) }
func (*Friend) ProtoMessage()    {}
func (*Friend) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{33}
}

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

var xxx_messageInfo_Friend proto.InternalMessageInfo

func (m *Friend) GetUser() *User {
	if m != nil {
		return m.User
	}
	return nil
}

func (m *Friend) GetState() *wrappers.Int32Value {
	if m != nil {
		return m.State
	}
	return nil
}

func (m *Friend) GetUpdateTime() *timestamp.Timestamp {
	if m != nil {
		return m.UpdateTime
	}
	return nil
}

// A collection of zero or more friends of the user.
type FriendList struct {
	// The Friend objects.
	Friends []*Friend `protobuf:"bytes,1,rep,name=friends,proto3" json:"friends,omitempty"`
	// Cursor for the next page of results, if any.
	Cursor               string   `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *FriendList) Reset()         { *m = FriendList{} }
func (m *FriendList) String() string { return proto.CompactTextString(m) }
func (*FriendList) ProtoMessage()    {}
func (*FriendList) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{34}
}

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

var xxx_messageInfo_FriendList proto.InternalMessageInfo

func (m *FriendList) GetFriends() []*Friend {
	if m != nil {
		return m.Friends
	}
	return nil
}

func (m *FriendList) GetCursor() string {
	if m != nil {
		return m.Cursor
	}
	return ""
}

// Fetch a batch of zero or more users from the server.
type GetUsersRequest struct {
	// The account id of a user.
	Ids []string `protobuf:"bytes,1,rep,name=ids,proto3" json:"ids,omitempty"`
	// The account username of a user.
	Usernames []string `protobuf:"bytes,2,rep,name=usernames,proto3" json:"usernames,omitempty"`
	// The Facebook ID of a user.
	FacebookIds          []string `protobuf:"bytes,3,rep,name=facebook_ids,json=facebookIds,proto3" json:"facebook_ids,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GetUsersRequest) Reset()         { *m = GetUsersRequest{} }
func (m *GetUsersRequest) String() string { return proto.CompactTextString(m) }
func (*GetUsersRequest) ProtoMessage()    {}
func (*GetUsersRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{35}
}

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

var xxx_messageInfo_GetUsersRequest proto.InternalMessageInfo

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

func (m *GetUsersRequest) GetUsernames() []string {
	if m != nil {
		return m.Usernames
	}
	return nil
}

func (m *GetUsersRequest) GetFacebookIds() []string {
	if m != nil {
		return m.FacebookIds
	}
	return nil
}

// A group in the server.
type Group struct {
	// The id of a group.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// The id of the user who created the group.
	CreatorId string `protobuf:"bytes,2,opt,name=creator_id,json=creatorId,proto3" json:"creator_id,omitempty"`
	// The unique name of the group.
	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	// A description for the group.
	Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
	// The language expected to be a tag which follows the BCP-47 spec.
	LangTag string `protobuf:"bytes,5,opt,name=lang_tag,json=langTag,proto3" json:"lang_tag,omitempty"`
	// Additional information stored as a JSON object.
	Metadata string `protobuf:"bytes,6,opt,name=metadata,proto3" json:"metadata,omitempty"`
	// A URL for an avatar image.
	AvatarUrl string `protobuf:"bytes,7,opt,name=avatar_url,json=avatarUrl,proto3" json:"avatar_url,omitempty"`
	// Anyone can join open groups, otherwise only admins can accept members.
	Open *wrappers.BoolValue `protobuf:"bytes,8,opt,name=open,proto3" json:"open,omitempty"`
	// The current count of all members in the group.
	EdgeCount int32 `protobuf:"varint,9,opt,name=edge_count,json=edgeCount,proto3" json:"edge_count,omitempty"`
	// The maximum number of members allowed.
	MaxCount int32 `protobuf:"varint,10,opt,name=max_count,json=maxCount,proto3" json:"max_count,omitempty"`
	// The UNIX time when the group was created.
	CreateTime *timestamp.Timestamp `protobuf:"bytes,11,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// The UNIX time when the group was last updated.
	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,12,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *Group) Reset()         { *m = Group{} }
func (m *Group) String() string { return proto.CompactTextString(m) }
func (*Group) ProtoMessage()    {}
func (*Group) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{36}
}

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

var xxx_messageInfo_Group proto.InternalMessageInfo

func (m *Group) GetId() string {
	if m != nil {
		return m.Id
	}
	return ""
}

func (m *Group) GetCreatorId() string {
	if m != nil {
		return m.CreatorId
	}
	return ""
}

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

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

func (m *Group) GetLangTag() string {
	if m != nil {
		return m.LangTag
	}
	return ""
}

func (m *Group) GetMetadata() string {
	if m != nil {
		return m.Metadata
	}
	return ""
}

func (m *Group) GetAvatarUrl() string {
	if m != nil {
		return m.AvatarUrl
	}
	return ""
}

func (m *Group) GetOpen() *wrappers.BoolValue {
	if m != nil {
		return m.Open
	}
	return nil
}

func (m *Group) GetEdgeCount() int32 {
	if m != nil {
		return m.EdgeCount
	}
	return 0
}

func (m *Group) GetMaxCount() int32 {
	if m != nil {
		return m.MaxCount
	}
	return 0
}

func (m *Group) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *Group) GetUpdateTime() *timestamp.Timestamp {
	if m != nil {
		return m.UpdateTime
	}
	return nil
}

// One or more groups returned from a listing operation.
type GroupList struct {
	// One or more groups.
	Groups []*Group `protobuf:"bytes,1,rep,name=groups,proto3" json:"groups,omitempty"`
	// A cursor used to get the next page.
	Cursor               string   `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GroupList) Reset()         { *m = GroupList{} }
func (m *GroupList) String() string { return proto.CompactTextString(m) }
func (*GroupList) ProtoMessage()    {}
func (*GroupList) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{37}
}

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

var xxx_messageInfo_GroupList proto.InternalMessageInfo

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

func (m *GroupList) GetCursor() string {
	if m != nil {
		return m.Cursor
	}
	return ""
}

// A list of users belonging to a group, along with their role.
type GroupUserList struct {
	// User-role pairs for a group.
	GroupUsers []*GroupUserList_GroupUser `protobuf:"bytes,1,rep,name=group_users,json=groupUsers,proto3" json:"group_users,omitempty"`
	// Cursor for the next page of results, if any.
	Cursor               string   `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *GroupUserList) Reset()         { *m = GroupUserList{} }
func (m *GroupUserList) String() string { return proto.CompactTextString(m) }
func (*GroupUserList) ProtoMessage()    {}
func (*GroupUserList) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{38}
}

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

var xxx_messageInfo_GroupUserList proto.InternalMessageInfo

func (m *GroupUserList) GetGroupUsers() []*GroupUserList_GroupUser {
	if m != nil {
		return m.GroupUsers
	}
	return nil
}

func (m *GroupUserList) GetCursor() string {
	if m != nil {
		return m.Cursor
	}
	return ""
}

// A single user-role pair.
type GroupUserList_GroupUser struct {
	// User.
	User *User `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"`
	// Their relationship to the group.
	State                *wrappers.Int32Value `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

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

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

var xxx_messageInfo_GroupUserList_GroupUser proto.InternalMessageInfo

func (m *GroupUserList_GroupUser) GetUser() *User {
	if m != nil {
		return m.User
	}
	return nil
}

func (m *GroupUserList_GroupUser) GetState() *wrappers.Int32Value {
	if m != nil {
		return m.State
	}
	return nil
}

// Import Facebook friends into the current user's account.
type ImportFacebookFriendsRequest struct {
	// The Facebook account details.
	Account *AccountFacebook `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"`
	// Reset the current user's friends list.
	Reset_               *wrappers.BoolValue `protobuf:"bytes,2,opt,name=reset,proto3" json:"reset,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *ImportFacebookFriendsRequest) Reset()         { *m = ImportFacebookFriendsRequest{} }
func (m *ImportFacebookFriendsRequest) String() string { return proto.CompactTextString(m) }
func (*ImportFacebookFriendsRequest) ProtoMessage()    {}
func (*ImportFacebookFriendsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{39}
}

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

var xxx_messageInfo_ImportFacebookFriendsRequest proto.InternalMessageInfo

func (m *ImportFacebookFriendsRequest) GetAccount() *AccountFacebook {
	if m != nil {
		return m.Account
	}
	return nil
}

func (m *ImportFacebookFriendsRequest) GetReset_() *wrappers.BoolValue {
	if m != nil {
		return m.Reset_
	}
	return nil
}

// Immediately join an open group, or request to join a closed one.
type JoinGroupRequest struct {
	// The group ID to join. The group must already exist.
	GroupId              string   `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *JoinGroupRequest) Reset()         { *m = JoinGroupRequest{} }
func (m *JoinGroupRequest) String() string { return proto.CompactTextString(m) }
func (*JoinGroupRequest) ProtoMessage()    {}
func (*JoinGroupRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{40}
}

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

var xxx_messageInfo_JoinGroupRequest proto.InternalMessageInfo

func (m *JoinGroupRequest) GetGroupId() string {
	if m != nil {
		return m.GroupId
	}
	return ""
}

// The request to join a tournament.
type JoinTournamentRequest struct {
	// The ID of the tournament to join. The tournament must already exist.
	TournamentId         string   `protobuf:"bytes,1,opt,name=tournament_id,json=tournamentId,proto3" json:"tournament_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *JoinTournamentRequest) Reset()         { *m = JoinTournamentRequest{} }
func (m *JoinTournamentRequest) String() string { return proto.CompactTextString(m) }
func (*JoinTournamentRequest) ProtoMessage()    {}
func (*JoinTournamentRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{41}
}

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

var xxx_messageInfo_JoinTournamentRequest proto.InternalMessageInfo

func (m *JoinTournamentRequest) GetTournamentId() string {
	if m != nil {
		return m.TournamentId
	}
	return ""
}

// Kick a set of users from a group.
type KickGroupUsersRequest struct {
	// The group ID to kick from.
	GroupId string `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	// The users to kick.
	UserIds              []string `protobuf:"bytes,2,rep,name=user_ids,json=userIds,proto3" json:"user_ids,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *KickGroupUsersRequest) Reset()         { *m = KickGroupUsersRequest{} }
func (m *KickGroupUsersRequest) String() string { return proto.CompactTextString(m) }
func (*KickGroupUsersRequest) ProtoMessage()    {}
func (*KickGroupUsersRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{42}
}

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

var xxx_messageInfo_KickGroupUsersRequest proto.InternalMessageInfo

func (m *KickGroupUsersRequest) GetGroupId() string {
	if m != nil {
		return m.GroupId
	}
	return ""
}

func (m *KickGroupUsersRequest) GetUserIds() []string {
	if m != nil {
		return m.UserIds
	}
	return nil
}

// Represents a complete leaderboard record with all scores and associated metadata.
type LeaderboardRecord struct {
	// The ID of the leaderboard this score belongs to.
	LeaderboardId string `protobuf:"bytes,1,opt,name=leaderboard_id,json=leaderboardId,proto3" json:"leaderboard_id,omitempty"`
	// The ID of the score owner, usually a user or group.
	OwnerId string `protobuf:"bytes,2,opt,name=owner_id,json=ownerId,proto3" json:"owner_id,omitempty"`
	// The username of the score owner, if the owner is a user.
	Username *wrappers.StringValue `protobuf:"bytes,3,opt,name=username,proto3" json:"username,omitempty"`
	// The score value.
	Score int64 `protobuf:"varint,4,opt,name=score,proto3" json:"score,omitempty"`
	// An optional subscore value.
	Subscore int64 `protobuf:"varint,5,opt,name=subscore,proto3" json:"subscore,omitempty"`
	// The number of submissions to this score record.
	NumScore int32 `protobuf:"varint,6,opt,name=num_score,json=numScore,proto3" json:"num_score,omitempty"`
	// Metadata.
	Metadata string `protobuf:"bytes,7,opt,name=metadata,proto3" json:"metadata,omitempty"`
	// The UNIX time when the leaderboard record was created.
	CreateTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// The UNIX time when the leaderboard record was updated.
	UpdateTime *timestamp.Timestamp `protobuf:"bytes,9,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	// The UNIX time when the leaderboard record expires.
	ExpiryTime *timestamp.Timestamp `protobuf:"bytes,10,opt,name=expiry_time,json=expiryTime,proto3" json:"expiry_time,omitempty"`
	// The rank of this record.
	Rank int64 `protobuf:"varint,11,opt,name=rank,proto3" json:"rank,omitempty"`
	// The maximum number of score updates allowed by the owner.
	MaxNumScore          uint32   `protobuf:"varint,12,opt,name=max_num_score,json=maxNumScore,proto3" json:"max_num_score,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *LeaderboardRecord) Reset()         { *m = LeaderboardRecord{} }
func (m *LeaderboardRecord) String() string { return proto.CompactTextString(m) }
func (*LeaderboardRecord) ProtoMessage()    {}
func (*LeaderboardRecord) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{43}
}

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

var xxx_messageInfo_LeaderboardRecord proto.InternalMessageInfo

func (m *LeaderboardRecord) GetLeaderboardId() string {
	if m != nil {
		return m.LeaderboardId
	}
	return ""
}

func (m *LeaderboardRecord) GetOwnerId() string {
	if m != nil {
		return m.OwnerId
	}
	return ""
}

func (m *LeaderboardRecord) GetUsername() *wrappers.StringValue {
	if m != nil {
		return m.Username
	}
	return nil
}

func (m *LeaderboardRecord) GetScore() int64 {
	if m != nil {
		return m.Score
	}
	return 0
}

func (m *LeaderboardRecord) GetSubscore() int64 {
	if m != nil {
		return m.Subscore
	}
	return 0
}

func (m *LeaderboardRecord) GetNumScore() int32 {
	if m != nil {
		return m.NumScore
	}
	return 0
}

func (m *LeaderboardRecord) GetMetadata() string {
	if m != nil {
		return m.Metadata
	}
	return ""
}

func (m *LeaderboardRecord) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *LeaderboardRecord) GetUpdateTime() *timestamp.Timestamp {
	if m != nil {
		return m.UpdateTime
	}
	return nil
}

func (m *LeaderboardRecord) GetExpiryTime() *timestamp.Timestamp {
	if m != nil {
		return m.ExpiryTime
	}
	return nil
}

func (m *LeaderboardRecord) GetRank() int64 {
	if m != nil {
		return m.Rank
	}
	return 0
}

func (m *LeaderboardRecord) GetMaxNumScore() uint32 {
	if m != nil {
		return m.MaxNumScore
	}
	return 0
}

// A set of leaderboard records, may be part of a leaderboard records page or a batch of individual records.
type LeaderboardRecordList struct {
	// A list of leaderboard records.
	Records []*LeaderboardRecord `protobuf:"bytes,1,rep,name=records,proto3" json:"records,omitempty"`
	// A batched set of leaderboard records belonging to specified owners.
	OwnerRecords []*LeaderboardRecord `protobuf:"bytes,2,rep,name=owner_records,json=ownerRecords,proto3" json:"owner_records,omitempty"`
	// The cursor to send when retrieving the next page, if any.
	NextCursor string `protobuf:"bytes,3,opt,name=next_cursor,json=nextCursor,proto3" json:"next_cursor,omitempty"`
	// The cursor to send when retrieving the previous page, if any.
	PrevCursor           string   `protobuf:"bytes,4,opt,name=prev_cursor,json=prevCursor,proto3" json:"prev_cursor,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *LeaderboardRecordList) Reset()         { *m = LeaderboardRecordList{} }
func (m *LeaderboardRecordList) String() string { return proto.CompactTextString(m) }
func (*LeaderboardRecordList) ProtoMessage()    {}
func (*LeaderboardRecordList) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{44}
}

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

var xxx_messageInfo_LeaderboardRecordList proto.InternalMessageInfo

func (m *LeaderboardRecordList) GetRecords() []*LeaderboardRecord {
	if m != nil {
		return m.Records
	}
	return nil
}

func (m *LeaderboardRecordList) GetOwnerRecords() []*LeaderboardRecord {
	if m != nil {
		return m.OwnerRecords
	}
	return nil
}

func (m *LeaderboardRecordList) GetNextCursor() string {
	if m != nil {
		return m.NextCursor
	}
	return ""
}

func (m *LeaderboardRecordList) GetPrevCursor() string {
	if m != nil {
		return m.PrevCursor
	}
	return ""
}

// Leave a group.
type LeaveGroupRequest struct {
	// The group ID to leave.
	GroupId              string   `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *LeaveGroupRequest) Reset()         { *m = LeaveGroupRequest{} }
func (m *LeaveGroupRequest) String() string { return proto.CompactTextString(m) }
func (*LeaveGroupRequest) ProtoMessage()    {}
func (*LeaveGroupRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{45}
}

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

var xxx_messageInfo_LeaveGroupRequest proto.InternalMessageInfo

func (m *LeaveGroupRequest) GetGroupId() string {
	if m != nil {
		return m.GroupId
	}
	return ""
}

// Link Facebook to the current user's account.
type LinkFacebookRequest struct {
	// The Facebook account details.
	Account *AccountFacebook `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"`
	// Import Facebook friends for the user.
	Sync                 *wrappers.BoolValue `protobuf:"bytes,4,opt,name=sync,proto3" json:"sync,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *LinkFacebookRequest) Reset()         { *m = LinkFacebookRequest{} }
func (m *LinkFacebookRequest) String() string { return proto.CompactTextString(m) }
func (*LinkFacebookRequest) ProtoMessage()    {}
func (*LinkFacebookRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{46}
}

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

var xxx_messageInfo_LinkFacebookRequest proto.InternalMessageInfo

func (m *LinkFacebookRequest) GetAccount() *AccountFacebook {
	if m != nil {
		return m.Account
	}
	return nil
}

func (m *LinkFacebookRequest) GetSync() *wrappers.BoolValue {
	if m != nil {
		return m.Sync
	}
	return nil
}

// List a channel's message history.
type ListChannelMessagesRequest struct {
	// The channel ID to list from.
	ChannelId string `protobuf:"bytes,1,opt,name=channel_id,json=channelId,proto3" json:"channel_id,omitempty"`
	// Max number of records to return. Between 1 and 100.
	Limit *wrappers.Int32Value `protobuf:"bytes,2,opt,name=limit,proto3" json:"limit,omitempty"`
	// True if listing should be older messages to newer, false if reverse.
	Forward *wrappers.BoolValue `protobuf:"bytes,3,opt,name=forward,proto3" json:"forward,omitempty"`
	// A pagination cursor, if any.
	Cursor               string   `protobuf:"bytes,4,opt,name=cursor,proto3" json:"cursor,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListChannelMessagesRequest) Reset()         { *m = ListChannelMessagesRequest{} }
func (m *ListChannelMessagesRequest) String() string { return proto.CompactTextString(m) }
func (*ListChannelMessagesRequest) ProtoMessage()    {}
func (*ListChannelMessagesRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{47}
}

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

var xxx_messageInfo_ListChannelMessagesRequest proto.InternalMessageInfo

func (m *ListChannelMessagesRequest) GetChannelId() string {
	if m != nil {
		return m.ChannelId
	}
	return ""
}

func (m *ListChannelMessagesRequest) GetLimit() *wrappers.Int32Value {
	if m != nil {
		return m.Limit
	}
	return nil
}

func (m *ListChannelMessagesRequest) GetForward() *wrappers.BoolValue {
	if m != nil {
		return m.Forward
	}
	return nil
}

func (m *ListChannelMessagesRequest) GetCursor() string {
	if m != nil {
		return m.Cursor
	}
	return ""
}

// List friends for a user.
type ListFriendsRequest struct {
	// Max number of records to return. Between 1 and 100.
	Limit *wrappers.Int32Value `protobuf:"bytes,1,opt,name=limit,proto3" json:"limit,omitempty"`
	// The friend state to list.
	State *wrappers.Int32Value `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
	// An optional next page cursor.
	Cursor               string   `protobuf:"bytes,3,opt,name=cursor,proto3" json:"cursor,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListFriendsRequest) Reset()         { *m = ListFriendsRequest{} }
func (m *ListFriendsRequest) String() string { return proto.CompactTextString(m) }
func (*ListFriendsRequest) ProtoMessage()    {}
func (*ListFriendsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{48}
}

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

var xxx_messageInfo_ListFriendsRequest proto.InternalMessageInfo

func (m *ListFriendsRequest) GetLimit() *wrappers.Int32Value {
	if m != nil {
		return m.Limit
	}
	return nil
}

func (m *ListFriendsRequest) GetState() *wrappers.Int32Value {
	if m != nil {
		return m.State
	}
	return nil
}

func (m *ListFriendsRequest) GetCursor() string {
	if m != nil {
		return m.Cursor
	}
	return ""
}

// List groups based on given filters.
type ListGroupsRequest struct {
	// List groups that contain this value in their names.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Optional pagination cursor.
	Cursor string `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor,omitempty"`
	// Max number of groups to return. Between 1 and 100.
	Limit                *wrappers.Int32Value `protobuf:"bytes,3,opt,name=limit,proto3" json:"limit,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *ListGroupsRequest) Reset()         { *m = ListGroupsRequest{} }
func (m *ListGroupsRequest) String() string { return proto.CompactTextString(m) }
func (*ListGroupsRequest) ProtoMessage()    {}
func (*ListGroupsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{49}
}

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

var xxx_messageInfo_ListGroupsRequest proto.InternalMessageInfo

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

func (m *ListGroupsRequest) GetCursor() string {
	if m != nil {
		return m.Cursor
	}
	return ""
}

func (m *ListGroupsRequest) GetLimit() *wrappers.Int32Value {
	if m != nil {
		return m.Limit
	}
	return nil
}

// List all users that are part of a group.
type ListGroupUsersRequest struct {
	// The group ID to list from.
	GroupId string `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	// Max number of records to return. Between 1 and 100.
	Limit *wrappers.Int32Value `protobuf:"bytes,2,opt,name=limit,proto3" json:"limit,omitempty"`
	// The group user state to list.
	State *wrappers.Int32Value `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"`
	// An optional next page cursor.
	Cursor               string   `protobuf:"bytes,4,opt,name=cursor,proto3" json:"cursor,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListGroupUsersRequest) Reset()         { *m = ListGroupUsersRequest{} }
func (m *ListGroupUsersRequest) String() string { return proto.CompactTextString(m) }
func (*ListGroupUsersRequest) ProtoMessage()    {}
func (*ListGroupUsersRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{50}
}

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

var xxx_messageInfo_ListGroupUsersRequest proto.InternalMessageInfo

func (m *ListGroupUsersRequest) GetGroupId() string {
	if m != nil {
		return m.GroupId
	}
	return ""
}

func (m *ListGroupUsersRequest) GetLimit() *wrappers.Int32Value {
	if m != nil {
		return m.Limit
	}
	return nil
}

func (m *ListGroupUsersRequest) GetState() *wrappers.Int32Value {
	if m != nil {
		return m.State
	}
	return nil
}

func (m *ListGroupUsersRequest) GetCursor() string {
	if m != nil {
		return m.Cursor
	}
	return ""
}

// List leaerboard records from a given leaderboard around the owner.
type ListLeaderboardRecordsAroundOwnerRequest struct {
	// The ID of the tournament to list for.
	LeaderboardId string `protobuf:"bytes,1,opt,name=leaderboard_id,json=leaderboardId,proto3" json:"leaderboard_id,omitempty"`
	// Max number of records to return. Between 1 and 100.
	Limit *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=limit,proto3" json:"limit,omitempty"`
	// The owner to retrieve records around.
	OwnerId string `protobuf:"bytes,3,opt,name=owner_id,json=ownerId,proto3" json:"owner_id,omitempty"`
	// Expiry in seconds (since epoch) to begin fetching records from.
	Expiry               *wrappers.Int64Value `protobuf:"bytes,4,opt,name=expiry,proto3" json:"expiry,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *ListLeaderboardRecordsAroundOwnerRequest) Reset() {
	*m = ListLeaderboardRecordsAroundOwnerRequest{}
}
func (m *ListLeaderboardRecordsAroundOwnerRequest) String() string { return proto.CompactTextString(m) }
func (*ListLeaderboardRecordsAroundOwnerRequest) ProtoMessage()    {}
func (*ListLeaderboardRecordsAroundOwnerRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{51}
}

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

var xxx_messageInfo_ListLeaderboardRecordsAroundOwnerRequest proto.InternalMessageInfo

func (m *ListLeaderboardRecordsAroundOwnerRequest) GetLeaderboardId() string {
	if m != nil {
		return m.LeaderboardId
	}
	return ""
}

func (m *ListLeaderboardRecordsAroundOwnerRequest) GetLimit() *wrappers.UInt32Value {
	if m != nil {
		return m.Limit
	}
	return nil
}

func (m *ListLeaderboardRecordsAroundOwnerRequest) GetOwnerId() string {
	if m != nil {
		return m.OwnerId
	}
	return ""
}

func (m *ListLeaderboardRecordsAroundOwnerRequest) GetExpiry() *wrappers.Int64Value {
	if m != nil {
		return m.Expiry
	}
	return nil
}

// List leaderboard records from a given leaderboard.
type ListLeaderboardRecordsRequest struct {
	// The ID of the leaderboard to list for.
	LeaderboardId string `protobuf:"bytes,1,opt,name=leaderboard_id,json=leaderboardId,proto3" json:"leaderboard_id,omitempty"`
	// One or more owners to retrieve records for.
	OwnerIds []string `protobuf:"bytes,2,rep,name=owner_ids,json=ownerIds,proto3" json:"owner_ids,omitempty"`
	// Max number of records to return. Between 1 and 100.
	Limit *wrappers.Int32Value `protobuf:"bytes,3,opt,name=limit,proto3" json:"limit,omitempty"`
	// A next or previous page cursor.
	Cursor string `protobuf:"bytes,4,opt,name=cursor,proto3" json:"cursor,omitempty"`
	// Expiry in seconds (since epoch) to begin fetching records from. Optional. 0 means from current time.
	Expiry               *wrappers.Int64Value `protobuf:"bytes,5,opt,name=expiry,proto3" json:"expiry,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *ListLeaderboardRecordsRequest) Reset()         { *m = ListLeaderboardRecordsRequest{} }
func (m *ListLeaderboardRecordsRequest) String() string { return proto.CompactTextString(m) }
func (*ListLeaderboardRecordsRequest) ProtoMessage()    {}
func (*ListLeaderboardRecordsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{52}
}

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

var xxx_messageInfo_ListLeaderboardRecordsRequest proto.InternalMessageInfo

func (m *ListLeaderboardRecordsRequest) GetLeaderboardId() string {
	if m != nil {
		return m.LeaderboardId
	}
	return ""
}

func (m *ListLeaderboardRecordsRequest) GetOwnerIds() []string {
	if m != nil {
		return m.OwnerIds
	}
	return nil
}

func (m *ListLeaderboardRecordsRequest) GetLimit() *wrappers.Int32Value {
	if m != nil {
		return m.Limit
	}
	return nil
}

func (m *ListLeaderboardRecordsRequest) GetCursor() string {
	if m != nil {
		return m.Cursor
	}
	return ""
}

func (m *ListLeaderboardRecordsRequest) GetExpiry() *wrappers.Int64Value {
	if m != nil {
		return m.Expiry
	}
	return nil
}

// List realtime matches.
type ListMatchesRequest struct {
	// Limit the number of returned matches.
	Limit *wrappers.Int32Value `protobuf:"bytes,1,opt,name=limit,proto3" json:"limit,omitempty"`
	// Authoritative or relayed matches.
	Authoritative *wrappers.BoolValue `protobuf:"bytes,2,opt,name=authoritative,proto3" json:"authoritative,omitempty"`
	// Label filter.
	Label *wrappers.StringValue `protobuf:"bytes,3,opt,name=label,proto3" json:"label,omitempty"`
	// Minimum user count.
	MinSize *wrappers.Int32Value `protobuf:"bytes,4,opt,name=min_size,json=minSize,proto3" json:"min_size,omitempty"`
	// Maximum user count.
	MaxSize *wrappers.Int32Value `protobuf:"bytes,5,opt,name=max_size,json=maxSize,proto3" json:"max_size,omitempty"`
	// Arbitrary label query.
	Query                *wrappers.StringValue `protobuf:"bytes,6,opt,name=query,proto3" json:"query,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *ListMatchesRequest) Reset()         { *m = ListMatchesRequest{} }
func (m *ListMatchesRequest) String() string { return proto.CompactTextString(m) }
func (*ListMatchesRequest) ProtoMessage()    {}
func (*ListMatchesRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{53}
}

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

var xxx_messageInfo_ListMatchesRequest proto.InternalMessageInfo

func (m *ListMatchesRequest) GetLimit() *wrappers.Int32Value {
	if m != nil {
		return m.Limit
	}
	return nil
}

func (m *ListMatchesRequest) GetAuthoritative() *wrappers.BoolValue {
	if m != nil {
		return m.Authoritative
	}
	return nil
}

func (m *ListMatchesRequest) GetLabel() *wrappers.StringValue {
	if m != nil {
		return m.Label
	}
	return nil
}

func (m *ListMatchesRequest) GetMinSize() *wrappers.Int32Value {
	if m != nil {
		return m.MinSize
	}
	return nil
}

func (m *ListMatchesRequest) GetMaxSize() *wrappers.Int32Value {
	if m != nil {
		return m.MaxSize
	}
	return nil
}

func (m *ListMatchesRequest) GetQuery() *wrappers.StringValue {
	if m != nil {
		return m.Query
	}
	return nil
}

// Get a list of unexpired notifications.
type ListNotificationsRequest struct {
	// The number of notifications to get. Between 1 and 100.
	Limit *wrappers.Int32Value `protobuf:"bytes,1,opt,name=limit,proto3" json:"limit,omitempty"`
	// A cursor to page through notifications. May be cached by clients to get from point in time forwards.
	CacheableCursor      string   `protobuf:"bytes,2,opt,name=cacheable_cursor,json=cacheableCursor,proto3" json:"cacheable_cursor,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListNotificationsRequest) Reset()         { *m = ListNotificationsRequest{} }
func (m *ListNotificationsRequest) String() string { return proto.CompactTextString(m) }
func (*ListNotificationsRequest) ProtoMessage()    {}
func (*ListNotificationsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{54}
}

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

var xxx_messageInfo_ListNotificationsRequest proto.InternalMessageInfo

func (m *ListNotificationsRequest) GetLimit() *wrappers.Int32Value {
	if m != nil {
		return m.Limit
	}
	return nil
}

func (m *ListNotificationsRequest) GetCacheableCursor() string {
	if m != nil {
		return m.CacheableCursor
	}
	return ""
}

// List publicly readable storage objects in a given collection.
type ListStorageObjectsRequest struct {
	// ID of the user.
	UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// The collection which stores the object.
	Collection string `protobuf:"bytes,2,opt,name=collection,proto3" json:"collection,omitempty"`
	// The number of storage objects to list. Between 1 and 100.
	Limit *wrappers.Int32Value `protobuf:"bytes,3,opt,name=limit,proto3" json:"limit,omitempty"`
	// The cursor to page through results from.
	Cursor               string   `protobuf:"bytes,4,opt,name=cursor,proto3" json:"cursor,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListStorageObjectsRequest) Reset()         { *m = ListStorageObjectsRequest{} }
func (m *ListStorageObjectsRequest) String() string { return proto.CompactTextString(m) }
func (*ListStorageObjectsRequest) ProtoMessage()    {}
func (*ListStorageObjectsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{55}
}

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

var xxx_messageInfo_ListStorageObjectsRequest proto.InternalMessageInfo

func (m *ListStorageObjectsRequest) GetUserId() string {
	if m != nil {
		return m.UserId
	}
	return ""
}

func (m *ListStorageObjectsRequest) GetCollection() string {
	if m != nil {
		return m.Collection
	}
	return ""
}

func (m *ListStorageObjectsRequest) GetLimit() *wrappers.Int32Value {
	if m != nil {
		return m.Limit
	}
	return nil
}

func (m *ListStorageObjectsRequest) GetCursor() string {
	if m != nil {
		return m.Cursor
	}
	return ""
}

// List tournament records from a given tournament around the owner.
type ListTournamentRecordsAroundOwnerRequest struct {
	// The ID of the tournament to list for.
	TournamentId string `protobuf:"bytes,1,opt,name=tournament_id,json=tournamentId,proto3" json:"tournament_id,omitempty"`
	// Max number of records to return. Between 1 and 100.
	Limit *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=limit,proto3" json:"limit,omitempty"`
	// The owner to retrieve records around.
	OwnerId string `protobuf:"bytes,3,opt,name=owner_id,json=ownerId,proto3" json:"owner_id,omitempty"`
	// Expiry in seconds (since epoch) to begin fetching records from.
	Expiry               *wrappers.Int64Value `protobuf:"bytes,4,opt,name=expiry,proto3" json:"expiry,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *ListTournamentRecordsAroundOwnerRequest) Reset() {
	*m = ListTournamentRecordsAroundOwnerRequest{}
}
func (m *ListTournamentRecordsAroundOwnerRequest) String() string { return proto.CompactTextString(m) }
func (*ListTournamentRecordsAroundOwnerRequest) ProtoMessage()    {}
func (*ListTournamentRecordsAroundOwnerRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{56}
}

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

var xxx_messageInfo_ListTournamentRecordsAroundOwnerRequest proto.InternalMessageInfo

func (m *ListTournamentRecordsAroundOwnerRequest) GetTournamentId() string {
	if m != nil {
		return m.TournamentId
	}
	return ""
}

func (m *ListTournamentRecordsAroundOwnerRequest) GetLimit() *wrappers.UInt32Value {
	if m != nil {
		return m.Limit
	}
	return nil
}

func (m *ListTournamentRecordsAroundOwnerRequest) GetOwnerId() string {
	if m != nil {
		return m.OwnerId
	}
	return ""
}

func (m *ListTournamentRecordsAroundOwnerRequest) GetExpiry() *wrappers.Int64Value {
	if m != nil {
		return m.Expiry
	}
	return nil
}

// List tournament records from a given tournament.
type ListTournamentRecordsRequest struct {
	// The ID of the tournament to list for.
	TournamentId string `protobuf:"bytes,1,opt,name=tournament_id,json=tournamentId,proto3" json:"tournament_id,omitempty"`
	// One or more owners to retrieve records for.
	OwnerIds []string `protobuf:"bytes,2,rep,name=owner_ids,json=ownerIds,proto3" json:"owner_ids,omitempty"`
	// Max number of records to return. Between 1 and 100.
	Limit *wrappers.Int32Value `protobuf:"bytes,3,opt,name=limit,proto3" json:"limit,omitempty"`
	// A next or previous page cursor.
	Cursor string `protobuf:"bytes,4,opt,name=cursor,proto3" json:"cursor,omitempty"`
	// Expiry in seconds (since epoch) to begin fetching records from.
	Expiry               *wrappers.Int64Value `protobuf:"bytes,5,opt,name=expiry,proto3" json:"expiry,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *ListTournamentRecordsRequest) Reset()         { *m = ListTournamentRecordsRequest{} }
func (m *ListTournamentRecordsRequest) String() string { return proto.CompactTextString(m) }
func (*ListTournamentRecordsRequest) ProtoMessage()    {}
func (*ListTournamentRecordsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{57}
}

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

var xxx_messageInfo_ListTournamentRecordsRequest proto.InternalMessageInfo

func (m *ListTournamentRecordsRequest) GetTournamentId() string {
	if m != nil {
		return m.TournamentId
	}
	return ""
}

func (m *ListTournamentRecordsRequest) GetOwnerIds() []string {
	if m != nil {
		return m.OwnerIds
	}
	return nil
}

func (m *ListTournamentRecordsRequest) GetLimit() *wrappers.Int32Value {
	if m != nil {
		return m.Limit
	}
	return nil
}

func (m *ListTournamentRecordsRequest) GetCursor() string {
	if m != nil {
		return m.Cursor
	}
	return ""
}

func (m *ListTournamentRecordsRequest) GetExpiry() *wrappers.Int64Value {
	if m != nil {
		return m.Expiry
	}
	return nil
}

// List active/upcoming tournaments based on given filters.
type ListTournamentsRequest struct {
	// The start of the categories to include. Defaults to 0.
	CategoryStart *wrappers.UInt32Value `protobuf:"bytes,1,opt,name=category_start,json=categoryStart,proto3" json:"category_start,omitempty"`
	// The end of the categories to include. Defaults to 128.
	CategoryEnd *wrappers.UInt32Value `protobuf:"bytes,2,opt,name=category_end,json=categoryEnd,proto3" json:"category_end,omitempty"`
	// The start time for tournaments. Defaults to epoch.
	StartTime *wrappers.UInt32Value `protobuf:"bytes,3,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
	// The end time for tournaments. Defaults to +1 year from current Unix time.
	EndTime *wrappers.UInt32Value `protobuf:"bytes,4,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
	// Max number of records to return. Between 1 and 100.
	Limit *wrappers.Int32Value `protobuf:"bytes,6,opt,name=limit,proto3" json:"limit,omitempty"`
	// A next page cursor for listings (optional).
	Cursor               string   `protobuf:"bytes,8,opt,name=cursor,proto3" json:"cursor,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListTournamentsRequest) Reset()         { *m = ListTournamentsRequest{} }
func (m *ListTournamentsRequest) String() string { return proto.CompactTextString(m) }
func (*ListTournamentsRequest) ProtoMessage()    {}
func (*ListTournamentsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{58}
}

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

var xxx_messageInfo_ListTournamentsRequest proto.InternalMessageInfo

func (m *ListTournamentsRequest) GetCategoryStart() *wrappers.UInt32Value {
	if m != nil {
		return m.CategoryStart
	}
	return nil
}

func (m *ListTournamentsRequest) GetCategoryEnd() *wrappers.UInt32Value {
	if m != nil {
		return m.CategoryEnd
	}
	return nil
}

func (m *ListTournamentsRequest) GetStartTime() *wrappers.UInt32Value {
	if m != nil {
		return m.StartTime
	}
	return nil
}

func (m *ListTournamentsRequest) GetEndTime() *wrappers.UInt32Value {
	if m != nil {
		return m.EndTime
	}
	return nil
}

func (m *ListTournamentsRequest) GetLimit() *wrappers.Int32Value {
	if m != nil {
		return m.Limit
	}
	return nil
}

func (m *ListTournamentsRequest) GetCursor() string {
	if m != nil {
		return m.Cursor
	}
	return ""
}

// List the groups a user is part of, and their relationship to each.
type ListUserGroupsRequest struct {
	// ID of the user.
	UserId string `protobuf:"bytes,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// Max number of records to return. Between 1 and 100.
	Limit *wrappers.Int32Value `protobuf:"bytes,2,opt,name=limit,proto3" json:"limit,omitempty"`
	// The user group state to list.
	State *wrappers.Int32Value `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"`
	// An optional next page cursor.
	Cursor               string   `protobuf:"bytes,4,opt,name=cursor,proto3" json:"cursor,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ListUserGroupsRequest) Reset()         { *m = ListUserGroupsRequest{} }
func (m *ListUserGroupsRequest) String() string { return proto.CompactTextString(m) }
func (*ListUserGroupsRequest) ProtoMessage()    {}
func (*ListUserGroupsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{59}
}

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

var xxx_messageInfo_ListUserGroupsRequest proto.InternalMessageInfo

func (m *ListUserGroupsRequest) GetUserId() string {
	if m != nil {
		return m.UserId
	}
	return ""
}

func (m *ListUserGroupsRequest) GetLimit() *wrappers.Int32Value {
	if m != nil {
		return m.Limit
	}
	return nil
}

func (m *ListUserGroupsRequest) GetState() *wrappers.Int32Value {
	if m != nil {
		return m.State
	}
	return nil
}

func (m *ListUserGroupsRequest) GetCursor() string {
	if m != nil {
		return m.Cursor
	}
	return ""
}

// Represents a realtime match.
type Match struct {
	// The ID of the match, can be used to join.
	MatchId string `protobuf:"bytes,1,opt,name=match_id,json=matchId,proto3" json:"match_id,omitempty"`
	// True if it's an server-managed authoritative match, false otherwise.
	Authoritative bool `protobuf:"varint,2,opt,name=authoritative,proto3" json:"authoritative,omitempty"`
	// Match label, if any.
	Label *wrappers.StringValue `protobuf:"bytes,3,opt,name=label,proto3" json:"label,omitempty"`
	// Current number of users in the match.
	Size                 int32    `protobuf:"varint,4,opt,name=size,proto3" json:"size,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Match) Reset()         { *m = Match{} }
func (m *Match) String() string { return proto.CompactTextString(m) }
func (*Match) ProtoMessage()    {}
func (*Match) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{60}
}

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

var xxx_messageInfo_Match proto.InternalMessageInfo

func (m *Match) GetMatchId() string {
	if m != nil {
		return m.MatchId
	}
	return ""
}

func (m *Match) GetAuthoritative() bool {
	if m != nil {
		return m.Authoritative
	}
	return false
}

func (m *Match) GetLabel() *wrappers.StringValue {
	if m != nil {
		return m.Label
	}
	return nil
}

func (m *Match) GetSize() int32 {
	if m != nil {
		return m.Size
	}
	return 0
}

// A list of realtime matches.
type MatchList struct {
	// A number of matches corresponding to a list operation.
	Matches              []*Match `protobuf:"bytes,1,rep,name=matches,proto3" json:"matches,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *MatchList) Reset()         { *m = MatchList{} }
func (m *MatchList) String() string { return proto.CompactTextString(m) }
func (*MatchList) ProtoMessage()    {}
func (*MatchList) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{61}
}

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

var xxx_messageInfo_MatchList proto.InternalMessageInfo

func (m *MatchList) GetMatches() []*Match {
	if m != nil {
		return m.Matches
	}
	return nil
}

// A notification in the server.
type Notification struct {
	// ID of the Notification.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Subject of the notification.
	Subject string `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject,omitempty"`
	// Content of the notification in JSON.
	Content string `protobuf:"bytes,3,opt,name=content,proto3" json:"content,omitempty"`
	// Category code for this notification.
	Code int32 `protobuf:"varint,4,opt,name=code,proto3" json:"code,omitempty"`
	// ID of the sender, if a user. Otherwise 'null'.
	SenderId string `protobuf:"bytes,5,opt,name=sender_id,json=senderId,proto3" json:"sender_id,omitempty"`
	// The UNIX time when the notification was created.
	CreateTime *timestamp.Timestamp `protobuf:"bytes,6,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// True if this notification was persisted to the database.
	Persistent           bool     `protobuf:"varint,7,opt,name=persistent,proto3" json:"persistent,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Notification) Reset()         { *m = Notification{} }
func (m *Notification) String() string { return proto.CompactTextString(m) }
func (*Notification) ProtoMessage()    {}
func (*Notification) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{62}
}

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

var xxx_messageInfo_Notification proto.InternalMessageInfo

func (m *Notification) GetId() string {
	if m != nil {
		return m.Id
	}
	return ""
}

func (m *Notification) GetSubject() string {
	if m != nil {
		return m.Subject
	}
	return ""
}

func (m *Notification) GetContent() string {
	if m != nil {
		return m.Content
	}
	return ""
}

func (m *Notification) GetCode() int32 {
	if m != nil {
		return m.Code
	}
	return 0
}

func (m *Notification) GetSenderId() string {
	if m != nil {
		return m.SenderId
	}
	return ""
}

func (m *Notification) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *Notification) GetPersistent() bool {
	if m != nil {
		return m.Persistent
	}
	return false
}

// A collection of zero or more notifications.
type NotificationList struct {
	// Collection of notifications.
	Notifications []*Notification `protobuf:"bytes,1,rep,name=notifications,proto3" json:"notifications,omitempty"`
	// Use this cursor to paginate notifications. Cache this to catch up to new notifications.
	CacheableCursor      string   `protobuf:"bytes,2,opt,name=cacheable_cursor,json=cacheableCursor,proto3" json:"cacheable_cursor,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *NotificationList) Reset()         { *m = NotificationList{} }
func (m *NotificationList) String() string { return proto.CompactTextString(m) }
func (*NotificationList) ProtoMessage()    {}
func (*NotificationList) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{63}
}

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

var xxx_messageInfo_NotificationList proto.InternalMessageInfo

func (m *NotificationList) GetNotifications() []*Notification {
	if m != nil {
		return m.Notifications
	}
	return nil
}

func (m *NotificationList) GetCacheableCursor() string {
	if m != nil {
		return m.CacheableCursor
	}
	return ""
}

// Promote a set of users in a group to the next role up.
type PromoteGroupUsersRequest struct {
	// The group ID to promote in.
	GroupId string `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	// The users to promote.
	UserIds              []string `protobuf:"bytes,2,rep,name=user_ids,json=userIds,proto3" json:"user_ids,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *PromoteGroupUsersRequest) Reset()         { *m = PromoteGroupUsersRequest{} }
func (m *PromoteGroupUsersRequest) String() string { return proto.CompactTextString(m) }
func (*PromoteGroupUsersRequest) ProtoMessage()    {}
func (*PromoteGroupUsersRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{64}
}

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

var xxx_messageInfo_PromoteGroupUsersRequest proto.InternalMessageInfo

func (m *PromoteGroupUsersRequest) GetGroupId() string {
	if m != nil {
		return m.GroupId
	}
	return ""
}

func (m *PromoteGroupUsersRequest) GetUserIds() []string {
	if m != nil {
		return m.UserIds
	}
	return nil
}

// Demote a set of users in a group to the next role down.
type DemoteGroupUsersRequest struct {
	// The group ID to demote in.
	GroupId string `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	// The users to demote.
	UserIds              []string `protobuf:"bytes,2,rep,name=user_ids,json=userIds,proto3" json:"user_ids,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *DemoteGroupUsersRequest) Reset()         { *m = DemoteGroupUsersRequest{} }
func (m *DemoteGroupUsersRequest) String() string { return proto.CompactTextString(m) }
func (*DemoteGroupUsersRequest) ProtoMessage()    {}
func (*DemoteGroupUsersRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{65}
}

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

var xxx_messageInfo_DemoteGroupUsersRequest proto.InternalMessageInfo

func (m *DemoteGroupUsersRequest) GetGroupId() string {
	if m != nil {
		return m.GroupId
	}
	return ""
}

func (m *DemoteGroupUsersRequest) GetUserIds() []string {
	if m != nil {
		return m.UserIds
	}
	return nil
}

// Storage objects to get.
type ReadStorageObjectId struct {
	// The collection which stores the object.
	Collection string `protobuf:"bytes,1,opt,name=collection,proto3" json:"collection,omitempty"`
	// The key of the object within the collection.
	Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
	// The user owner of the object.
	UserId               string   `protobuf:"bytes,3,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *ReadStorageObjectId) Reset()         { *m = ReadStorageObjectId{} }
func (m *ReadStorageObjectId) String() string { return proto.CompactTextString(m) }
func (*ReadStorageObjectId) ProtoMessage()    {}
func (*ReadStorageObjectId) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{66}
}

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

var xxx_messageInfo_ReadStorageObjectId proto.InternalMessageInfo

func (m *ReadStorageObjectId) GetCollection() string {
	if m != nil {
		return m.Collection
	}
	return ""
}

func (m *ReadStorageObjectId) GetKey() string {
	if m != nil {
		return m.Key
	}
	return ""
}

func (m *ReadStorageObjectId) GetUserId() string {
	if m != nil {
		return m.UserId
	}
	return ""
}

// Batch get storage objects.
type ReadStorageObjectsRequest struct {
	// Batch of storage objects.
	ObjectIds            []*ReadStorageObjectId `protobuf:"bytes,1,rep,name=object_ids,json=objectIds,proto3" json:"object_ids,omitempty"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (m *ReadStorageObjectsRequest) Reset()         { *m = ReadStorageObjectsRequest{} }
func (m *ReadStorageObjectsRequest) String() string { return proto.CompactTextString(m) }
func (*ReadStorageObjectsRequest) ProtoMessage()    {}
func (*ReadStorageObjectsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{67}
}

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

var xxx_messageInfo_ReadStorageObjectsRequest proto.InternalMessageInfo

func (m *ReadStorageObjectsRequest) GetObjectIds() []*ReadStorageObjectId {
	if m != nil {
		return m.ObjectIds
	}
	return nil
}

// Execute an Lua function on the server.
type Rpc struct {
	// The identifier of the function.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// The payload of the function which must be a JSON object.
	Payload string `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"`
	// The authentication key used when executed as a non-client HTTP request.
	HttpKey              string   `protobuf:"bytes,3,opt,name=http_key,json=httpKey,proto3" json:"http_key,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Rpc) Reset()         { *m = Rpc{} }
func (m *Rpc) String() string { return proto.CompactTextString(m) }
func (*Rpc) ProtoMessage()    {}
func (*Rpc) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{68}
}

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

var xxx_messageInfo_Rpc proto.InternalMessageInfo

func (m *Rpc) GetId() string {
	if m != nil {
		return m.Id
	}
	return ""
}

func (m *Rpc) GetPayload() string {
	if m != nil {
		return m.Payload
	}
	return ""
}

func (m *Rpc) GetHttpKey() string {
	if m != nil {
		return m.HttpKey
	}
	return ""
}

// A user's session used to authenticate messages.
type Session struct {
	// True if the corresponding account was just created, false otherwise.
	Created bool `protobuf:"varint,1,opt,name=created,proto3" json:"created,omitempty"`
	// Authentication credentials.
	Token                string   `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Session) Reset()         { *m = Session{} }
func (m *Session) String() string { return proto.CompactTextString(m) }
func (*Session) ProtoMessage()    {}
func (*Session) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{69}
}

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

var xxx_messageInfo_Session proto.InternalMessageInfo

func (m *Session) GetCreated() bool {
	if m != nil {
		return m.Created
	}
	return false
}

func (m *Session) GetToken() string {
	if m != nil {
		return m.Token
	}
	return ""
}

// An object within the storage engine.
type StorageObject struct {
	// The collection which stores the object.
	Collection string `protobuf:"bytes,1,opt,name=collection,proto3" json:"collection,omitempty"`
	// The key of the object within the collection.
	Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
	// The user owner of the object.
	UserId string `protobuf:"bytes,3,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// The value of the object.
	Value string `protobuf:"bytes,4,opt,name=value,proto3" json:"value,omitempty"`
	// The version hash of the object.
	Version string `protobuf:"bytes,5,opt,name=version,proto3" json:"version,omitempty"`
	// The read access permissions for the object.
	PermissionRead int32 `protobuf:"varint,6,opt,name=permission_read,json=permissionRead,proto3" json:"permission_read,omitempty"`
	// The write access permissions for the object.
	PermissionWrite int32 `protobuf:"varint,7,opt,name=permission_write,json=permissionWrite,proto3" json:"permission_write,omitempty"`
	// The UNIX time when the object was created.
	CreateTime *timestamp.Timestamp `protobuf:"bytes,8,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// The UNIX time when the object was last updated.
	UpdateTime           *timestamp.Timestamp `protobuf:"bytes,9,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *StorageObject) Reset()         { *m = StorageObject{} }
func (m *StorageObject) String() string { return proto.CompactTextString(m) }
func (*StorageObject) ProtoMessage()    {}
func (*StorageObject) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{70}
}

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

var xxx_messageInfo_StorageObject proto.InternalMessageInfo

func (m *StorageObject) GetCollection() string {
	if m != nil {
		return m.Collection
	}
	return ""
}

func (m *StorageObject) GetKey() string {
	if m != nil {
		return m.Key
	}
	return ""
}

func (m *StorageObject) GetUserId() string {
	if m != nil {
		return m.UserId
	}
	return ""
}

func (m *StorageObject) GetValue() string {
	if m != nil {
		return m.Value
	}
	return ""
}

func (m *StorageObject) GetVersion() string {
	if m != nil {
		return m.Version
	}
	return ""
}

func (m *StorageObject) GetPermissionRead() int32 {
	if m != nil {
		return m.PermissionRead
	}
	return 0
}

func (m *StorageObject) GetPermissionWrite() int32 {
	if m != nil {
		return m.PermissionWrite
	}
	return 0
}

func (m *StorageObject) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *StorageObject) GetUpdateTime() *timestamp.Timestamp {
	if m != nil {
		return m.UpdateTime
	}
	return nil
}

// A storage acknowledgement.
type StorageObjectAck struct {
	// The collection which stores the object.
	Collection string `protobuf:"bytes,1,opt,name=collection,proto3" json:"collection,omitempty"`
	// The key of the object within the collection.
	Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
	// The version hash of the object.
	Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"`
	// The owner of the object.
	UserId               string   `protobuf:"bytes,4,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *StorageObjectAck) Reset()         { *m = StorageObjectAck{} }
func (m *StorageObjectAck) String() string { return proto.CompactTextString(m) }
func (*StorageObjectAck) ProtoMessage()    {}
func (*StorageObjectAck) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{71}
}

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

var xxx_messageInfo_StorageObjectAck proto.InternalMessageInfo

func (m *StorageObjectAck) GetCollection() string {
	if m != nil {
		return m.Collection
	}
	return ""
}

func (m *StorageObjectAck) GetKey() string {
	if m != nil {
		return m.Key
	}
	return ""
}

func (m *StorageObjectAck) GetVersion() string {
	if m != nil {
		return m.Version
	}
	return ""
}

func (m *StorageObjectAck) GetUserId() string {
	if m != nil {
		return m.UserId
	}
	return ""
}

// Batch of acknowledgements for the storage object write.
type StorageObjectAcks struct {
	// Batch of storage write acknowledgements.
	Acks                 []*StorageObjectAck `protobuf:"bytes,1,rep,name=acks,proto3" json:"acks,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *StorageObjectAcks) Reset()         { *m = StorageObjectAcks{} }
func (m *StorageObjectAcks) String() string { return proto.CompactTextString(m) }
func (*StorageObjectAcks) ProtoMessage()    {}
func (*StorageObjectAcks) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{72}
}

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

var xxx_messageInfo_StorageObjectAcks proto.InternalMessageInfo

func (m *StorageObjectAcks) GetAcks() []*StorageObjectAck {
	if m != nil {
		return m.Acks
	}
	return nil
}

// Batch of storage objects.
type StorageObjects struct {
	// The batch of storage objects.
	Objects              []*StorageObject `protobuf:"bytes,1,rep,name=objects,proto3" json:"objects,omitempty"`
	XXX_NoUnkeyedLiteral struct{}         `json:"-"`
	XXX_unrecognized     []byte           `json:"-"`
	XXX_sizecache        int32            `json:"-"`
}

func (m *StorageObjects) Reset()         { *m = StorageObjects{} }
func (m *StorageObjects) String() string { return proto.CompactTextString(m) }
func (*StorageObjects) ProtoMessage()    {}
func (*StorageObjects) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{73}
}

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

var xxx_messageInfo_StorageObjects proto.InternalMessageInfo

func (m *StorageObjects) GetObjects() []*StorageObject {
	if m != nil {
		return m.Objects
	}
	return nil
}

// List of storage objects.
type StorageObjectList struct {
	// The list of storage objects.
	Objects []*StorageObject `protobuf:"bytes,1,rep,name=objects,proto3" json:"objects,omitempty"`
	// The cursor for the next page of results, if any.
	Cursor               string   `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *StorageObjectList) Reset()         { *m = StorageObjectList{} }
func (m *StorageObjectList) String() string { return proto.CompactTextString(m) }
func (*StorageObjectList) ProtoMessage()    {}
func (*StorageObjectList) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{74}
}

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

var xxx_messageInfo_StorageObjectList proto.InternalMessageInfo

func (m *StorageObjectList) GetObjects() []*StorageObject {
	if m != nil {
		return m.Objects
	}
	return nil
}

func (m *StorageObjectList) GetCursor() string {
	if m != nil {
		return m.Cursor
	}
	return ""
}

// A tournament on the server.
type Tournament struct {
	// The ID of the tournament.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// The title for the tournament.
	Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
	// The description of the tournament. May be blank.
	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// The category of the tournament. e.g. "vip" could be category 1.
	Category uint32 `protobuf:"varint,4,opt,name=category,proto3" json:"category,omitempty"`
	// ASC or DESC sort mode of scores in the tournament.
	SortOrder uint32 `protobuf:"varint,5,opt,name=sort_order,json=sortOrder,proto3" json:"sort_order,omitempty"`
	// The current number of players in the tournament.
	Size uint32 `protobuf:"varint,6,opt,name=size,proto3" json:"size,omitempty"`
	// The maximum number of players for the tournament.
	MaxSize uint32 `protobuf:"varint,7,opt,name=max_size,json=maxSize,proto3" json:"max_size,omitempty"`
	// The maximum score updates allowed per player for the current tournament.
	MaxNumScore uint32 `protobuf:"varint,8,opt,name=max_num_score,json=maxNumScore,proto3" json:"max_num_score,omitempty"`
	// True if the tournament is active and can enter. A computed value.
	CanEnter bool `protobuf:"varint,9,opt,name=can_enter,json=canEnter,proto3" json:"can_enter,omitempty"`
	// The UNIX time when the tournament stops being active until next reset. A computed value.
	EndActive uint32 `protobuf:"varint,10,opt,name=end_active,json=endActive,proto3" json:"end_active,omitempty"`
	// The UNIX time when the tournament is next playable. A computed value.
	NextReset uint32 `protobuf:"varint,11,opt,name=next_reset,json=nextReset,proto3" json:"next_reset,omitempty"`
	// Additional information stored as a JSON object.
	Metadata string `protobuf:"bytes,12,opt,name=metadata,proto3" json:"metadata,omitempty"`
	// The UNIX time when the tournament was created.
	CreateTime *timestamp.Timestamp `protobuf:"bytes,13,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// The UNIX time when the tournament will start.
	StartTime *timestamp.Timestamp `protobuf:"bytes,14,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"`
	// The UNIX time when the tournament will be stopped.
	EndTime *timestamp.Timestamp `protobuf:"bytes,15,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"`
	// Duration of the tournament in seconds.
	Duration uint32 `protobuf:"varint,16,opt,name=duration,proto3" json:"duration,omitempty"`
	// The UNIX time when the tournament start being active. A computed value.
	StartActive          uint32   `protobuf:"varint,17,opt,name=start_active,json=startActive,proto3" json:"start_active,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Tournament) Reset()         { *m = Tournament{} }
func (m *Tournament) String() string { return proto.CompactTextString(m) }
func (*Tournament) ProtoMessage()    {}
func (*Tournament) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{75}
}

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

var xxx_messageInfo_Tournament proto.InternalMessageInfo

func (m *Tournament) GetId() string {
	if m != nil {
		return m.Id
	}
	return ""
}

func (m *Tournament) GetTitle() string {
	if m != nil {
		return m.Title
	}
	return ""
}

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

func (m *Tournament) GetCategory() uint32 {
	if m != nil {
		return m.Category
	}
	return 0
}

func (m *Tournament) GetSortOrder() uint32 {
	if m != nil {
		return m.SortOrder
	}
	return 0
}

func (m *Tournament) GetSize() uint32 {
	if m != nil {
		return m.Size
	}
	return 0
}

func (m *Tournament) GetMaxSize() uint32 {
	if m != nil {
		return m.MaxSize
	}
	return 0
}

func (m *Tournament) GetMaxNumScore() uint32 {
	if m != nil {
		return m.MaxNumScore
	}
	return 0
}

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

func (m *Tournament) GetEndActive() uint32 {
	if m != nil {
		return m.EndActive
	}
	return 0
}

func (m *Tournament) GetNextReset() uint32 {
	if m != nil {
		return m.NextReset
	}
	return 0
}

func (m *Tournament) GetMetadata() string {
	if m != nil {
		return m.Metadata
	}
	return ""
}

func (m *Tournament) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *Tournament) GetStartTime() *timestamp.Timestamp {
	if m != nil {
		return m.StartTime
	}
	return nil
}

func (m *Tournament) GetEndTime() *timestamp.Timestamp {
	if m != nil {
		return m.EndTime
	}
	return nil
}

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

func (m *Tournament) GetStartActive() uint32 {
	if m != nil {
		return m.StartActive
	}
	return 0
}

// A list of tournaments.
type TournamentList struct {
	// The list of tournaments returned.
	Tournaments []*Tournament `protobuf:"bytes,1,rep,name=tournaments,proto3" json:"tournaments,omitempty"`
	// A pagination cursor (optional).
	Cursor               string   `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TournamentList) Reset()         { *m = TournamentList{} }
func (m *TournamentList) String() string { return proto.CompactTextString(m) }
func (*TournamentList) ProtoMessage()    {}
func (*TournamentList) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{76}
}

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

var xxx_messageInfo_TournamentList proto.InternalMessageInfo

func (m *TournamentList) GetTournaments() []*Tournament {
	if m != nil {
		return m.Tournaments
	}
	return nil
}

func (m *TournamentList) GetCursor() string {
	if m != nil {
		return m.Cursor
	}
	return ""
}

// A set of tournament records which may be part of a tournament records page or a batch of individual records.
type TournamentRecordList struct {
	// A list of tournament records.
	Records []*LeaderboardRecord `protobuf:"bytes,1,rep,name=records,proto3" json:"records,omitempty"`
	// A batched set of tournament records belonging to specified owners.
	OwnerRecords []*LeaderboardRecord `protobuf:"bytes,2,rep,name=owner_records,json=ownerRecords,proto3" json:"owner_records,omitempty"`
	// The cursor to send when retireving the next page (optional).
	NextCursor string `protobuf:"bytes,3,opt,name=next_cursor,json=nextCursor,proto3" json:"next_cursor,omitempty"`
	// The cursor to send when retrieving the previous page (optional).
	PrevCursor           string   `protobuf:"bytes,4,opt,name=prev_cursor,json=prevCursor,proto3" json:"prev_cursor,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TournamentRecordList) Reset()         { *m = TournamentRecordList{} }
func (m *TournamentRecordList) String() string { return proto.CompactTextString(m) }
func (*TournamentRecordList) ProtoMessage()    {}
func (*TournamentRecordList) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{77}
}

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

var xxx_messageInfo_TournamentRecordList proto.InternalMessageInfo

func (m *TournamentRecordList) GetRecords() []*LeaderboardRecord {
	if m != nil {
		return m.Records
	}
	return nil
}

func (m *TournamentRecordList) GetOwnerRecords() []*LeaderboardRecord {
	if m != nil {
		return m.OwnerRecords
	}
	return nil
}

func (m *TournamentRecordList) GetNextCursor() string {
	if m != nil {
		return m.NextCursor
	}
	return ""
}

func (m *TournamentRecordList) GetPrevCursor() string {
	if m != nil {
		return m.PrevCursor
	}
	return ""
}

// Update a user's account details.
type UpdateAccountRequest struct {
	// The username of the user's account.
	Username *wrappers.StringValue `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"`
	// The display name of the user.
	DisplayName *wrappers.StringValue `protobuf:"bytes,2,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// A URL for an avatar image.
	AvatarUrl *wrappers.StringValue `protobuf:"bytes,3,opt,name=avatar_url,json=avatarUrl,proto3" json:"avatar_url,omitempty"`
	// The language expected to be a tag which follows the BCP-47 spec.
	LangTag *wrappers.StringValue `protobuf:"bytes,4,opt,name=lang_tag,json=langTag,proto3" json:"lang_tag,omitempty"`
	// The location set by the user.
	Location *wrappers.StringValue `protobuf:"bytes,5,opt,name=location,proto3" json:"location,omitempty"`
	// The timezone set by the user.
	Timezone             *wrappers.StringValue `protobuf:"bytes,6,opt,name=timezone,proto3" json:"timezone,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *UpdateAccountRequest) Reset()         { *m = UpdateAccountRequest{} }
func (m *UpdateAccountRequest) String() string { return proto.CompactTextString(m) }
func (*UpdateAccountRequest) ProtoMessage()    {}
func (*UpdateAccountRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{78}
}

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

var xxx_messageInfo_UpdateAccountRequest proto.InternalMessageInfo

func (m *UpdateAccountRequest) GetUsername() *wrappers.StringValue {
	if m != nil {
		return m.Username
	}
	return nil
}

func (m *UpdateAccountRequest) GetDisplayName() *wrappers.StringValue {
	if m != nil {
		return m.DisplayName
	}
	return nil
}

func (m *UpdateAccountRequest) GetAvatarUrl() *wrappers.StringValue {
	if m != nil {
		return m.AvatarUrl
	}
	return nil
}

func (m *UpdateAccountRequest) GetLangTag() *wrappers.StringValue {
	if m != nil {
		return m.LangTag
	}
	return nil
}

func (m *UpdateAccountRequest) GetLocation() *wrappers.StringValue {
	if m != nil {
		return m.Location
	}
	return nil
}

func (m *UpdateAccountRequest) GetTimezone() *wrappers.StringValue {
	if m != nil {
		return m.Timezone
	}
	return nil
}

// Update fields in a given group.
type UpdateGroupRequest struct {
	// The ID of the group to update.
	GroupId string `protobuf:"bytes,1,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"`
	// Name.
	Name *wrappers.StringValue `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// Description string.
	Description *wrappers.StringValue `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	// Lang tag.
	LangTag *wrappers.StringValue `protobuf:"bytes,4,opt,name=lang_tag,json=langTag,proto3" json:"lang_tag,omitempty"`
	// Avatar URL.
	AvatarUrl *wrappers.StringValue `protobuf:"bytes,5,opt,name=avatar_url,json=avatarUrl,proto3" json:"avatar_url,omitempty"`
	// Open is true if anyone should be allowed to join, or false if joins must be approved by a group admin.
	Open                 *wrappers.BoolValue `protobuf:"bytes,6,opt,name=open,proto3" json:"open,omitempty"`
	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
	XXX_unrecognized     []byte              `json:"-"`
	XXX_sizecache        int32               `json:"-"`
}

func (m *UpdateGroupRequest) Reset()         { *m = UpdateGroupRequest{} }
func (m *UpdateGroupRequest) String() string { return proto.CompactTextString(m) }
func (*UpdateGroupRequest) ProtoMessage()    {}
func (*UpdateGroupRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{79}
}

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

var xxx_messageInfo_UpdateGroupRequest proto.InternalMessageInfo

func (m *UpdateGroupRequest) GetGroupId() string {
	if m != nil {
		return m.GroupId
	}
	return ""
}

func (m *UpdateGroupRequest) GetName() *wrappers.StringValue {
	if m != nil {
		return m.Name
	}
	return nil
}

func (m *UpdateGroupRequest) GetDescription() *wrappers.StringValue {
	if m != nil {
		return m.Description
	}
	return nil
}

func (m *UpdateGroupRequest) GetLangTag() *wrappers.StringValue {
	if m != nil {
		return m.LangTag
	}
	return nil
}

func (m *UpdateGroupRequest) GetAvatarUrl() *wrappers.StringValue {
	if m != nil {
		return m.AvatarUrl
	}
	return nil
}

func (m *UpdateGroupRequest) GetOpen() *wrappers.BoolValue {
	if m != nil {
		return m.Open
	}
	return nil
}

// A user in the server.
type User struct {
	// The id of the user's account.
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// The username of the user's account.
	Username string `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
	// The display name of the user.
	DisplayName string `protobuf:"bytes,3,opt,name=display_name,json=displayName,proto3" json:"display_name,omitempty"`
	// A URL for an avatar image.
	AvatarUrl string `protobuf:"bytes,4,opt,name=avatar_url,json=avatarUrl,proto3" json:"avatar_url,omitempty"`
	// The language expected to be a tag which follows the BCP-47 spec.
	LangTag string `protobuf:"bytes,5,opt,name=lang_tag,json=langTag,proto3" json:"lang_tag,omitempty"`
	// The location set by the user.
	Location string `protobuf:"bytes,6,opt,name=location,proto3" json:"location,omitempty"`
	// The timezone set by the user.
	Timezone string `protobuf:"bytes,7,opt,name=timezone,proto3" json:"timezone,omitempty"`
	// Additional information stored as a JSON object.
	Metadata string `protobuf:"bytes,8,opt,name=metadata,proto3" json:"metadata,omitempty"`
	// The Facebook id in the user's account.
	FacebookId string `protobuf:"bytes,9,opt,name=facebook_id,json=facebookId,proto3" json:"facebook_id,omitempty"`
	// The Google id in the user's account.
	GoogleId string `protobuf:"bytes,10,opt,name=google_id,json=googleId,proto3" json:"google_id,omitempty"`
	// The Apple Game Center in of the user's account.
	GamecenterId string `protobuf:"bytes,11,opt,name=gamecenter_id,json=gamecenterId,proto3" json:"gamecenter_id,omitempty"`
	// The Steam id in the user's account.
	SteamId string `protobuf:"bytes,12,opt,name=steam_id,json=steamId,proto3" json:"steam_id,omitempty"`
	// Indicates whether the user is currently online.
	Online bool `protobuf:"varint,13,opt,name=online,proto3" json:"online,omitempty"`
	// Number of related edges to this user.
	EdgeCount int32 `protobuf:"varint,14,opt,name=edge_count,json=edgeCount,proto3" json:"edge_count,omitempty"`
	// The UNIX time when the user was created.
	CreateTime *timestamp.Timestamp `protobuf:"bytes,15,opt,name=create_time,json=createTime,proto3" json:"create_time,omitempty"`
	// The UNIX time when the user was last updated.
	UpdateTime *timestamp.Timestamp `protobuf:"bytes,16,opt,name=update_time,json=updateTime,proto3" json:"update_time,omitempty"`
	// The Facebook Instant Game ID in the user's account.
	FacebookInstantGameId string `protobuf:"bytes,17,opt,name=facebook_instant_game_id,json=facebookInstantGameId,proto3" json:"facebook_instant_game_id,omitempty"`
	// The Apple Sign In ID in the user's account.
	AppleId              string   `protobuf:"bytes,18,opt,name=apple_id,json=appleId,proto3" json:"apple_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *User) Reset()         { *m = User{} }
func (m *User) String() string { return proto.CompactTextString(m) }
func (*User) ProtoMessage()    {}
func (*User) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{80}
}

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

var xxx_messageInfo_User proto.InternalMessageInfo

func (m *User) GetId() string {
	if m != nil {
		return m.Id
	}
	return ""
}

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

func (m *User) GetDisplayName() string {
	if m != nil {
		return m.DisplayName
	}
	return ""
}

func (m *User) GetAvatarUrl() string {
	if m != nil {
		return m.AvatarUrl
	}
	return ""
}

func (m *User) GetLangTag() string {
	if m != nil {
		return m.LangTag
	}
	return ""
}

func (m *User) GetLocation() string {
	if m != nil {
		return m.Location
	}
	return ""
}

func (m *User) GetTimezone() string {
	if m != nil {
		return m.Timezone
	}
	return ""
}

func (m *User) GetMetadata() string {
	if m != nil {
		return m.Metadata
	}
	return ""
}

func (m *User) GetFacebookId() string {
	if m != nil {
		return m.FacebookId
	}
	return ""
}

func (m *User) GetGoogleId() string {
	if m != nil {
		return m.GoogleId
	}
	return ""
}

func (m *User) GetGamecenterId() string {
	if m != nil {
		return m.GamecenterId
	}
	return ""
}

func (m *User) GetSteamId() string {
	if m != nil {
		return m.SteamId
	}
	return ""
}

func (m *User) GetOnline() bool {
	if m != nil {
		return m.Online
	}
	return false
}

func (m *User) GetEdgeCount() int32 {
	if m != nil {
		return m.EdgeCount
	}
	return 0
}

func (m *User) GetCreateTime() *timestamp.Timestamp {
	if m != nil {
		return m.CreateTime
	}
	return nil
}

func (m *User) GetUpdateTime() *timestamp.Timestamp {
	if m != nil {
		return m.UpdateTime
	}
	return nil
}

func (m *User) GetFacebookInstantGameId() string {
	if m != nil {
		return m.FacebookInstantGameId
	}
	return ""
}

func (m *User) GetAppleId() string {
	if m != nil {
		return m.AppleId
	}
	return ""
}

// A list of groups belonging to a user, along with the user's role in each group.
type UserGroupList struct {
	// Group-role pairs for a user.
	UserGroups []*UserGroupList_UserGroup `protobuf:"bytes,1,rep,name=user_groups,json=userGroups,proto3" json:"user_groups,omitempty"`
	// Cursor for the next page of results, if any.
	Cursor               string   `protobuf:"bytes,2,opt,name=cursor,proto3" json:"cursor,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *UserGroupList) Reset()         { *m = UserGroupList{} }
func (m *UserGroupList) String() string { return proto.CompactTextString(m) }
func (*UserGroupList) ProtoMessage()    {}
func (*UserGroupList) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{81}
}

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

var xxx_messageInfo_UserGroupList proto.InternalMessageInfo

func (m *UserGroupList) GetUserGroups() []*UserGroupList_UserGroup {
	if m != nil {
		return m.UserGroups
	}
	return nil
}

func (m *UserGroupList) GetCursor() string {
	if m != nil {
		return m.Cursor
	}
	return ""
}

// A single group-role pair.
type UserGroupList_UserGroup struct {
	// Group.
	Group *Group `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"`
	// The user's relationship to the group.
	State                *wrappers.Int32Value `protobuf:"bytes,2,opt,name=state,proto3" json:"state,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

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

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

var xxx_messageInfo_UserGroupList_UserGroup proto.InternalMessageInfo

func (m *UserGroupList_UserGroup) GetGroup() *Group {
	if m != nil {
		return m.Group
	}
	return nil
}

func (m *UserGroupList_UserGroup) GetState() *wrappers.Int32Value {
	if m != nil {
		return m.State
	}
	return nil
}

// A collection of zero or more users.
type Users struct {
	// The User objects.
	Users                []*User  `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *Users) Reset()         { *m = Users{} }
func (m *Users) String() string { return proto.CompactTextString(m) }
func (*Users) ProtoMessage()    {}
func (*Users) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{82}
}

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

var xxx_messageInfo_Users proto.InternalMessageInfo

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

// A request to submit a score to a leaderboard.
type WriteLeaderboardRecordRequest struct {
	// The ID of the leaderboard to write to.
	LeaderboardId string `protobuf:"bytes,1,opt,name=leaderboard_id,json=leaderboardId,proto3" json:"leaderboard_id,omitempty"`
	// Record input.
	Record               *WriteLeaderboardRecordRequest_LeaderboardRecordWrite `protobuf:"bytes,2,opt,name=record,proto3" json:"record,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                                              `json:"-"`
	XXX_unrecognized     []byte                                                `json:"-"`
	XXX_sizecache        int32                                                 `json:"-"`
}

func (m *WriteLeaderboardRecordRequest) Reset()         { *m = WriteLeaderboardRecordRequest{} }
func (m *WriteLeaderboardRecordRequest) String() string { return proto.CompactTextString(m) }
func (*WriteLeaderboardRecordRequest) ProtoMessage()    {}
func (*WriteLeaderboardRecordRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{83}
}

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

var xxx_messageInfo_WriteLeaderboardRecordRequest proto.InternalMessageInfo

func (m *WriteLeaderboardRecordRequest) GetLeaderboardId() string {
	if m != nil {
		return m.LeaderboardId
	}
	return ""
}

func (m *WriteLeaderboardRecordRequest) GetRecord() *WriteLeaderboardRecordRequest_LeaderboardRecordWrite {
	if m != nil {
		return m.Record
	}
	return nil
}

// Record values to write.
type WriteLeaderboardRecordRequest_LeaderboardRecordWrite struct {
	// The score value to submit.
	Score int64 `protobuf:"varint,1,opt,name=score,proto3" json:"score,omitempty"`
	// An optional secondary value.
	Subscore int64 `protobuf:"varint,2,opt,name=subscore,proto3" json:"subscore,omitempty"`
	// Optional record metadata.
	Metadata             string   `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_WriteLeaderboardRecordRequest_LeaderboardRecordWrite proto.InternalMessageInfo

func (m *WriteLeaderboardRecordRequest_LeaderboardRecordWrite) GetScore() int64 {
	if m != nil {
		return m.Score
	}
	return 0
}

func (m *WriteLeaderboardRecordRequest_LeaderboardRecordWrite) GetSubscore() int64 {
	if m != nil {
		return m.Subscore
	}
	return 0
}

func (m *WriteLeaderboardRecordRequest_LeaderboardRecordWrite) GetMetadata() string {
	if m != nil {
		return m.Metadata
	}
	return ""
}

// The object to store.
type WriteStorageObject struct {
	// The collection to store the object.
	Collection string `protobuf:"bytes,1,opt,name=collection,proto3" json:"collection,omitempty"`
	// The key for the object within the collection.
	Key string `protobuf:"bytes,2,opt,name=key,proto3" json:"key,omitempty"`
	// The value of the object.
	Value string `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
	// The version hash of the object to check. Possible values are: ["", "*", "#hash#"].
	Version string `protobuf:"bytes,4,opt,name=version,proto3" json:"version,omitempty"`
	// The read access permissions for the object.
	PermissionRead *wrappers.Int32Value `protobuf:"bytes,5,opt,name=permission_read,json=permissionRead,proto3" json:"permission_read,omitempty"`
	// The write access permissions for the object.
	PermissionWrite      *wrappers.Int32Value `protobuf:"bytes,6,opt,name=permission_write,json=permissionWrite,proto3" json:"permission_write,omitempty"`
	XXX_NoUnkeyedLiteral struct{}             `json:"-"`
	XXX_unrecognized     []byte               `json:"-"`
	XXX_sizecache        int32                `json:"-"`
}

func (m *WriteStorageObject) Reset()         { *m = WriteStorageObject{} }
func (m *WriteStorageObject) String() string { return proto.CompactTextString(m) }
func (*WriteStorageObject) ProtoMessage()    {}
func (*WriteStorageObject) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{84}
}

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

var xxx_messageInfo_WriteStorageObject proto.InternalMessageInfo

func (m *WriteStorageObject) GetCollection() string {
	if m != nil {
		return m.Collection
	}
	return ""
}

func (m *WriteStorageObject) GetKey() string {
	if m != nil {
		return m.Key
	}
	return ""
}

func (m *WriteStorageObject) GetValue() string {
	if m != nil {
		return m.Value
	}
	return ""
}

func (m *WriteStorageObject) GetVersion() string {
	if m != nil {
		return m.Version
	}
	return ""
}

func (m *WriteStorageObject) GetPermissionRead() *wrappers.Int32Value {
	if m != nil {
		return m.PermissionRead
	}
	return nil
}

func (m *WriteStorageObject) GetPermissionWrite() *wrappers.Int32Value {
	if m != nil {
		return m.PermissionWrite
	}
	return nil
}

// Write objects to the storage engine.
type WriteStorageObjectsRequest struct {
	// The objects to store on the server.
	Objects              []*WriteStorageObject `protobuf:"bytes,1,rep,name=objects,proto3" json:"objects,omitempty"`
	XXX_NoUnkeyedLiteral struct{}              `json:"-"`
	XXX_unrecognized     []byte                `json:"-"`
	XXX_sizecache        int32                 `json:"-"`
}

func (m *WriteStorageObjectsRequest) Reset()         { *m = WriteStorageObjectsRequest{} }
func (m *WriteStorageObjectsRequest) String() string { return proto.CompactTextString(m) }
func (*WriteStorageObjectsRequest) ProtoMessage()    {}
func (*WriteStorageObjectsRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{85}
}

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

var xxx_messageInfo_WriteStorageObjectsRequest proto.InternalMessageInfo

func (m *WriteStorageObjectsRequest) GetObjects() []*WriteStorageObject {
	if m != nil {
		return m.Objects
	}
	return nil
}

// A request to submit a score to a tournament.
type WriteTournamentRecordRequest struct {
	// The tournament ID to write the record for.
	TournamentId string `protobuf:"bytes,1,opt,name=tournament_id,json=tournamentId,proto3" json:"tournament_id,omitempty"`
	// Record input.
	Record               *WriteTournamentRecordRequest_TournamentRecordWrite `protobuf:"bytes,2,opt,name=record,proto3" json:"record,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                                            `json:"-"`
	XXX_unrecognized     []byte                                              `json:"-"`
	XXX_sizecache        int32                                               `json:"-"`
}

func (m *WriteTournamentRecordRequest) Reset()         { *m = WriteTournamentRecordRequest{} }
func (m *WriteTournamentRecordRequest) String() string { return proto.CompactTextString(m) }
func (*WriteTournamentRecordRequest) ProtoMessage()    {}
func (*WriteTournamentRecordRequest) Descriptor() ([]byte, []int) {
	return fileDescriptor_1b40cafcd4234784, []int{86}
}

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

var xxx_messageInfo_WriteTournamentRecordRequest proto.InternalMessageInfo

func (m *WriteTournamentRecordRequest) GetTournamentId() string {
	if m != nil {
		return m.TournamentId
	}
	return ""
}

func (m *WriteTournamentRecordRequest) GetRecord() *WriteTournamentRecordRequest_TournamentRecordWrite {
	if m != nil {
		return m.Record
	}
	return nil
}

// Record values to write.
type WriteTournamentRecordRequest_TournamentRecordWrite struct {
	// The score value to submit.
	Score int64 `protobuf:"varint,1,opt,name=score,proto3" json:"score,omitempty"`
	// An optional secondary value.
	Subscore int64 `protobuf:"varint,2,opt,name=subscore,proto3" json:"subscore,omitempty"`
	// A JSON object of additional properties (optional).
	Metadata             string   `protobuf:"bytes,3,opt,name=metadata,proto3" json:"metadata,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

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

var xxx_messageInfo_WriteTournamentRecordRequest_TournamentRecordWrite proto.InternalMessageInfo

func (m *WriteTournamentRecordRequest_TournamentRecordWrite) GetScore() int64 {
	if m != nil {
		return m.Score
	}
	return 0
}

func (m *WriteTournamentRecordRequest_TournamentRecordWrite) GetSubscore() int64 {
	if m != nil {
		return m.Subscore
	}
	return 0
}

func (m *WriteTournamentRecordRequest_TournamentRecordWrite) GetMetadata() string {
	if m != nil {
		return m.Metadata
	}
	return ""
}

func init() {
	proto.RegisterEnum("nakama.api.Friend_State", Friend_State_name, Friend_State_value)
	proto.RegisterEnum("nakama.api.GroupUserList_GroupUser_State", GroupUserList_GroupUser_State_name, GroupUserList_GroupUser_State_value)
	proto.RegisterEnum("nakama.api.UserGroupList_UserGroup_State", UserGroupList_UserGroup_State_name, UserGroupList_UserGroup_State_value)
	proto.RegisterType((*Account)(nil), "nakama.api.Account")
	proto.RegisterType((*AccountApple)(nil), "nakama.api.AccountApple")
	proto.RegisterMapType((map[string]string)(nil), "nakama.api.AccountApple.VarsEntry")
	proto.RegisterType((*AccountCustom)(nil), "nakama.api.AccountCustom")
	proto.RegisterMapType((map[string]string)(nil), "nakama.api.AccountCustom.VarsEntry")
	proto.RegisterType((*AccountDevice)(nil), "nakama.api.AccountDevice")
	proto.RegisterMapType((map[string]string)(nil), "nakama.api.AccountDevice.VarsEntry")
	proto.RegisterType((*AccountEmail)(nil), "nakama.api.AccountEmail")
	proto.RegisterMapType((map[string]string)(nil), "nakama.api.AccountEmail.VarsEntry")
	proto.RegisterType((*AccountFacebook)(nil), "nakama.api.AccountFacebook")
	proto.RegisterMapType((map[string]string)(nil), "nakama.api.AccountFacebook.VarsEntry")
	proto.RegisterType((*AccountFacebookInstantGame)(nil), "nakama.api.AccountFacebookInstantGame")
	proto.RegisterMapType((map[string]string)(nil), "nakama.api.AccountFacebookInstantGame.VarsEntry")
	proto.RegisterType((*AccountGameCenter)(nil), "nakama.api.AccountGameCenter")
	proto.RegisterMapType((map[string]string)(nil), "nakama.api.AccountGameCenter.VarsEntry")
	proto.RegisterType((*AccountGoogle)(nil), "nakama.api.AccountGoogle")
	proto.RegisterMapType((map[string]string)(nil), "nakama.api.AccountGoogle.VarsEntry")
	proto.RegisterType((*AccountSteam)(nil), "nakama.api.AccountSteam")
	proto.RegisterMapType((map[string]string)(nil), "nakama.api.AccountSteam.VarsEntry")
	proto.RegisterType((*AddFriendsRequest)(nil), "nakama.api.AddFriendsRequest")
	proto.RegisterType((*AddGroupUsersRequest)(nil), "nakama.api.AddGroupUsersRequest")
	proto.RegisterType((*AuthenticateAppleRequest)(nil), "nakama.api.AuthenticateAppleRequest")
	proto.RegisterType((*AuthenticateCustomRequest)(nil), "nakama.api.AuthenticateCustomRequest")
	proto.RegisterType((*AuthenticateDeviceRequest)(nil), "nakama.api.AuthenticateDeviceRequest")
	proto.RegisterType((*AuthenticateEmailRequest)(nil), "nakama.api.AuthenticateEmailRequest")
	proto.RegisterType((*AuthenticateFacebookRequest)(nil), "nakama.api.AuthenticateFacebookRequest")
	proto.RegisterType((*AuthenticateFacebookInstantGameRequest)(nil), "nakama.api.AuthenticateFacebookInstantGameRequest")
	proto.RegisterType((*AuthenticateGameCenterRequest)(nil), "nakama.api.AuthenticateGameCenterRequest")
	proto.RegisterType((*AuthenticateGoogleRequest)(nil), "nakama.api.AuthenticateGoogleRequest")
	proto.RegisterType((*AuthenticateSteamRequest)(nil), "nakama.api.AuthenticateSteamRequest")
	proto.RegisterType((*BanGroupUsersRequest)(nil), "nakama.api.BanGroupUsersRequest")
	proto.RegisterType((*BlockFriendsRequest)(nil), "nakama.api.BlockFriendsRequest")
	proto.RegisterType((*ChannelMessage)(nil), "nakama.api.ChannelMessage")
	proto.RegisterType((*ChannelMessageList)(nil), "nakama.api.ChannelMessageList")
	proto.RegisterType((*CreateGroupRequest)(nil), "nakama.api.CreateGroupRequest")
	proto.RegisterType((*DeleteFriendsRequest)(nil), "nakama.api.DeleteFriendsRequest")
	proto.RegisterType((*DeleteGroupRequest)(nil), "nakama.api.DeleteGroupRequest")
	proto.RegisterType((*DeleteLeaderboardRecordRequest)(nil), "nakama.api.DeleteLeaderboardRecordRequest")
	proto.RegisterType((*DeleteNotificationsRequest)(nil), "nakama.api.DeleteNotificationsRequest")
	proto.RegisterType((*DeleteStorageObjectId)(nil), "nakama.api.DeleteStorageObjectId")
	proto.RegisterType((*DeleteStorageObjectsRequest)(nil), "nakama.api.DeleteStorageObjectsRequest")
	proto.RegisterType((*Event)(nil), "nakama.api.Event")
	proto.RegisterMapType((map[string]string)(nil), "nakama.api.Event.PropertiesEntry")
	proto.RegisterType((*Friend)(nil), "nakama.api.Friend")
	proto.RegisterType((*FriendList)(nil), "nakama.api.FriendList")
	proto.RegisterType((*GetUsersRequest)(nil), "nakama.api.GetUsersRequest")
	proto.RegisterType((*Group)(nil), "nakama.api.Group")
	proto.RegisterType((*GroupList)(nil), "nakama.api.GroupList")
	proto.RegisterType((*GroupUserList)(nil), "nakama.api.GroupUserList")
	proto.RegisterType((*GroupUserList_GroupUser)(nil), "nakama.api.GroupUserList.GroupUser")
	proto.RegisterType((*ImportFacebookFriendsRequest)(nil), "nakama.api.ImportFacebookFriendsRequest")
	proto.RegisterType((*JoinGroupRequest)(nil), "nakama.api.JoinGroupRequest")
	proto.RegisterType((*JoinTournamentRequest)(nil), "nakama.api.JoinTournamentRequest")
	proto.RegisterType((*KickGroupUsersRequest)(nil), "nakama.api.KickGroupUsersRequest")
	proto.RegisterType((*LeaderboardRecord)(nil), "nakama.api.LeaderboardRecord")
	proto.RegisterType((*LeaderboardRecordList)(nil), "nakama.api.LeaderboardRecordList")
	proto.RegisterType((*LeaveGroupRequest)(nil), "nakama.api.LeaveGroupRequest")
	proto.RegisterType((*LinkFacebookRequest)(nil), "nakama.api.LinkFacebookRequest")
	proto.RegisterType((*ListChannelMessagesRequest)(nil), "nakama.api.ListChannelMessagesRequest")
	proto.RegisterType((*ListFriendsRequest)(nil), "nakama.api.ListFriendsRequest")
	proto.RegisterType((*ListGroupsRequest)(nil), "nakama.api.ListGroupsRequest")
	proto.RegisterType((*ListGroupUsersRequest)(nil), "nakama.api.ListGroupUsersRequest")
	proto.RegisterType((*ListLeaderboardRecordsAroundOwnerRequest)(nil), "nakama.api.ListLeaderboardRecordsAroundOwnerRequest")
	proto.RegisterType((*ListLeaderboardRecordsRequest)(nil), "nakama.api.ListLeaderboardRecordsRequest")
	proto.RegisterType((*ListMatchesRequest)(nil), "nakama.api.ListMatchesRequest")
	proto.RegisterType((*ListNotificationsRequest)(nil), "nakama.api.ListNotificationsRequest")
	proto.RegisterType((*ListStorageObjectsRequest)(nil), "nakama.api.ListStorageObjectsRequest")
	proto.RegisterType((*ListTournamentRecordsAroundOwnerRequest)(nil), "nakama.api.ListTournamentRecordsAroundOwnerRequest")
	proto.RegisterType((*ListTournamentRecordsRequest)(nil), "nakama.api.ListTournamentRecordsRequest")
	proto.RegisterType((*ListTournamentsRequest)(nil), "nakama.api.ListTournamentsRequest")
	proto.RegisterType((*ListUserGroupsRequest)(nil), "nakama.api.ListUserGroupsRequest")
	proto.RegisterType((*Match)(nil), "nakama.api.Match")
	proto.RegisterType((*MatchList)(nil), "nakama.api.MatchList")
	proto.RegisterType((*Notification)(nil), "nakama.api.Notification")
	proto.RegisterType((*NotificationList)(nil), "nakama.api.NotificationList")
	proto.RegisterType((*PromoteGroupUsersRequest)(nil), "nakama.api.PromoteGroupUsersRequest")
	proto.RegisterType((*DemoteGroupUsersRequest)(nil), "nakama.api.DemoteGroupUsersRequest")
	proto.RegisterType((*ReadStorageObjectId)(nil), "nakama.api.ReadStorageObjectId")
	proto.RegisterType((*ReadStorageObjectsRequest)(nil), "nakama.api.ReadStorageObjectsRequest")
	proto.RegisterType((*Rpc)(nil), "nakama.api.Rpc")
	proto.RegisterType((*Session)(nil), "nakama.api.Session")
	proto.RegisterType((*StorageObject)(nil), "nakama.api.StorageObject")
	proto.RegisterType((*StorageObjectAck)(nil), "nakama.api.StorageObjectAck")
	proto.RegisterType((*StorageObjectAcks)(nil), "nakama.api.StorageObjectAcks")
	proto.RegisterType((*StorageObjects)(nil), "nakama.api.StorageObjects")
	proto.RegisterType((*StorageObjectList)(nil), "nakama.api.StorageObjectList")
	proto.RegisterType((*Tournament)(nil), "nakama.api.Tournament")
	proto.RegisterType((*TournamentList)(nil), "nakama.api.TournamentList")
	proto.RegisterType((*TournamentRecordList)(nil), "nakama.api.TournamentRecordList")
	proto.RegisterType((*UpdateAccountRequest)(nil), "nakama.api.UpdateAccountRequest")
	proto.RegisterType((*UpdateGroupRequest)(nil), "nakama.api.UpdateGroupRequest")
	proto.RegisterType((*User)(nil), "nakama.api.User")
	proto.RegisterType((*UserGroupList)(nil), "nakama.api.UserGroupList")
	proto.RegisterType((*UserGroupList_UserGroup)(nil), "nakama.api.UserGroupList.UserGroup")
	proto.RegisterType((*Users)(nil), "nakama.api.Users")
	proto.RegisterType((*WriteLeaderboardRecordRequest)(nil), "nakama.api.WriteLeaderboardRecordRequest")
	proto.RegisterType((*WriteLeaderboardRecordRequest_LeaderboardRecordWrite)(nil), "nakama.api.WriteLeaderboardRecordRequest.LeaderboardRecordWrite")
	proto.RegisterType((*WriteStorageObject)(nil), "nakama.api.WriteStorageObject")
	proto.RegisterType((*WriteStorageObjectsRequest)(nil), "nakama.api.WriteStorageObjectsRequest")
	proto.RegisterType((*WriteTournamentRecordRequest)(nil), "nakama.api.WriteTournamentRecordRequest")
	proto.RegisterType((*WriteTournamentRecordRequest_TournamentRecordWrite)(nil), "nakama.api.WriteTournamentRecordRequest.TournamentRecordWrite")
}

func init() { proto.RegisterFile("api/api.proto", fileDescriptor_1b40cafcd4234784) }

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