// Code generated by easyjson for marshaling/unmarshaling. DO NOT EDIT.

package signaling

import (
	json "encoding/json"
	easyjson "github.com/mailru/easyjson"
	jlexer "github.com/mailru/easyjson/jlexer"
	jwriter "github.com/mailru/easyjson/jwriter"
	time "time"
)

// suppress unused package warning
var (
	_ *json.RawMessage
	_ *jlexer.Lexer
	_ *jwriter.Writer
	_ easyjson.Marshaler
)

func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling(in *jlexer.Lexer, out *TurnCredentials) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "username":
			out.Username = string(in.String())
		case "password":
			out.Password = string(in.String())
		case "ttl":
			out.TTL = int64(in.Int64())
		case "uris":
			if in.IsNull() {
				in.Skip()
				out.URIs = nil
			} else {
				in.Delim('[')
				if out.URIs == nil {
					if !in.IsDelim(']') {
						out.URIs = make([]string, 0, 4)
					} else {
						out.URIs = []string{}
					}
				} else {
					out.URIs = (out.URIs)[:0]
				}
				for !in.IsDelim(']') {
					var v1 string
					v1 = string(in.String())
					out.URIs = append(out.URIs, v1)
					in.WantComma()
				}
				in.Delim(']')
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling(out *jwriter.Writer, in TurnCredentials) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"username\":"
		out.RawString(prefix[1:])
		out.String(string(in.Username))
	}
	{
		const prefix string = ",\"password\":"
		out.RawString(prefix)
		out.String(string(in.Password))
	}
	{
		const prefix string = ",\"ttl\":"
		out.RawString(prefix)
		out.Int64(int64(in.TTL))
	}
	{
		const prefix string = ",\"uris\":"
		out.RawString(prefix)
		if in.URIs == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
			out.RawString("null")
		} else {
			out.RawByte('[')
			for v2, v3 := range in.URIs {
				if v2 > 0 {
					out.RawByte(',')
				}
				out.String(string(v3))
			}
			out.RawByte(']')
		}
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v TurnCredentials) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v TurnCredentials) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *TurnCredentials) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *TurnCredentials) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling1(in *jlexer.Lexer, out *RoomSessionData) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "userid":
			out.UserId = string(in.String())
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling1(out *jwriter.Writer, in RoomSessionData) {
	out.RawByte('{')
	first := true
	_ = first
	if in.UserId != "" {
		const prefix string = ",\"userid\":"
		first = false
		out.RawString(prefix[1:])
		out.String(string(in.UserId))
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v RoomSessionData) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling1(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v RoomSessionData) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling1(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *RoomSessionData) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling1(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *RoomSessionData) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling1(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling2(in *jlexer.Lexer, out *OcsResponse) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "ocs":
			if in.IsNull() {
				in.Skip()
				out.Ocs = nil
			} else {
				if out.Ocs == nil {
					out.Ocs = new(OcsBody)
				}
				(*out.Ocs).UnmarshalEasyJSON(in)
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling2(out *jwriter.Writer, in OcsResponse) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"ocs\":"
		out.RawString(prefix[1:])
		if in.Ocs == nil {
			out.RawString("null")
		} else {
			(*in.Ocs).MarshalEasyJSON(out)
		}
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v OcsResponse) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling2(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v OcsResponse) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling2(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *OcsResponse) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling2(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *OcsResponse) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling2(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling3(in *jlexer.Lexer, out *OcsMeta) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "status":
			out.Status = string(in.String())
		case "statuscode":
			out.StatusCode = int(in.Int())
		case "message":
			out.Message = string(in.String())
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling3(out *jwriter.Writer, in OcsMeta) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"status\":"
		out.RawString(prefix[1:])
		out.String(string(in.Status))
	}
	{
		const prefix string = ",\"statuscode\":"
		out.RawString(prefix)
		out.Int(int(in.StatusCode))
	}
	{
		const prefix string = ",\"message\":"
		out.RawString(prefix)
		out.String(string(in.Message))
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v OcsMeta) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling3(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v OcsMeta) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling3(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *OcsMeta) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling3(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *OcsMeta) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling3(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling4(in *jlexer.Lexer, out *OcsBody) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "meta":
			(out.Meta).UnmarshalEasyJSON(in)
		case "data":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.Data).UnmarshalJSON(data))
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling4(out *jwriter.Writer, in OcsBody) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"meta\":"
		out.RawString(prefix[1:])
		(in.Meta).MarshalEasyJSON(out)
	}
	{
		const prefix string = ",\"data\":"
		out.RawString(prefix)
		out.Raw((in.Data).MarshalJSON())
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v OcsBody) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling4(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v OcsBody) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling4(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *OcsBody) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling4(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *OcsBody) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling4(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling5(in *jlexer.Lexer, out *BackendServerRoomResponse) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "type":
			out.Type = string(in.String())
		case "dialout":
			if in.IsNull() {
				in.Skip()
				out.Dialout = nil
			} else {
				if out.Dialout == nil {
					out.Dialout = new(BackendRoomDialoutResponse)
				}
				(*out.Dialout).UnmarshalEasyJSON(in)
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling5(out *jwriter.Writer, in BackendServerRoomResponse) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"type\":"
		out.RawString(prefix[1:])
		out.String(string(in.Type))
	}
	if in.Dialout != nil {
		const prefix string = ",\"dialout\":"
		out.RawString(prefix)
		(*in.Dialout).MarshalEasyJSON(out)
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendServerRoomResponse) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling5(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendServerRoomResponse) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling5(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendServerRoomResponse) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling5(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendServerRoomResponse) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling5(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling6(in *jlexer.Lexer, out *BackendServerRoomRequest) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "type":
			out.Type = string(in.String())
		case "invite":
			if in.IsNull() {
				in.Skip()
				out.Invite = nil
			} else {
				if out.Invite == nil {
					out.Invite = new(BackendRoomInviteRequest)
				}
				(*out.Invite).UnmarshalEasyJSON(in)
			}
		case "disinvite":
			if in.IsNull() {
				in.Skip()
				out.Disinvite = nil
			} else {
				if out.Disinvite == nil {
					out.Disinvite = new(BackendRoomDisinviteRequest)
				}
				(*out.Disinvite).UnmarshalEasyJSON(in)
			}
		case "update":
			if in.IsNull() {
				in.Skip()
				out.Update = nil
			} else {
				if out.Update == nil {
					out.Update = new(BackendRoomUpdateRequest)
				}
				(*out.Update).UnmarshalEasyJSON(in)
			}
		case "delete":
			if in.IsNull() {
				in.Skip()
				out.Delete = nil
			} else {
				if out.Delete == nil {
					out.Delete = new(BackendRoomDeleteRequest)
				}
				(*out.Delete).UnmarshalEasyJSON(in)
			}
		case "incall":
			if in.IsNull() {
				in.Skip()
				out.InCall = nil
			} else {
				if out.InCall == nil {
					out.InCall = new(BackendRoomInCallRequest)
				}
				(*out.InCall).UnmarshalEasyJSON(in)
			}
		case "participants":
			if in.IsNull() {
				in.Skip()
				out.Participants = nil
			} else {
				if out.Participants == nil {
					out.Participants = new(BackendRoomParticipantsRequest)
				}
				(*out.Participants).UnmarshalEasyJSON(in)
			}
		case "message":
			if in.IsNull() {
				in.Skip()
				out.Message = nil
			} else {
				if out.Message == nil {
					out.Message = new(BackendRoomMessageRequest)
				}
				(*out.Message).UnmarshalEasyJSON(in)
			}
		case "switchto":
			if in.IsNull() {
				in.Skip()
				out.SwitchTo = nil
			} else {
				if out.SwitchTo == nil {
					out.SwitchTo = new(BackendRoomSwitchToMessageRequest)
				}
				(*out.SwitchTo).UnmarshalEasyJSON(in)
			}
		case "dialout":
			if in.IsNull() {
				in.Skip()
				out.Dialout = nil
			} else {
				if out.Dialout == nil {
					out.Dialout = new(BackendRoomDialoutRequest)
				}
				(*out.Dialout).UnmarshalEasyJSON(in)
			}
		case "transient":
			if in.IsNull() {
				in.Skip()
				out.Transient = nil
			} else {
				if out.Transient == nil {
					out.Transient = new(BackendRoomTransientRequest)
				}
				(*out.Transient).UnmarshalEasyJSON(in)
			}
		case "received":
			out.ReceivedTime = int64(in.Int64())
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling6(out *jwriter.Writer, in BackendServerRoomRequest) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"type\":"
		out.RawString(prefix[1:])
		out.String(string(in.Type))
	}
	if in.Invite != nil {
		const prefix string = ",\"invite\":"
		out.RawString(prefix)
		(*in.Invite).MarshalEasyJSON(out)
	}
	if in.Disinvite != nil {
		const prefix string = ",\"disinvite\":"
		out.RawString(prefix)
		(*in.Disinvite).MarshalEasyJSON(out)
	}
	if in.Update != nil {
		const prefix string = ",\"update\":"
		out.RawString(prefix)
		(*in.Update).MarshalEasyJSON(out)
	}
	if in.Delete != nil {
		const prefix string = ",\"delete\":"
		out.RawString(prefix)
		(*in.Delete).MarshalEasyJSON(out)
	}
	if in.InCall != nil {
		const prefix string = ",\"incall\":"
		out.RawString(prefix)
		(*in.InCall).MarshalEasyJSON(out)
	}
	if in.Participants != nil {
		const prefix string = ",\"participants\":"
		out.RawString(prefix)
		(*in.Participants).MarshalEasyJSON(out)
	}
	if in.Message != nil {
		const prefix string = ",\"message\":"
		out.RawString(prefix)
		(*in.Message).MarshalEasyJSON(out)
	}
	if in.SwitchTo != nil {
		const prefix string = ",\"switchto\":"
		out.RawString(prefix)
		(*in.SwitchTo).MarshalEasyJSON(out)
	}
	if in.Dialout != nil {
		const prefix string = ",\"dialout\":"
		out.RawString(prefix)
		(*in.Dialout).MarshalEasyJSON(out)
	}
	if in.Transient != nil {
		const prefix string = ",\"transient\":"
		out.RawString(prefix)
		(*in.Transient).MarshalEasyJSON(out)
	}
	if in.ReceivedTime != 0 {
		const prefix string = ",\"received\":"
		out.RawString(prefix)
		out.Int64(int64(in.ReceivedTime))
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendServerRoomRequest) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling6(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendServerRoomRequest) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling6(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendServerRoomRequest) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling6(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendServerRoomRequest) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling6(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling7(in *jlexer.Lexer, out *BackendRoomUpdateRequest) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "userids":
			if in.IsNull() {
				in.Skip()
				out.UserIds = nil
			} else {
				in.Delim('[')
				if out.UserIds == nil {
					if !in.IsDelim(']') {
						out.UserIds = make([]string, 0, 4)
					} else {
						out.UserIds = []string{}
					}
				} else {
					out.UserIds = (out.UserIds)[:0]
				}
				for !in.IsDelim(']') {
					var v4 string
					v4 = string(in.String())
					out.UserIds = append(out.UserIds, v4)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "properties":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.Properties).UnmarshalJSON(data))
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling7(out *jwriter.Writer, in BackendRoomUpdateRequest) {
	out.RawByte('{')
	first := true
	_ = first
	if len(in.UserIds) != 0 {
		const prefix string = ",\"userids\":"
		first = false
		out.RawString(prefix[1:])
		{
			out.RawByte('[')
			for v5, v6 := range in.UserIds {
				if v5 > 0 {
					out.RawByte(',')
				}
				out.String(string(v6))
			}
			out.RawByte(']')
		}
	}
	if len(in.Properties) != 0 {
		const prefix string = ",\"properties\":"
		if first {
			first = false
			out.RawString(prefix[1:])
		} else {
			out.RawString(prefix)
		}
		out.Raw((in.Properties).MarshalJSON())
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendRoomUpdateRequest) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling7(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendRoomUpdateRequest) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling7(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendRoomUpdateRequest) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling7(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendRoomUpdateRequest) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling7(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling8(in *jlexer.Lexer, out *BackendRoomTransientRequest) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "action":
			out.Action = TransientAction(in.String())
		case "key":
			out.Key = string(in.String())
		case "value":
			if m, ok := out.Value.(easyjson.Unmarshaler); ok {
				m.UnmarshalEasyJSON(in)
			} else if m, ok := out.Value.(json.Unmarshaler); ok {
				_ = m.UnmarshalJSON(in.Raw())
			} else {
				out.Value = in.Interface()
			}
		case "ttl":
			out.TTL = time.Duration(in.Int64())
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling8(out *jwriter.Writer, in BackendRoomTransientRequest) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"action\":"
		out.RawString(prefix[1:])
		out.String(string(in.Action))
	}
	{
		const prefix string = ",\"key\":"
		out.RawString(prefix)
		out.String(string(in.Key))
	}
	if in.Value != nil {
		const prefix string = ",\"value\":"
		out.RawString(prefix)
		if m, ok := in.Value.(easyjson.Marshaler); ok {
			m.MarshalEasyJSON(out)
		} else if m, ok := in.Value.(json.Marshaler); ok {
			out.Raw(m.MarshalJSON())
		} else {
			out.Raw(json.Marshal(in.Value))
		}
	}
	if in.TTL != 0 {
		const prefix string = ",\"ttl\":"
		out.RawString(prefix)
		out.Int64(int64(in.TTL))
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendRoomTransientRequest) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling8(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendRoomTransientRequest) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling8(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendRoomTransientRequest) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling8(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendRoomTransientRequest) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling8(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling9(in *jlexer.Lexer, out *BackendRoomSwitchToMessageRequest) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "roomid":
			out.RoomId = string(in.String())
		case "sessions":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.Sessions).UnmarshalJSON(data))
			}
		case "sessionslist":
			if in.IsNull() {
				in.Skip()
				out.SessionsList = nil
			} else {
				in.Delim('[')
				if out.SessionsList == nil {
					if !in.IsDelim(']') {
						out.SessionsList = make(BackendRoomSwitchToSessionsList, 0, 4)
					} else {
						out.SessionsList = BackendRoomSwitchToSessionsList{}
					}
				} else {
					out.SessionsList = (out.SessionsList)[:0]
				}
				for !in.IsDelim(']') {
					var v7 string
					v7 = string(in.String())
					out.SessionsList = append(out.SessionsList, v7)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "sessionsmap":
			if in.IsNull() {
				in.Skip()
			} else {
				in.Delim('{')
				if !in.IsDelim('}') {
					out.SessionsMap = make(BackendRoomSwitchToSessionsMap)
				} else {
					out.SessionsMap = nil
				}
				for !in.IsDelim('}') {
					key := string(in.String())
					in.WantColon()
					var v8 json.RawMessage
					if data := in.Raw(); in.Ok() {
						in.AddError((v8).UnmarshalJSON(data))
					}
					(out.SessionsMap)[key] = v8
					in.WantComma()
				}
				in.Delim('}')
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling9(out *jwriter.Writer, in BackendRoomSwitchToMessageRequest) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"roomid\":"
		out.RawString(prefix[1:])
		out.String(string(in.RoomId))
	}
	if len(in.Sessions) != 0 {
		const prefix string = ",\"sessions\":"
		out.RawString(prefix)
		out.Raw((in.Sessions).MarshalJSON())
	}
	if len(in.SessionsList) != 0 {
		const prefix string = ",\"sessionslist\":"
		out.RawString(prefix)
		{
			out.RawByte('[')
			for v9, v10 := range in.SessionsList {
				if v9 > 0 {
					out.RawByte(',')
				}
				out.String(string(v10))
			}
			out.RawByte(']')
		}
	}
	if len(in.SessionsMap) != 0 {
		const prefix string = ",\"sessionsmap\":"
		out.RawString(prefix)
		{
			out.RawByte('{')
			v11First := true
			for v11Name, v11Value := range in.SessionsMap {
				if v11First {
					v11First = false
				} else {
					out.RawByte(',')
				}
				out.String(string(v11Name))
				out.RawByte(':')
				out.Raw((v11Value).MarshalJSON())
			}
			out.RawByte('}')
		}
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendRoomSwitchToMessageRequest) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling9(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendRoomSwitchToMessageRequest) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling9(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendRoomSwitchToMessageRequest) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling9(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendRoomSwitchToMessageRequest) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling9(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling10(in *jlexer.Lexer, out *BackendRoomParticipantsRequest) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "changed":
			if in.IsNull() {
				in.Skip()
				out.Changed = nil
			} else {
				in.Delim('[')
				if out.Changed == nil {
					if !in.IsDelim(']') {
						out.Changed = make([]map[string]interface{}, 0, 8)
					} else {
						out.Changed = []map[string]interface{}{}
					}
				} else {
					out.Changed = (out.Changed)[:0]
				}
				for !in.IsDelim(']') {
					var v12 map[string]interface{}
					if in.IsNull() {
						in.Skip()
					} else {
						in.Delim('{')
						if !in.IsDelim('}') {
							v12 = make(map[string]interface{})
						} else {
							v12 = nil
						}
						for !in.IsDelim('}') {
							key := string(in.String())
							in.WantColon()
							var v13 interface{}
							if m, ok := v13.(easyjson.Unmarshaler); ok {
								m.UnmarshalEasyJSON(in)
							} else if m, ok := v13.(json.Unmarshaler); ok {
								_ = m.UnmarshalJSON(in.Raw())
							} else {
								v13 = in.Interface()
							}
							(v12)[key] = v13
							in.WantComma()
						}
						in.Delim('}')
					}
					out.Changed = append(out.Changed, v12)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "users":
			if in.IsNull() {
				in.Skip()
				out.Users = nil
			} else {
				in.Delim('[')
				if out.Users == nil {
					if !in.IsDelim(']') {
						out.Users = make([]map[string]interface{}, 0, 8)
					} else {
						out.Users = []map[string]interface{}{}
					}
				} else {
					out.Users = (out.Users)[:0]
				}
				for !in.IsDelim(']') {
					var v14 map[string]interface{}
					if in.IsNull() {
						in.Skip()
					} else {
						in.Delim('{')
						if !in.IsDelim('}') {
							v14 = make(map[string]interface{})
						} else {
							v14 = nil
						}
						for !in.IsDelim('}') {
							key := string(in.String())
							in.WantColon()
							var v15 interface{}
							if m, ok := v15.(easyjson.Unmarshaler); ok {
								m.UnmarshalEasyJSON(in)
							} else if m, ok := v15.(json.Unmarshaler); ok {
								_ = m.UnmarshalJSON(in.Raw())
							} else {
								v15 = in.Interface()
							}
							(v14)[key] = v15
							in.WantComma()
						}
						in.Delim('}')
					}
					out.Users = append(out.Users, v14)
					in.WantComma()
				}
				in.Delim(']')
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling10(out *jwriter.Writer, in BackendRoomParticipantsRequest) {
	out.RawByte('{')
	first := true
	_ = first
	if len(in.Changed) != 0 {
		const prefix string = ",\"changed\":"
		first = false
		out.RawString(prefix[1:])
		{
			out.RawByte('[')
			for v16, v17 := range in.Changed {
				if v16 > 0 {
					out.RawByte(',')
				}
				if v17 == nil && (out.Flags&jwriter.NilMapAsEmpty) == 0 {
					out.RawString(`null`)
				} else {
					out.RawByte('{')
					v18First := true
					for v18Name, v18Value := range v17 {
						if v18First {
							v18First = false
						} else {
							out.RawByte(',')
						}
						out.String(string(v18Name))
						out.RawByte(':')
						if m, ok := v18Value.(easyjson.Marshaler); ok {
							m.MarshalEasyJSON(out)
						} else if m, ok := v18Value.(json.Marshaler); ok {
							out.Raw(m.MarshalJSON())
						} else {
							out.Raw(json.Marshal(v18Value))
						}
					}
					out.RawByte('}')
				}
			}
			out.RawByte(']')
		}
	}
	if len(in.Users) != 0 {
		const prefix string = ",\"users\":"
		if first {
			first = false
			out.RawString(prefix[1:])
		} else {
			out.RawString(prefix)
		}
		{
			out.RawByte('[')
			for v19, v20 := range in.Users {
				if v19 > 0 {
					out.RawByte(',')
				}
				if v20 == nil && (out.Flags&jwriter.NilMapAsEmpty) == 0 {
					out.RawString(`null`)
				} else {
					out.RawByte('{')
					v21First := true
					for v21Name, v21Value := range v20 {
						if v21First {
							v21First = false
						} else {
							out.RawByte(',')
						}
						out.String(string(v21Name))
						out.RawByte(':')
						if m, ok := v21Value.(easyjson.Marshaler); ok {
							m.MarshalEasyJSON(out)
						} else if m, ok := v21Value.(json.Marshaler); ok {
							out.Raw(m.MarshalJSON())
						} else {
							out.Raw(json.Marshal(v21Value))
						}
					}
					out.RawByte('}')
				}
			}
			out.RawByte(']')
		}
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendRoomParticipantsRequest) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling10(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendRoomParticipantsRequest) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling10(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendRoomParticipantsRequest) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling10(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendRoomParticipantsRequest) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling10(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling11(in *jlexer.Lexer, out *BackendRoomMessageRequest) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "data":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.Data).UnmarshalJSON(data))
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling11(out *jwriter.Writer, in BackendRoomMessageRequest) {
	out.RawByte('{')
	first := true
	_ = first
	if len(in.Data) != 0 {
		const prefix string = ",\"data\":"
		first = false
		out.RawString(prefix[1:])
		out.Raw((in.Data).MarshalJSON())
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendRoomMessageRequest) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling11(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendRoomMessageRequest) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling11(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendRoomMessageRequest) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling11(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendRoomMessageRequest) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling11(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling12(in *jlexer.Lexer, out *BackendRoomInviteRequest) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "userids":
			if in.IsNull() {
				in.Skip()
				out.UserIds = nil
			} else {
				in.Delim('[')
				if out.UserIds == nil {
					if !in.IsDelim(']') {
						out.UserIds = make([]string, 0, 4)
					} else {
						out.UserIds = []string{}
					}
				} else {
					out.UserIds = (out.UserIds)[:0]
				}
				for !in.IsDelim(']') {
					var v22 string
					v22 = string(in.String())
					out.UserIds = append(out.UserIds, v22)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "alluserids":
			if in.IsNull() {
				in.Skip()
				out.AllUserIds = nil
			} else {
				in.Delim('[')
				if out.AllUserIds == nil {
					if !in.IsDelim(']') {
						out.AllUserIds = make([]string, 0, 4)
					} else {
						out.AllUserIds = []string{}
					}
				} else {
					out.AllUserIds = (out.AllUserIds)[:0]
				}
				for !in.IsDelim(']') {
					var v23 string
					v23 = string(in.String())
					out.AllUserIds = append(out.AllUserIds, v23)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "properties":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.Properties).UnmarshalJSON(data))
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling12(out *jwriter.Writer, in BackendRoomInviteRequest) {
	out.RawByte('{')
	first := true
	_ = first
	if len(in.UserIds) != 0 {
		const prefix string = ",\"userids\":"
		first = false
		out.RawString(prefix[1:])
		{
			out.RawByte('[')
			for v24, v25 := range in.UserIds {
				if v24 > 0 {
					out.RawByte(',')
				}
				out.String(string(v25))
			}
			out.RawByte(']')
		}
	}
	if len(in.AllUserIds) != 0 {
		const prefix string = ",\"alluserids\":"
		if first {
			first = false
			out.RawString(prefix[1:])
		} else {
			out.RawString(prefix)
		}
		{
			out.RawByte('[')
			for v26, v27 := range in.AllUserIds {
				if v26 > 0 {
					out.RawByte(',')
				}
				out.String(string(v27))
			}
			out.RawByte(']')
		}
	}
	if len(in.Properties) != 0 {
		const prefix string = ",\"properties\":"
		if first {
			first = false
			out.RawString(prefix[1:])
		} else {
			out.RawString(prefix)
		}
		out.Raw((in.Properties).MarshalJSON())
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendRoomInviteRequest) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling12(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendRoomInviteRequest) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling12(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendRoomInviteRequest) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling12(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendRoomInviteRequest) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling12(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling13(in *jlexer.Lexer, out *BackendRoomInCallRequest) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "incall":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.InCall).UnmarshalJSON(data))
			}
		case "all":
			out.All = bool(in.Bool())
		case "changed":
			if in.IsNull() {
				in.Skip()
				out.Changed = nil
			} else {
				in.Delim('[')
				if out.Changed == nil {
					if !in.IsDelim(']') {
						out.Changed = make([]map[string]interface{}, 0, 8)
					} else {
						out.Changed = []map[string]interface{}{}
					}
				} else {
					out.Changed = (out.Changed)[:0]
				}
				for !in.IsDelim(']') {
					var v28 map[string]interface{}
					if in.IsNull() {
						in.Skip()
					} else {
						in.Delim('{')
						if !in.IsDelim('}') {
							v28 = make(map[string]interface{})
						} else {
							v28 = nil
						}
						for !in.IsDelim('}') {
							key := string(in.String())
							in.WantColon()
							var v29 interface{}
							if m, ok := v29.(easyjson.Unmarshaler); ok {
								m.UnmarshalEasyJSON(in)
							} else if m, ok := v29.(json.Unmarshaler); ok {
								_ = m.UnmarshalJSON(in.Raw())
							} else {
								v29 = in.Interface()
							}
							(v28)[key] = v29
							in.WantComma()
						}
						in.Delim('}')
					}
					out.Changed = append(out.Changed, v28)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "users":
			if in.IsNull() {
				in.Skip()
				out.Users = nil
			} else {
				in.Delim('[')
				if out.Users == nil {
					if !in.IsDelim(']') {
						out.Users = make([]map[string]interface{}, 0, 8)
					} else {
						out.Users = []map[string]interface{}{}
					}
				} else {
					out.Users = (out.Users)[:0]
				}
				for !in.IsDelim(']') {
					var v30 map[string]interface{}
					if in.IsNull() {
						in.Skip()
					} else {
						in.Delim('{')
						if !in.IsDelim('}') {
							v30 = make(map[string]interface{})
						} else {
							v30 = nil
						}
						for !in.IsDelim('}') {
							key := string(in.String())
							in.WantColon()
							var v31 interface{}
							if m, ok := v31.(easyjson.Unmarshaler); ok {
								m.UnmarshalEasyJSON(in)
							} else if m, ok := v31.(json.Unmarshaler); ok {
								_ = m.UnmarshalJSON(in.Raw())
							} else {
								v31 = in.Interface()
							}
							(v30)[key] = v31
							in.WantComma()
						}
						in.Delim('}')
					}
					out.Users = append(out.Users, v30)
					in.WantComma()
				}
				in.Delim(']')
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling13(out *jwriter.Writer, in BackendRoomInCallRequest) {
	out.RawByte('{')
	first := true
	_ = first
	if len(in.InCall) != 0 {
		const prefix string = ",\"incall\":"
		first = false
		out.RawString(prefix[1:])
		out.Raw((in.InCall).MarshalJSON())
	}
	if in.All {
		const prefix string = ",\"all\":"
		if first {
			first = false
			out.RawString(prefix[1:])
		} else {
			out.RawString(prefix)
		}
		out.Bool(bool(in.All))
	}
	if len(in.Changed) != 0 {
		const prefix string = ",\"changed\":"
		if first {
			first = false
			out.RawString(prefix[1:])
		} else {
			out.RawString(prefix)
		}
		{
			out.RawByte('[')
			for v32, v33 := range in.Changed {
				if v32 > 0 {
					out.RawByte(',')
				}
				if v33 == nil && (out.Flags&jwriter.NilMapAsEmpty) == 0 {
					out.RawString(`null`)
				} else {
					out.RawByte('{')
					v34First := true
					for v34Name, v34Value := range v33 {
						if v34First {
							v34First = false
						} else {
							out.RawByte(',')
						}
						out.String(string(v34Name))
						out.RawByte(':')
						if m, ok := v34Value.(easyjson.Marshaler); ok {
							m.MarshalEasyJSON(out)
						} else if m, ok := v34Value.(json.Marshaler); ok {
							out.Raw(m.MarshalJSON())
						} else {
							out.Raw(json.Marshal(v34Value))
						}
					}
					out.RawByte('}')
				}
			}
			out.RawByte(']')
		}
	}
	if len(in.Users) != 0 {
		const prefix string = ",\"users\":"
		if first {
			first = false
			out.RawString(prefix[1:])
		} else {
			out.RawString(prefix)
		}
		{
			out.RawByte('[')
			for v35, v36 := range in.Users {
				if v35 > 0 {
					out.RawByte(',')
				}
				if v36 == nil && (out.Flags&jwriter.NilMapAsEmpty) == 0 {
					out.RawString(`null`)
				} else {
					out.RawByte('{')
					v37First := true
					for v37Name, v37Value := range v36 {
						if v37First {
							v37First = false
						} else {
							out.RawByte(',')
						}
						out.String(string(v37Name))
						out.RawByte(':')
						if m, ok := v37Value.(easyjson.Marshaler); ok {
							m.MarshalEasyJSON(out)
						} else if m, ok := v37Value.(json.Marshaler); ok {
							out.Raw(m.MarshalJSON())
						} else {
							out.Raw(json.Marshal(v37Value))
						}
					}
					out.RawByte('}')
				}
			}
			out.RawByte(']')
		}
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendRoomInCallRequest) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling13(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendRoomInCallRequest) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling13(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendRoomInCallRequest) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling13(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendRoomInCallRequest) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling13(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling14(in *jlexer.Lexer, out *BackendRoomDisinviteRequest) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "userids":
			if in.IsNull() {
				in.Skip()
				out.UserIds = nil
			} else {
				in.Delim('[')
				if out.UserIds == nil {
					if !in.IsDelim(']') {
						out.UserIds = make([]string, 0, 4)
					} else {
						out.UserIds = []string{}
					}
				} else {
					out.UserIds = (out.UserIds)[:0]
				}
				for !in.IsDelim(']') {
					var v38 string
					v38 = string(in.String())
					out.UserIds = append(out.UserIds, v38)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "sessionids":
			if in.IsNull() {
				in.Skip()
				out.SessionIds = nil
			} else {
				in.Delim('[')
				if out.SessionIds == nil {
					if !in.IsDelim(']') {
						out.SessionIds = make([]string, 0, 4)
					} else {
						out.SessionIds = []string{}
					}
				} else {
					out.SessionIds = (out.SessionIds)[:0]
				}
				for !in.IsDelim(']') {
					var v39 string
					v39 = string(in.String())
					out.SessionIds = append(out.SessionIds, v39)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "alluserids":
			if in.IsNull() {
				in.Skip()
				out.AllUserIds = nil
			} else {
				in.Delim('[')
				if out.AllUserIds == nil {
					if !in.IsDelim(']') {
						out.AllUserIds = make([]string, 0, 4)
					} else {
						out.AllUserIds = []string{}
					}
				} else {
					out.AllUserIds = (out.AllUserIds)[:0]
				}
				for !in.IsDelim(']') {
					var v40 string
					v40 = string(in.String())
					out.AllUserIds = append(out.AllUserIds, v40)
					in.WantComma()
				}
				in.Delim(']')
			}
		case "properties":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.Properties).UnmarshalJSON(data))
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling14(out *jwriter.Writer, in BackendRoomDisinviteRequest) {
	out.RawByte('{')
	first := true
	_ = first
	if len(in.UserIds) != 0 {
		const prefix string = ",\"userids\":"
		first = false
		out.RawString(prefix[1:])
		{
			out.RawByte('[')
			for v41, v42 := range in.UserIds {
				if v41 > 0 {
					out.RawByte(',')
				}
				out.String(string(v42))
			}
			out.RawByte(']')
		}
	}
	if len(in.SessionIds) != 0 {
		const prefix string = ",\"sessionids\":"
		if first {
			first = false
			out.RawString(prefix[1:])
		} else {
			out.RawString(prefix)
		}
		{
			out.RawByte('[')
			for v43, v44 := range in.SessionIds {
				if v43 > 0 {
					out.RawByte(',')
				}
				out.String(string(v44))
			}
			out.RawByte(']')
		}
	}
	if len(in.AllUserIds) != 0 {
		const prefix string = ",\"alluserids\":"
		if first {
			first = false
			out.RawString(prefix[1:])
		} else {
			out.RawString(prefix)
		}
		{
			out.RawByte('[')
			for v45, v46 := range in.AllUserIds {
				if v45 > 0 {
					out.RawByte(',')
				}
				out.String(string(v46))
			}
			out.RawByte(']')
		}
	}
	if len(in.Properties) != 0 {
		const prefix string = ",\"properties\":"
		if first {
			first = false
			out.RawString(prefix[1:])
		} else {
			out.RawString(prefix)
		}
		out.Raw((in.Properties).MarshalJSON())
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendRoomDisinviteRequest) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling14(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendRoomDisinviteRequest) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling14(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendRoomDisinviteRequest) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling14(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendRoomDisinviteRequest) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling14(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling15(in *jlexer.Lexer, out *BackendRoomDialoutResponse) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "callid":
			out.CallId = string(in.String())
		case "error":
			if in.IsNull() {
				in.Skip()
				out.Error = nil
			} else {
				if out.Error == nil {
					out.Error = new(Error)
				}
				(*out.Error).UnmarshalEasyJSON(in)
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling15(out *jwriter.Writer, in BackendRoomDialoutResponse) {
	out.RawByte('{')
	first := true
	_ = first
	if in.CallId != "" {
		const prefix string = ",\"callid\":"
		first = false
		out.RawString(prefix[1:])
		out.String(string(in.CallId))
	}
	if in.Error != nil {
		const prefix string = ",\"error\":"
		if first {
			first = false
			out.RawString(prefix[1:])
		} else {
			out.RawString(prefix)
		}
		(*in.Error).MarshalEasyJSON(out)
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendRoomDialoutResponse) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling15(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendRoomDialoutResponse) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling15(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendRoomDialoutResponse) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling15(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendRoomDialoutResponse) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling15(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling16(in *jlexer.Lexer, out *BackendRoomDialoutRequest) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "number":
			out.Number = string(in.String())
		case "options":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.Options).UnmarshalJSON(data))
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling16(out *jwriter.Writer, in BackendRoomDialoutRequest) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"number\":"
		out.RawString(prefix[1:])
		out.String(string(in.Number))
	}
	if len(in.Options) != 0 {
		const prefix string = ",\"options\":"
		out.RawString(prefix)
		out.Raw((in.Options).MarshalJSON())
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendRoomDialoutRequest) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling16(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendRoomDialoutRequest) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling16(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendRoomDialoutRequest) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling16(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendRoomDialoutRequest) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling16(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling17(in *jlexer.Lexer, out *BackendRoomDialoutError) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "code":
			out.Code = string(in.String())
		case "message":
			out.Message = string(in.String())
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling17(out *jwriter.Writer, in BackendRoomDialoutError) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"code\":"
		out.RawString(prefix[1:])
		out.String(string(in.Code))
	}
	if in.Message != "" {
		const prefix string = ",\"message\":"
		out.RawString(prefix)
		out.String(string(in.Message))
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendRoomDialoutError) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling17(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendRoomDialoutError) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling17(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendRoomDialoutError) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling17(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendRoomDialoutError) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling17(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling18(in *jlexer.Lexer, out *BackendRoomDeleteRequest) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "userids":
			if in.IsNull() {
				in.Skip()
				out.UserIds = nil
			} else {
				in.Delim('[')
				if out.UserIds == nil {
					if !in.IsDelim(']') {
						out.UserIds = make([]string, 0, 4)
					} else {
						out.UserIds = []string{}
					}
				} else {
					out.UserIds = (out.UserIds)[:0]
				}
				for !in.IsDelim(']') {
					var v47 string
					v47 = string(in.String())
					out.UserIds = append(out.UserIds, v47)
					in.WantComma()
				}
				in.Delim(']')
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling18(out *jwriter.Writer, in BackendRoomDeleteRequest) {
	out.RawByte('{')
	first := true
	_ = first
	if len(in.UserIds) != 0 {
		const prefix string = ",\"userids\":"
		first = false
		out.RawString(prefix[1:])
		{
			out.RawByte('[')
			for v48, v49 := range in.UserIds {
				if v48 > 0 {
					out.RawByte(',')
				}
				out.String(string(v49))
			}
			out.RawByte(']')
		}
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendRoomDeleteRequest) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling18(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendRoomDeleteRequest) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling18(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendRoomDeleteRequest) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling18(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendRoomDeleteRequest) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling18(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling19(in *jlexer.Lexer, out *BackendPingEntry) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "userid":
			out.UserId = string(in.String())
		case "sessionid":
			out.SessionId = string(in.String())
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling19(out *jwriter.Writer, in BackendPingEntry) {
	out.RawByte('{')
	first := true
	_ = first
	if in.UserId != "" {
		const prefix string = ",\"userid\":"
		first = false
		out.RawString(prefix[1:])
		out.String(string(in.UserId))
	}
	{
		const prefix string = ",\"sessionid\":"
		if first {
			first = false
			out.RawString(prefix[1:])
		} else {
			out.RawString(prefix)
		}
		out.String(string(in.SessionId))
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendPingEntry) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling19(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendPingEntry) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling19(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendPingEntry) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling19(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendPingEntry) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling19(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling20(in *jlexer.Lexer, out *BackendInformationEtcd) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "url":
			out.Url = string(in.String())
		case "secret":
			out.Secret = string(in.String())
		case "maxstreambitrate":
			out.MaxStreamBitrate = int(in.Int())
		case "maxscreenbitrate":
			out.MaxScreenBitrate = int(in.Int())
		case "sessionlimit":
			out.SessionLimit = uint64(in.Uint64())
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling20(out *jwriter.Writer, in BackendInformationEtcd) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"url\":"
		out.RawString(prefix[1:])
		out.String(string(in.Url))
	}
	{
		const prefix string = ",\"secret\":"
		out.RawString(prefix)
		out.String(string(in.Secret))
	}
	if in.MaxStreamBitrate != 0 {
		const prefix string = ",\"maxstreambitrate\":"
		out.RawString(prefix)
		out.Int(int(in.MaxStreamBitrate))
	}
	if in.MaxScreenBitrate != 0 {
		const prefix string = ",\"maxscreenbitrate\":"
		out.RawString(prefix)
		out.Int(int(in.MaxScreenBitrate))
	}
	if in.SessionLimit != 0 {
		const prefix string = ",\"sessionlimit\":"
		out.RawString(prefix)
		out.Uint64(uint64(in.SessionLimit))
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendInformationEtcd) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling20(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendInformationEtcd) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling20(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendInformationEtcd) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling20(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendInformationEtcd) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling20(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling21(in *jlexer.Lexer, out *BackendClientSessionResponse) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "version":
			out.Version = string(in.String())
		case "roomid":
			out.RoomId = string(in.String())
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling21(out *jwriter.Writer, in BackendClientSessionResponse) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"version\":"
		out.RawString(prefix[1:])
		out.String(string(in.Version))
	}
	{
		const prefix string = ",\"roomid\":"
		out.RawString(prefix)
		out.String(string(in.RoomId))
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendClientSessionResponse) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling21(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendClientSessionResponse) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling21(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendClientSessionResponse) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling21(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendClientSessionResponse) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling21(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling22(in *jlexer.Lexer, out *BackendClientSessionRequest) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "version":
			out.Version = string(in.String())
		case "roomid":
			out.RoomId = string(in.String())
		case "action":
			out.Action = string(in.String())
		case "sessionid":
			out.SessionId = string(in.String())
		case "userid":
			out.UserId = string(in.String())
		case "user":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.User).UnmarshalJSON(data))
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling22(out *jwriter.Writer, in BackendClientSessionRequest) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"version\":"
		out.RawString(prefix[1:])
		out.String(string(in.Version))
	}
	{
		const prefix string = ",\"roomid\":"
		out.RawString(prefix)
		out.String(string(in.RoomId))
	}
	{
		const prefix string = ",\"action\":"
		out.RawString(prefix)
		out.String(string(in.Action))
	}
	{
		const prefix string = ",\"sessionid\":"
		out.RawString(prefix)
		out.String(string(in.SessionId))
	}
	if in.UserId != "" {
		const prefix string = ",\"userid\":"
		out.RawString(prefix)
		out.String(string(in.UserId))
	}
	if len(in.User) != 0 {
		const prefix string = ",\"user\":"
		out.RawString(prefix)
		out.Raw((in.User).MarshalJSON())
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendClientSessionRequest) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling22(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendClientSessionRequest) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling22(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendClientSessionRequest) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling22(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendClientSessionRequest) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling22(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling23(in *jlexer.Lexer, out *BackendClientRoomResponse) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "version":
			out.Version = string(in.String())
		case "roomid":
			out.RoomId = string(in.String())
		case "properties":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.Properties).UnmarshalJSON(data))
			}
		case "session":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.Session).UnmarshalJSON(data))
			}
		case "permissions":
			if in.IsNull() {
				in.Skip()
				out.Permissions = nil
			} else {
				if out.Permissions == nil {
					out.Permissions = new([]Permission)
				}
				if in.IsNull() {
					in.Skip()
					*out.Permissions = nil
				} else {
					in.Delim('[')
					if *out.Permissions == nil {
						if !in.IsDelim(']') {
							*out.Permissions = make([]Permission, 0, 4)
						} else {
							*out.Permissions = []Permission{}
						}
					} else {
						*out.Permissions = (*out.Permissions)[:0]
					}
					for !in.IsDelim(']') {
						var v50 Permission
						v50 = Permission(in.String())
						*out.Permissions = append(*out.Permissions, v50)
						in.WantComma()
					}
					in.Delim(']')
				}
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling23(out *jwriter.Writer, in BackendClientRoomResponse) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"version\":"
		out.RawString(prefix[1:])
		out.String(string(in.Version))
	}
	{
		const prefix string = ",\"roomid\":"
		out.RawString(prefix)
		out.String(string(in.RoomId))
	}
	{
		const prefix string = ",\"properties\":"
		out.RawString(prefix)
		out.Raw((in.Properties).MarshalJSON())
	}
	if len(in.Session) != 0 {
		const prefix string = ",\"session\":"
		out.RawString(prefix)
		out.Raw((in.Session).MarshalJSON())
	}
	if in.Permissions != nil {
		const prefix string = ",\"permissions\":"
		out.RawString(prefix)
		if *in.Permissions == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
			out.RawString("null")
		} else {
			out.RawByte('[')
			for v51, v52 := range *in.Permissions {
				if v51 > 0 {
					out.RawByte(',')
				}
				out.String(string(v52))
			}
			out.RawByte(']')
		}
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendClientRoomResponse) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling23(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendClientRoomResponse) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling23(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendClientRoomResponse) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling23(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendClientRoomResponse) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling23(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling24(in *jlexer.Lexer, out *BackendClientRoomRequest) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "version":
			out.Version = string(in.String())
		case "roomid":
			out.RoomId = string(in.String())
		case "action":
			out.Action = string(in.String())
		case "userid":
			out.UserId = string(in.String())
		case "sessionid":
			out.SessionId = string(in.String())
		case "actorid":
			out.ActorId = string(in.String())
		case "actortype":
			out.ActorType = string(in.String())
		case "incall":
			out.InCall = int(in.Int())
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling24(out *jwriter.Writer, in BackendClientRoomRequest) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"version\":"
		out.RawString(prefix[1:])
		out.String(string(in.Version))
	}
	{
		const prefix string = ",\"roomid\":"
		out.RawString(prefix)
		out.String(string(in.RoomId))
	}
	if in.Action != "" {
		const prefix string = ",\"action\":"
		out.RawString(prefix)
		out.String(string(in.Action))
	}
	{
		const prefix string = ",\"userid\":"
		out.RawString(prefix)
		out.String(string(in.UserId))
	}
	{
		const prefix string = ",\"sessionid\":"
		out.RawString(prefix)
		out.String(string(in.SessionId))
	}
	if in.ActorId != "" {
		const prefix string = ",\"actorid\":"
		out.RawString(prefix)
		out.String(string(in.ActorId))
	}
	if in.ActorType != "" {
		const prefix string = ",\"actortype\":"
		out.RawString(prefix)
		out.String(string(in.ActorType))
	}
	if in.InCall != 0 {
		const prefix string = ",\"incall\":"
		out.RawString(prefix)
		out.Int(int(in.InCall))
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendClientRoomRequest) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling24(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendClientRoomRequest) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling24(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendClientRoomRequest) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling24(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendClientRoomRequest) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling24(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling25(in *jlexer.Lexer, out *BackendClientRingResponse) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "version":
			out.Version = string(in.String())
		case "roomid":
			out.RoomId = string(in.String())
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling25(out *jwriter.Writer, in BackendClientRingResponse) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"version\":"
		out.RawString(prefix[1:])
		out.String(string(in.Version))
	}
	{
		const prefix string = ",\"roomid\":"
		out.RawString(prefix)
		out.String(string(in.RoomId))
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendClientRingResponse) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling25(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendClientRingResponse) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling25(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendClientRingResponse) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling25(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendClientRingResponse) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling25(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling26(in *jlexer.Lexer, out *BackendClientResponse) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "type":
			out.Type = string(in.String())
		case "error":
			if in.IsNull() {
				in.Skip()
				out.Error = nil
			} else {
				if out.Error == nil {
					out.Error = new(Error)
				}
				(*out.Error).UnmarshalEasyJSON(in)
			}
		case "auth":
			if in.IsNull() {
				in.Skip()
				out.Auth = nil
			} else {
				if out.Auth == nil {
					out.Auth = new(BackendClientAuthResponse)
				}
				(*out.Auth).UnmarshalEasyJSON(in)
			}
		case "room":
			if in.IsNull() {
				in.Skip()
				out.Room = nil
			} else {
				if out.Room == nil {
					out.Room = new(BackendClientRoomResponse)
				}
				(*out.Room).UnmarshalEasyJSON(in)
			}
		case "ping":
			if in.IsNull() {
				in.Skip()
				out.Ping = nil
			} else {
				if out.Ping == nil {
					out.Ping = new(BackendClientRingResponse)
				}
				(*out.Ping).UnmarshalEasyJSON(in)
			}
		case "session":
			if in.IsNull() {
				in.Skip()
				out.Session = nil
			} else {
				if out.Session == nil {
					out.Session = new(BackendClientSessionResponse)
				}
				(*out.Session).UnmarshalEasyJSON(in)
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling26(out *jwriter.Writer, in BackendClientResponse) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"type\":"
		out.RawString(prefix[1:])
		out.String(string(in.Type))
	}
	if in.Error != nil {
		const prefix string = ",\"error\":"
		out.RawString(prefix)
		(*in.Error).MarshalEasyJSON(out)
	}
	if in.Auth != nil {
		const prefix string = ",\"auth\":"
		out.RawString(prefix)
		(*in.Auth).MarshalEasyJSON(out)
	}
	if in.Room != nil {
		const prefix string = ",\"room\":"
		out.RawString(prefix)
		(*in.Room).MarshalEasyJSON(out)
	}
	if in.Ping != nil {
		const prefix string = ",\"ping\":"
		out.RawString(prefix)
		(*in.Ping).MarshalEasyJSON(out)
	}
	if in.Session != nil {
		const prefix string = ",\"session\":"
		out.RawString(prefix)
		(*in.Session).MarshalEasyJSON(out)
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendClientResponse) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling26(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendClientResponse) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling26(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendClientResponse) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling26(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendClientResponse) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling26(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling27(in *jlexer.Lexer, out *BackendClientRequest) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "type":
			out.Type = string(in.String())
		case "auth":
			if in.IsNull() {
				in.Skip()
				out.Auth = nil
			} else {
				if out.Auth == nil {
					out.Auth = new(BackendClientAuthRequest)
				}
				(*out.Auth).UnmarshalEasyJSON(in)
			}
		case "room":
			if in.IsNull() {
				in.Skip()
				out.Room = nil
			} else {
				if out.Room == nil {
					out.Room = new(BackendClientRoomRequest)
				}
				(*out.Room).UnmarshalEasyJSON(in)
			}
		case "ping":
			if in.IsNull() {
				in.Skip()
				out.Ping = nil
			} else {
				if out.Ping == nil {
					out.Ping = new(BackendClientPingRequest)
				}
				(*out.Ping).UnmarshalEasyJSON(in)
			}
		case "session":
			if in.IsNull() {
				in.Skip()
				out.Session = nil
			} else {
				if out.Session == nil {
					out.Session = new(BackendClientSessionRequest)
				}
				(*out.Session).UnmarshalEasyJSON(in)
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling27(out *jwriter.Writer, in BackendClientRequest) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"type\":"
		out.RawString(prefix[1:])
		out.String(string(in.Type))
	}
	if in.Auth != nil {
		const prefix string = ",\"auth\":"
		out.RawString(prefix)
		(*in.Auth).MarshalEasyJSON(out)
	}
	if in.Room != nil {
		const prefix string = ",\"room\":"
		out.RawString(prefix)
		(*in.Room).MarshalEasyJSON(out)
	}
	if in.Ping != nil {
		const prefix string = ",\"ping\":"
		out.RawString(prefix)
		(*in.Ping).MarshalEasyJSON(out)
	}
	if in.Session != nil {
		const prefix string = ",\"session\":"
		out.RawString(prefix)
		(*in.Session).MarshalEasyJSON(out)
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendClientRequest) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling27(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendClientRequest) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling27(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendClientRequest) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling27(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendClientRequest) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling27(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling28(in *jlexer.Lexer, out *BackendClientPingRequest) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "version":
			out.Version = string(in.String())
		case "roomid":
			out.RoomId = string(in.String())
		case "entries":
			if in.IsNull() {
				in.Skip()
				out.Entries = nil
			} else {
				in.Delim('[')
				if out.Entries == nil {
					if !in.IsDelim(']') {
						out.Entries = make([]BackendPingEntry, 0, 2)
					} else {
						out.Entries = []BackendPingEntry{}
					}
				} else {
					out.Entries = (out.Entries)[:0]
				}
				for !in.IsDelim(']') {
					var v53 BackendPingEntry
					(v53).UnmarshalEasyJSON(in)
					out.Entries = append(out.Entries, v53)
					in.WantComma()
				}
				in.Delim(']')
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling28(out *jwriter.Writer, in BackendClientPingRequest) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"version\":"
		out.RawString(prefix[1:])
		out.String(string(in.Version))
	}
	{
		const prefix string = ",\"roomid\":"
		out.RawString(prefix)
		out.String(string(in.RoomId))
	}
	{
		const prefix string = ",\"entries\":"
		out.RawString(prefix)
		if in.Entries == nil && (out.Flags&jwriter.NilSliceAsEmpty) == 0 {
			out.RawString("null")
		} else {
			out.RawByte('[')
			for v54, v55 := range in.Entries {
				if v54 > 0 {
					out.RawByte(',')
				}
				(v55).MarshalEasyJSON(out)
			}
			out.RawByte(']')
		}
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendClientPingRequest) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling28(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendClientPingRequest) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling28(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendClientPingRequest) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling28(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendClientPingRequest) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling28(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling29(in *jlexer.Lexer, out *BackendClientAuthResponse) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "version":
			out.Version = string(in.String())
		case "userid":
			out.UserId = string(in.String())
		case "user":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.User).UnmarshalJSON(data))
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling29(out *jwriter.Writer, in BackendClientAuthResponse) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"version\":"
		out.RawString(prefix[1:])
		out.String(string(in.Version))
	}
	{
		const prefix string = ",\"userid\":"
		out.RawString(prefix)
		out.String(string(in.UserId))
	}
	{
		const prefix string = ",\"user\":"
		out.RawString(prefix)
		out.Raw((in.User).MarshalJSON())
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendClientAuthResponse) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling29(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendClientAuthResponse) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling29(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendClientAuthResponse) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling29(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendClientAuthResponse) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling29(l, v)
}
func easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling30(in *jlexer.Lexer, out *BackendClientAuthRequest) {
	isTopLevel := in.IsStart()
	if in.IsNull() {
		if isTopLevel {
			in.Consumed()
		}
		in.Skip()
		return
	}
	in.Delim('{')
	for !in.IsDelim('}') {
		key := in.UnsafeFieldName(false)
		in.WantColon()
		if in.IsNull() {
			in.Skip()
			in.WantComma()
			continue
		}
		switch key {
		case "version":
			out.Version = string(in.String())
		case "params":
			if data := in.Raw(); in.Ok() {
				in.AddError((out.Params).UnmarshalJSON(data))
			}
		default:
			in.SkipRecursive()
		}
		in.WantComma()
	}
	in.Delim('}')
	if isTopLevel {
		in.Consumed()
	}
}
func easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling30(out *jwriter.Writer, in BackendClientAuthRequest) {
	out.RawByte('{')
	first := true
	_ = first
	{
		const prefix string = ",\"version\":"
		out.RawString(prefix[1:])
		out.String(string(in.Version))
	}
	{
		const prefix string = ",\"params\":"
		out.RawString(prefix)
		out.Raw((in.Params).MarshalJSON())
	}
	out.RawByte('}')
}

// MarshalJSON supports json.Marshaler interface
func (v BackendClientAuthRequest) MarshalJSON() ([]byte, error) {
	w := jwriter.Writer{}
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling30(&w, v)
	return w.Buffer.BuildBytes(), w.Error
}

// MarshalEasyJSON supports easyjson.Marshaler interface
func (v BackendClientAuthRequest) MarshalEasyJSON(w *jwriter.Writer) {
	easyjson4354c623EncodeGithubComStrukturagNextcloudSpreedSignaling30(w, v)
}

// UnmarshalJSON supports json.Unmarshaler interface
func (v *BackendClientAuthRequest) UnmarshalJSON(data []byte) error {
	r := jlexer.Lexer{Data: data}
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling30(&r, v)
	return r.Error()
}

// UnmarshalEasyJSON supports easyjson.Unmarshaler interface
func (v *BackendClientAuthRequest) UnmarshalEasyJSON(l *jlexer.Lexer) {
	easyjson4354c623DecodeGithubComStrukturagNextcloudSpreedSignaling30(l, v)
}
