// <auto-generated>
//     Generated by the protocol buffer compiler.  DO NOT EDIT!
//     source: rec_room/persistence/roomatar_data.proto
// </auto-generated>
#pragma warning disable 1591, 0612, 3021, 8981
#region Designer generated code

using pb = global::Google.Protobuf;
using pbc = global::Google.Protobuf.Collections;
using pbr = global::Google.Protobuf.Reflection;
using scg = global::System.Collections.Generic;
namespace RecRoom.Protobuf {

  /// <summary>Holder for reflection information generated from rec_room/persistence/roomatar_data.proto</summary>
  public static partial class RoomatarDataReflection {

    #region Descriptor
    /// <summary>File descriptor for rec_room/persistence/roomatar_data.proto</summary>
    public static pbr::FileDescriptor Descriptor {
      get { return descriptor; }
    }
    private static pbr::FileDescriptor descriptor;

    static RoomatarDataReflection() {
      byte[] descriptorData = global::System.Convert.FromBase64String(
          string.Concat(
            "CihyZWNfcm9vbS9wZXJzaXN0ZW5jZS9yb29tYXRhcl9kYXRhLnByb3RvEghy",
            "ZWNfcm9vbRoXY29yZS92ZWN0b3IzX2RhdGEucHJvdG8aJ3JlY19yb29tL3Bl",
            "cnNpc3RlbmNlL2hvbG90YXJfZGF0YS5wcm90bxowcmVjX3Jvb20vcGVyc2lz",
            "dGVuY2UvcGVyc2lzdGVuY2Vfdmlld19kYXRhLnByb3RvIogNChBSb29tYXRh",
            "ckJsb2JEYXRhEhAKCGR1cmF0aW9uGAEgASgCEj8KB2F2YXRhcnMYAiADKAsy",
            "Li5yZWNfcm9vbS5Sb29tYXRhckJsb2JEYXRhLkF2YXRhckFuaW1hdGlvbkRh",
            "dGESQQoYdG9vbHNfc3Bhd25hYmxlX3RlbXBsYXRlGAMgASgLMh8ucmVjX3Jv",
            "b20uU3Bhd25hYmxlVGVtcGxhdGVEYXRhEkUKD3Rvb2xfYW5pbWF0aW9ucxgE",
            "IAMoCzIsLnJlY19yb29tLlJvb21hdGFyQmxvYkRhdGEuVG9vbEFuaW1hdGlv",
            "bkRhdGEabQoTQXZhdGFyQW5pbWF0aW9uRGF0YRIMCgRuYW1lGAEgASgJEhcK",
            "D3N0YXJ0X3RpbWVzdGFtcBgCIAEoAhIvCgxob2xvdGFyX2RhdGEYAyABKAsy",
            "GS5yZWNfcm9vbS5Ib2xvdGFyQmxvYkRhdGEaxgQKEVRvb2xBbmltYXRpb25E",
            "YXRhEgwKBG5hbWUYASABKAkSOAoGZXZlbnRzGAMgAygLMigucmVjX3Jvb20u",
            "Um9vbWF0YXJCbG9iRGF0YS5Ub29sRXZlbnREYXRhEj0KC3Bvc2Vfc3RhdGVz",
            "GAQgAygLMigucmVjX3Jvb20uUm9vbWF0YXJCbG9iRGF0YS5Qb3NlU3RhdGVE",
            "YXRhEjMKEXRlYW1fY29sb3Jfc3RhdGVzGAUgAygLMhgucmVjX3Jvb20uQ29s",
            "b3JTdGF0ZURhdGESSAoRaXNfZW5hYmxlZF9zdGF0ZXMYBiADKAsyLS5yZWNf",
            "cm9vbS5Sb29tYXRhckJsb2JEYXRhLklzRW5hYmxlZFN0YXRlRGF0YRIfChdz",
            "dXBwcmVzc19hbmltYXRlX2luX291dBgHIAEoCBIXCg9tdXRlX3Rvb2xfYXVk",
            "aW8YCCABKAgSHAoUbXV0ZV9jb2xsaXNpb25fYXVkaW8YCSABKAgSEwoLdGVt",
            "cGxhdGVfaWQYAiABKAwSZgoZcGxheWVyX2JhY2twYWNrX3Rvb2xfdHlwZRgL",
            "IAEoDjJDLnJlY19yb29tLlJvb21hdGFyQmxvYkRhdGEuVG9vbEFuaW1hdGlv",
            "bkRhdGEuUGxheWVyQmFja3BhY2tUb29sVHlwZSJWChZQbGF5ZXJCYWNrcGFj",
            "a1Rvb2xUeXBlEgsKB0lOVkFMSUQQABINCglTSEFSRV9DQU0QARINCglNQUtF",
            "Ul9QRU4QAhIRCg1GRUVEQkFDS19UT09MEAManAQKDVRvb2xFdmVudERhdGES",
            "EQoJdGltZXN0YW1wGAEgASgCEkMKCmlucHV0X2Rvd24YECABKAsyLy5yZWNf",
            "cm9vbS5Sb29tYXRhckJsb2JEYXRhLlRvb2xFdmVudERhdGEuTm9EYXRhEkYK",
            "DWlucHV0X3ByZXNzZWQYESABKAsyLy5yZWNfcm9vbS5Sb29tYXRhckJsb2JE",
            "YXRhLlRvb2xFdmVudERhdGEuTm9EYXRhEkEKCGlucHV0X3VwGBIgASgLMi8u",
            "cmVjX3Jvb20uUm9vbWF0YXJCbG9iRGF0YS5Ub29sRXZlbnREYXRhLk5vRGF0",
            "YRJgChZpbnB1dF91cF93aXRoX3ZlbG9jaXR5GBMgASgLMkAucmVjX3Jvb20u",
            "Um9vbWF0YXJCbG9iRGF0YS5Ub29sRXZlbnREYXRhLklucHV0VXBXaXRoVmVs",
            "b2NpdHlEYXRhEkgKD2lucHV0X2NhbmNlbGxlZBgUIAEoCzIvLnJlY19yb29t",
            "LlJvb21hdGFyQmxvYkRhdGEuVG9vbEV2ZW50RGF0YS5Ob0RhdGEaCAoGTm9E",
            "YXRhGnIKF0lucHV0VXBXaXRoVmVsb2NpdHlEYXRhEioKD2xpbmVhcl92ZWxv",
            "Y2l0eRgBIAEoCzIRLmNvcmUuVmVjdG9yM0RhdGESKwoQYW5ndWxhcl92ZWxv",
            "Y2l0eRgCIAEoCzIRLmNvcmUuVmVjdG9yM0RhdGEaggEKDVBvc2VTdGF0ZURh",
            "dGESEQoJdGltZXN0YW1wGAEgASgCEiMKCHBvc2l0aW9uGAIgASgLMhEuY29y",
            "ZS5WZWN0b3IzRGF0YRIjCghyb3RhdGlvbhgDIAEoCzIRLmNvcmUuVmVjdG9y",
            "M0RhdGESFAoMdW5pZm9ybVNjYWxlGAQgASgCGjsKEklzRW5hYmxlZFN0YXRl",
            "RGF0YRIRCgl0aW1lc3RhbXAYASABKAISEgoKaXNfZW5hYmxlZBgCIAEoCEIT",
            "qgIQUmVjUm9vbS5Qcm90b2J1ZmIGcHJvdG8z"));
      descriptor = pbr::FileDescriptor.FromGeneratedCode(descriptorData,
          new pbr::FileDescriptor[] { global::RecRoom.Protobuf.Core.Vector3DataReflection.Descriptor, global::RecRoom.Protobuf.HolotarDataReflection.Descriptor, global::RecRoom.Protobuf.PersistenceViewDataReflection.Descriptor, },
          new pbr::GeneratedClrTypeInfo(null, null, new pbr::GeneratedClrTypeInfo[] {
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.RoomatarBlobData), global::RecRoom.Protobuf.RoomatarBlobData.Parser, new[]{ "Duration", "Avatars", "ToolsSpawnableTemplate", "ToolAnimations" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.RoomatarBlobData.Types.AvatarAnimationData), global::RecRoom.Protobuf.RoomatarBlobData.Types.AvatarAnimationData.Parser, new[]{ "Name", "StartTimestamp", "HolotarData" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolAnimationData), global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolAnimationData.Parser, new[]{ "Name", "Events", "PoseStates", "TeamColorStates", "IsEnabledStates", "SuppressAnimateInOut", "MuteToolAudio", "MuteCollisionAudio", "TemplateId", "PlayerBackpackToolType" }, null, new[]{ typeof(global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolAnimationData.Types.PlayerBackpackToolType) }, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData), global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Parser, new[]{ "Timestamp", "InputDown", "InputPressed", "InputUp", "InputUpWithVelocity", "InputCancelled" }, null, null, null, new pbr::GeneratedClrTypeInfo[] { new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.NoData), global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.NoData.Parser, null, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.InputUpWithVelocityData), global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.InputUpWithVelocityData.Parser, new[]{ "LinearVelocity", "AngularVelocity" }, null, null, null, null)}),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.RoomatarBlobData.Types.PoseStateData), global::RecRoom.Protobuf.RoomatarBlobData.Types.PoseStateData.Parser, new[]{ "Timestamp", "Position", "Rotation", "UniformScale" }, null, null, null, null),
            new pbr::GeneratedClrTypeInfo(typeof(global::RecRoom.Protobuf.RoomatarBlobData.Types.IsEnabledStateData), global::RecRoom.Protobuf.RoomatarBlobData.Types.IsEnabledStateData.Parser, new[]{ "Timestamp", "IsEnabled" }, null, null, null, null)})
          }));
    }
    #endregion

  }
  #region Messages
  [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
  public sealed partial class RoomatarBlobData : pb::IMessage<RoomatarBlobData>
  #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      , pb::IBufferMessage
  #endif
  {
    private static readonly pb::MessageParser<RoomatarBlobData> _parser = new pb::MessageParser<RoomatarBlobData>(() => new RoomatarBlobData());
    private pb::UnknownFieldSet _unknownFields;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pb::MessageParser<RoomatarBlobData> Parser { get { return _parser; } }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static pbr::MessageDescriptor Descriptor {
      get { return global::RecRoom.Protobuf.RoomatarDataReflection.Descriptor.MessageTypes[0]; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    pbr::MessageDescriptor pb::IMessage.Descriptor {
      get { return Descriptor; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public RoomatarBlobData() {
      OnConstruction();
    }

    partial void OnConstruction();

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public RoomatarBlobData(RoomatarBlobData other) : this() {
      duration_ = other.duration_;
      avatars_ = other.avatars_.Clone();
      toolsSpawnableTemplate_ = other.toolsSpawnableTemplate_ != null ? other.toolsSpawnableTemplate_.Clone() : null;
      toolAnimations_ = other.toolAnimations_.Clone();
      _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public RoomatarBlobData Clone() {
      return new RoomatarBlobData(this);
    }

    /// <summary>Field number for the "duration" field.</summary>
    public const int DurationFieldNumber = 1;
    private float duration_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public float Duration {
      get { return duration_; }
      set {
        duration_ = value;
      }
    }

    /// <summary>Field number for the "avatars" field.</summary>
    public const int AvatarsFieldNumber = 2;
    private static readonly pb::FieldCodec<global::RecRoom.Protobuf.RoomatarBlobData.Types.AvatarAnimationData> _repeated_avatars_codec
        = pb::FieldCodec.ForMessage(18, global::RecRoom.Protobuf.RoomatarBlobData.Types.AvatarAnimationData.Parser);
    private readonly pbc::RepeatedField<global::RecRoom.Protobuf.RoomatarBlobData.Types.AvatarAnimationData> avatars_ = new pbc::RepeatedField<global::RecRoom.Protobuf.RoomatarBlobData.Types.AvatarAnimationData>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::RecRoom.Protobuf.RoomatarBlobData.Types.AvatarAnimationData> Avatars {
      get { return avatars_; }
    }

    /// <summary>Field number for the "tools_spawnable_template" field.</summary>
    public const int ToolsSpawnableTemplateFieldNumber = 3;
    private global::RecRoom.Protobuf.SpawnableTemplateData toolsSpawnableTemplate_;
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public global::RecRoom.Protobuf.SpawnableTemplateData ToolsSpawnableTemplate {
      get { return toolsSpawnableTemplate_; }
      set {
        toolsSpawnableTemplate_ = value;
      }
    }

    /// <summary>Field number for the "tool_animations" field.</summary>
    public const int ToolAnimationsFieldNumber = 4;
    private static readonly pb::FieldCodec<global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolAnimationData> _repeated_toolAnimations_codec
        = pb::FieldCodec.ForMessage(34, global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolAnimationData.Parser);
    private readonly pbc::RepeatedField<global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolAnimationData> toolAnimations_ = new pbc::RepeatedField<global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolAnimationData>();
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public pbc::RepeatedField<global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolAnimationData> ToolAnimations {
      get { return toolAnimations_; }
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override bool Equals(object other) {
      return Equals(other as RoomatarBlobData);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public bool Equals(RoomatarBlobData other) {
      if (ReferenceEquals(other, null)) {
        return false;
      }
      if (ReferenceEquals(other, this)) {
        return true;
      }
      if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Duration, other.Duration)) return false;
      if(!avatars_.Equals(other.avatars_)) return false;
      if (!object.Equals(ToolsSpawnableTemplate, other.ToolsSpawnableTemplate)) return false;
      if(!toolAnimations_.Equals(other.toolAnimations_)) return false;
      return Equals(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override int GetHashCode() {
      int hash = 1;
      if (Duration != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Duration);
      hash ^= avatars_.GetHashCode();
      if (toolsSpawnableTemplate_ != null) hash ^= ToolsSpawnableTemplate.GetHashCode();
      hash ^= toolAnimations_.GetHashCode();
      if (_unknownFields != null) {
        hash ^= _unknownFields.GetHashCode();
      }
      return hash;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public override string ToString() {
      return pb::JsonFormatter.ToDiagnosticString(this);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void WriteTo(pb::CodedOutputStream output) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      output.WriteRawMessage(this);
    #else
      if (Duration != 0F) {
        output.WriteRawTag(13);
        output.WriteFloat(Duration);
      }
      avatars_.WriteTo(output, _repeated_avatars_codec);
      if (toolsSpawnableTemplate_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(ToolsSpawnableTemplate);
      }
      toolAnimations_.WriteTo(output, _repeated_toolAnimations_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(output);
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
      if (Duration != 0F) {
        output.WriteRawTag(13);
        output.WriteFloat(Duration);
      }
      avatars_.WriteTo(ref output, _repeated_avatars_codec);
      if (toolsSpawnableTemplate_ != null) {
        output.WriteRawTag(26);
        output.WriteMessage(ToolsSpawnableTemplate);
      }
      toolAnimations_.WriteTo(ref output, _repeated_toolAnimations_codec);
      if (_unknownFields != null) {
        _unknownFields.WriteTo(ref output);
      }
    }
    #endif

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public int CalculateSize() {
      int size = 0;
      if (Duration != 0F) {
        size += 1 + 4;
      }
      size += avatars_.CalculateSize(_repeated_avatars_codec);
      if (toolsSpawnableTemplate_ != null) {
        size += 1 + pb::CodedOutputStream.ComputeMessageSize(ToolsSpawnableTemplate);
      }
      size += toolAnimations_.CalculateSize(_repeated_toolAnimations_codec);
      if (_unknownFields != null) {
        size += _unknownFields.CalculateSize();
      }
      return size;
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(RoomatarBlobData other) {
      if (other == null) {
        return;
      }
      if (other.Duration != 0F) {
        Duration = other.Duration;
      }
      avatars_.Add(other.avatars_);
      if (other.toolsSpawnableTemplate_ != null) {
        if (toolsSpawnableTemplate_ == null) {
          ToolsSpawnableTemplate = new global::RecRoom.Protobuf.SpawnableTemplateData();
        }
        ToolsSpawnableTemplate.MergeFrom(other.ToolsSpawnableTemplate);
      }
      toolAnimations_.Add(other.toolAnimations_);
      _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
    }

    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public void MergeFrom(pb::CodedInputStream input) {
    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
      input.ReadRawMessage(this);
    #else
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
            break;
          case 13: {
            Duration = input.ReadFloat();
            break;
          }
          case 18: {
            avatars_.AddEntriesFrom(input, _repeated_avatars_codec);
            break;
          }
          case 26: {
            if (toolsSpawnableTemplate_ == null) {
              ToolsSpawnableTemplate = new global::RecRoom.Protobuf.SpawnableTemplateData();
            }
            input.ReadMessage(ToolsSpawnableTemplate);
            break;
          }
          case 34: {
            toolAnimations_.AddEntriesFrom(input, _repeated_toolAnimations_codec);
            break;
          }
        }
      }
    #endif
    }

    #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
      uint tag;
      while ((tag = input.ReadTag()) != 0) {
      if ((tag & 7) == 4) {
        // Abort on any end group tag.
        return;
      }
      switch(tag) {
          default:
            _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
            break;
          case 13: {
            Duration = input.ReadFloat();
            break;
          }
          case 18: {
            avatars_.AddEntriesFrom(ref input, _repeated_avatars_codec);
            break;
          }
          case 26: {
            if (toolsSpawnableTemplate_ == null) {
              ToolsSpawnableTemplate = new global::RecRoom.Protobuf.SpawnableTemplateData();
            }
            input.ReadMessage(ToolsSpawnableTemplate);
            break;
          }
          case 34: {
            toolAnimations_.AddEntriesFrom(ref input, _repeated_toolAnimations_codec);
            break;
          }
        }
      }
    }
    #endif

    #region Nested types
    /// <summary>Container for nested types declared in the RoomatarBlobData message type.</summary>
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
    [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
    public static partial class Types {
      [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
      public sealed partial class AvatarAnimationData : pb::IMessage<AvatarAnimationData>
      #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          , pb::IBufferMessage
      #endif
      {
        private static readonly pb::MessageParser<AvatarAnimationData> _parser = new pb::MessageParser<AvatarAnimationData>(() => new AvatarAnimationData());
        private pb::UnknownFieldSet _unknownFields;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pb::MessageParser<AvatarAnimationData> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pbr::MessageDescriptor Descriptor {
          get { return global::RecRoom.Protobuf.RoomatarBlobData.Descriptor.NestedTypes[0]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        pbr::MessageDescriptor pb::IMessage.Descriptor {
          get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public AvatarAnimationData() {
          OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public AvatarAnimationData(AvatarAnimationData other) : this() {
          name_ = other.name_;
          startTimestamp_ = other.startTimestamp_;
          holotarData_ = other.holotarData_ != null ? other.holotarData_.Clone() : null;
          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public AvatarAnimationData Clone() {
          return new AvatarAnimationData(this);
        }

        /// <summary>Field number for the "name" field.</summary>
        public const int NameFieldNumber = 1;
        private string name_ = "";
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public string Name {
          get { return name_; }
          set {
            name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
          }
        }

        /// <summary>Field number for the "start_timestamp" field.</summary>
        public const int StartTimestampFieldNumber = 2;
        private float startTimestamp_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public float StartTimestamp {
          get { return startTimestamp_; }
          set {
            startTimestamp_ = value;
          }
        }

        /// <summary>Field number for the "holotar_data" field.</summary>
        public const int HolotarDataFieldNumber = 3;
        private global::RecRoom.Protobuf.HolotarBlobData holotarData_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public global::RecRoom.Protobuf.HolotarBlobData HolotarData {
          get { return holotarData_; }
          set {
            holotarData_ = value;
          }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override bool Equals(object other) {
          return Equals(other as AvatarAnimationData);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool Equals(AvatarAnimationData other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if (Name != other.Name) return false;
          if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(StartTimestamp, other.StartTimestamp)) return false;
          if (!object.Equals(HolotarData, other.HolotarData)) return false;
          return Equals(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override int GetHashCode() {
          int hash = 1;
          if (Name.Length != 0) hash ^= Name.GetHashCode();
          if (StartTimestamp != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(StartTimestamp);
          if (holotarData_ != null) hash ^= HolotarData.GetHashCode();
          if (_unknownFields != null) {
            hash ^= _unknownFields.GetHashCode();
          }
          return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override string ToString() {
          return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void WriteTo(pb::CodedOutputStream output) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          output.WriteRawMessage(this);
        #else
          if (Name.Length != 0) {
            output.WriteRawTag(10);
            output.WriteString(Name);
          }
          if (StartTimestamp != 0F) {
            output.WriteRawTag(21);
            output.WriteFloat(StartTimestamp);
          }
          if (holotarData_ != null) {
            output.WriteRawTag(26);
            output.WriteMessage(HolotarData);
          }
          if (_unknownFields != null) {
            _unknownFields.WriteTo(output);
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
          if (Name.Length != 0) {
            output.WriteRawTag(10);
            output.WriteString(Name);
          }
          if (StartTimestamp != 0F) {
            output.WriteRawTag(21);
            output.WriteFloat(StartTimestamp);
          }
          if (holotarData_ != null) {
            output.WriteRawTag(26);
            output.WriteMessage(HolotarData);
          }
          if (_unknownFields != null) {
            _unknownFields.WriteTo(ref output);
          }
        }
        #endif

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public int CalculateSize() {
          int size = 0;
          if (Name.Length != 0) {
            size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
          }
          if (StartTimestamp != 0F) {
            size += 1 + 4;
          }
          if (holotarData_ != null) {
            size += 1 + pb::CodedOutputStream.ComputeMessageSize(HolotarData);
          }
          if (_unknownFields != null) {
            size += _unknownFields.CalculateSize();
          }
          return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(AvatarAnimationData other) {
          if (other == null) {
            return;
          }
          if (other.Name.Length != 0) {
            Name = other.Name;
          }
          if (other.StartTimestamp != 0F) {
            StartTimestamp = other.StartTimestamp;
          }
          if (other.holotarData_ != null) {
            if (holotarData_ == null) {
              HolotarData = new global::RecRoom.Protobuf.HolotarBlobData();
            }
            HolotarData.MergeFrom(other.HolotarData);
          }
          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(pb::CodedInputStream input) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          input.ReadRawMessage(this);
        #else
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                break;
              case 10: {
                Name = input.ReadString();
                break;
              }
              case 21: {
                StartTimestamp = input.ReadFloat();
                break;
              }
              case 26: {
                if (holotarData_ == null) {
                  HolotarData = new global::RecRoom.Protobuf.HolotarBlobData();
                }
                input.ReadMessage(HolotarData);
                break;
              }
            }
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
                break;
              case 10: {
                Name = input.ReadString();
                break;
              }
              case 21: {
                StartTimestamp = input.ReadFloat();
                break;
              }
              case 26: {
                if (holotarData_ == null) {
                  HolotarData = new global::RecRoom.Protobuf.HolotarBlobData();
                }
                input.ReadMessage(HolotarData);
                break;
              }
            }
          }
        }
        #endif

      }

      [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
      public sealed partial class ToolAnimationData : pb::IMessage<ToolAnimationData>
      #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          , pb::IBufferMessage
      #endif
      {
        private static readonly pb::MessageParser<ToolAnimationData> _parser = new pb::MessageParser<ToolAnimationData>(() => new ToolAnimationData());
        private pb::UnknownFieldSet _unknownFields;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pb::MessageParser<ToolAnimationData> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pbr::MessageDescriptor Descriptor {
          get { return global::RecRoom.Protobuf.RoomatarBlobData.Descriptor.NestedTypes[1]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        pbr::MessageDescriptor pb::IMessage.Descriptor {
          get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public ToolAnimationData() {
          OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public ToolAnimationData(ToolAnimationData other) : this() {
          name_ = other.name_;
          events_ = other.events_.Clone();
          poseStates_ = other.poseStates_.Clone();
          teamColorStates_ = other.teamColorStates_.Clone();
          isEnabledStates_ = other.isEnabledStates_.Clone();
          suppressAnimateInOut_ = other.suppressAnimateInOut_;
          muteToolAudio_ = other.muteToolAudio_;
          muteCollisionAudio_ = other.muteCollisionAudio_;
          templateId_ = other.templateId_;
          playerBackpackToolType_ = other.playerBackpackToolType_;
          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public ToolAnimationData Clone() {
          return new ToolAnimationData(this);
        }

        /// <summary>Field number for the "name" field.</summary>
        public const int NameFieldNumber = 1;
        private string name_ = "";
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public string Name {
          get { return name_; }
          set {
            name_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
          }
        }

        /// <summary>Field number for the "events" field.</summary>
        public const int EventsFieldNumber = 3;
        private static readonly pb::FieldCodec<global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData> _repeated_events_codec
            = pb::FieldCodec.ForMessage(26, global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Parser);
        private readonly pbc::RepeatedField<global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData> events_ = new pbc::RepeatedField<global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData>();
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public pbc::RepeatedField<global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData> Events {
          get { return events_; }
        }

        /// <summary>Field number for the "pose_states" field.</summary>
        public const int PoseStatesFieldNumber = 4;
        private static readonly pb::FieldCodec<global::RecRoom.Protobuf.RoomatarBlobData.Types.PoseStateData> _repeated_poseStates_codec
            = pb::FieldCodec.ForMessage(34, global::RecRoom.Protobuf.RoomatarBlobData.Types.PoseStateData.Parser);
        private readonly pbc::RepeatedField<global::RecRoom.Protobuf.RoomatarBlobData.Types.PoseStateData> poseStates_ = new pbc::RepeatedField<global::RecRoom.Protobuf.RoomatarBlobData.Types.PoseStateData>();
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public pbc::RepeatedField<global::RecRoom.Protobuf.RoomatarBlobData.Types.PoseStateData> PoseStates {
          get { return poseStates_; }
        }

        /// <summary>Field number for the "team_color_states" field.</summary>
        public const int TeamColorStatesFieldNumber = 5;
        private static readonly pb::FieldCodec<global::RecRoom.Protobuf.ColorStateData> _repeated_teamColorStates_codec
            = pb::FieldCodec.ForMessage(42, global::RecRoom.Protobuf.ColorStateData.Parser);
        private readonly pbc::RepeatedField<global::RecRoom.Protobuf.ColorStateData> teamColorStates_ = new pbc::RepeatedField<global::RecRoom.Protobuf.ColorStateData>();
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public pbc::RepeatedField<global::RecRoom.Protobuf.ColorStateData> TeamColorStates {
          get { return teamColorStates_; }
        }

        /// <summary>Field number for the "is_enabled_states" field.</summary>
        public const int IsEnabledStatesFieldNumber = 6;
        private static readonly pb::FieldCodec<global::RecRoom.Protobuf.RoomatarBlobData.Types.IsEnabledStateData> _repeated_isEnabledStates_codec
            = pb::FieldCodec.ForMessage(50, global::RecRoom.Protobuf.RoomatarBlobData.Types.IsEnabledStateData.Parser);
        private readonly pbc::RepeatedField<global::RecRoom.Protobuf.RoomatarBlobData.Types.IsEnabledStateData> isEnabledStates_ = new pbc::RepeatedField<global::RecRoom.Protobuf.RoomatarBlobData.Types.IsEnabledStateData>();
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public pbc::RepeatedField<global::RecRoom.Protobuf.RoomatarBlobData.Types.IsEnabledStateData> IsEnabledStates {
          get { return isEnabledStates_; }
        }

        /// <summary>Field number for the "suppress_animate_in_out" field.</summary>
        public const int SuppressAnimateInOutFieldNumber = 7;
        private bool suppressAnimateInOut_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool SuppressAnimateInOut {
          get { return suppressAnimateInOut_; }
          set {
            suppressAnimateInOut_ = value;
          }
        }

        /// <summary>Field number for the "mute_tool_audio" field.</summary>
        public const int MuteToolAudioFieldNumber = 8;
        private bool muteToolAudio_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool MuteToolAudio {
          get { return muteToolAudio_; }
          set {
            muteToolAudio_ = value;
          }
        }

        /// <summary>Field number for the "mute_collision_audio" field.</summary>
        public const int MuteCollisionAudioFieldNumber = 9;
        private bool muteCollisionAudio_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool MuteCollisionAudio {
          get { return muteCollisionAudio_; }
          set {
            muteCollisionAudio_ = value;
          }
        }

        /// <summary>Field number for the "template_id" field.</summary>
        public const int TemplateIdFieldNumber = 2;
        private pb::ByteString templateId_ = pb::ByteString.Empty;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public pb::ByteString TemplateId {
          get { return templateId_; }
          set {
            templateId_ = pb::ProtoPreconditions.CheckNotNull(value, "value");
          }
        }

        /// <summary>Field number for the "player_backpack_tool_type" field.</summary>
        public const int PlayerBackpackToolTypeFieldNumber = 11;
        private global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolAnimationData.Types.PlayerBackpackToolType playerBackpackToolType_ = global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolAnimationData.Types.PlayerBackpackToolType.Invalid;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolAnimationData.Types.PlayerBackpackToolType PlayerBackpackToolType {
          get { return playerBackpackToolType_; }
          set {
            playerBackpackToolType_ = value;
          }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override bool Equals(object other) {
          return Equals(other as ToolAnimationData);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool Equals(ToolAnimationData other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if (Name != other.Name) return false;
          if(!events_.Equals(other.events_)) return false;
          if(!poseStates_.Equals(other.poseStates_)) return false;
          if(!teamColorStates_.Equals(other.teamColorStates_)) return false;
          if(!isEnabledStates_.Equals(other.isEnabledStates_)) return false;
          if (SuppressAnimateInOut != other.SuppressAnimateInOut) return false;
          if (MuteToolAudio != other.MuteToolAudio) return false;
          if (MuteCollisionAudio != other.MuteCollisionAudio) return false;
          if (TemplateId != other.TemplateId) return false;
          if (PlayerBackpackToolType != other.PlayerBackpackToolType) return false;
          return Equals(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override int GetHashCode() {
          int hash = 1;
          if (Name.Length != 0) hash ^= Name.GetHashCode();
          hash ^= events_.GetHashCode();
          hash ^= poseStates_.GetHashCode();
          hash ^= teamColorStates_.GetHashCode();
          hash ^= isEnabledStates_.GetHashCode();
          if (SuppressAnimateInOut != false) hash ^= SuppressAnimateInOut.GetHashCode();
          if (MuteToolAudio != false) hash ^= MuteToolAudio.GetHashCode();
          if (MuteCollisionAudio != false) hash ^= MuteCollisionAudio.GetHashCode();
          if (TemplateId.Length != 0) hash ^= TemplateId.GetHashCode();
          if (PlayerBackpackToolType != global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolAnimationData.Types.PlayerBackpackToolType.Invalid) hash ^= PlayerBackpackToolType.GetHashCode();
          if (_unknownFields != null) {
            hash ^= _unknownFields.GetHashCode();
          }
          return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override string ToString() {
          return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void WriteTo(pb::CodedOutputStream output) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          output.WriteRawMessage(this);
        #else
          if (Name.Length != 0) {
            output.WriteRawTag(10);
            output.WriteString(Name);
          }
          if (TemplateId.Length != 0) {
            output.WriteRawTag(18);
            output.WriteBytes(TemplateId);
          }
          events_.WriteTo(output, _repeated_events_codec);
          poseStates_.WriteTo(output, _repeated_poseStates_codec);
          teamColorStates_.WriteTo(output, _repeated_teamColorStates_codec);
          isEnabledStates_.WriteTo(output, _repeated_isEnabledStates_codec);
          if (SuppressAnimateInOut != false) {
            output.WriteRawTag(56);
            output.WriteBool(SuppressAnimateInOut);
          }
          if (MuteToolAudio != false) {
            output.WriteRawTag(64);
            output.WriteBool(MuteToolAudio);
          }
          if (MuteCollisionAudio != false) {
            output.WriteRawTag(72);
            output.WriteBool(MuteCollisionAudio);
          }
          if (PlayerBackpackToolType != global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolAnimationData.Types.PlayerBackpackToolType.Invalid) {
            output.WriteRawTag(88);
            output.WriteEnum((int) PlayerBackpackToolType);
          }
          if (_unknownFields != null) {
            _unknownFields.WriteTo(output);
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
          if (Name.Length != 0) {
            output.WriteRawTag(10);
            output.WriteString(Name);
          }
          if (TemplateId.Length != 0) {
            output.WriteRawTag(18);
            output.WriteBytes(TemplateId);
          }
          events_.WriteTo(ref output, _repeated_events_codec);
          poseStates_.WriteTo(ref output, _repeated_poseStates_codec);
          teamColorStates_.WriteTo(ref output, _repeated_teamColorStates_codec);
          isEnabledStates_.WriteTo(ref output, _repeated_isEnabledStates_codec);
          if (SuppressAnimateInOut != false) {
            output.WriteRawTag(56);
            output.WriteBool(SuppressAnimateInOut);
          }
          if (MuteToolAudio != false) {
            output.WriteRawTag(64);
            output.WriteBool(MuteToolAudio);
          }
          if (MuteCollisionAudio != false) {
            output.WriteRawTag(72);
            output.WriteBool(MuteCollisionAudio);
          }
          if (PlayerBackpackToolType != global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolAnimationData.Types.PlayerBackpackToolType.Invalid) {
            output.WriteRawTag(88);
            output.WriteEnum((int) PlayerBackpackToolType);
          }
          if (_unknownFields != null) {
            _unknownFields.WriteTo(ref output);
          }
        }
        #endif

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public int CalculateSize() {
          int size = 0;
          if (Name.Length != 0) {
            size += 1 + pb::CodedOutputStream.ComputeStringSize(Name);
          }
          size += events_.CalculateSize(_repeated_events_codec);
          size += poseStates_.CalculateSize(_repeated_poseStates_codec);
          size += teamColorStates_.CalculateSize(_repeated_teamColorStates_codec);
          size += isEnabledStates_.CalculateSize(_repeated_isEnabledStates_codec);
          if (SuppressAnimateInOut != false) {
            size += 1 + 1;
          }
          if (MuteToolAudio != false) {
            size += 1 + 1;
          }
          if (MuteCollisionAudio != false) {
            size += 1 + 1;
          }
          if (TemplateId.Length != 0) {
            size += 1 + pb::CodedOutputStream.ComputeBytesSize(TemplateId);
          }
          if (PlayerBackpackToolType != global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolAnimationData.Types.PlayerBackpackToolType.Invalid) {
            size += 1 + pb::CodedOutputStream.ComputeEnumSize((int) PlayerBackpackToolType);
          }
          if (_unknownFields != null) {
            size += _unknownFields.CalculateSize();
          }
          return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(ToolAnimationData other) {
          if (other == null) {
            return;
          }
          if (other.Name.Length != 0) {
            Name = other.Name;
          }
          events_.Add(other.events_);
          poseStates_.Add(other.poseStates_);
          teamColorStates_.Add(other.teamColorStates_);
          isEnabledStates_.Add(other.isEnabledStates_);
          if (other.SuppressAnimateInOut != false) {
            SuppressAnimateInOut = other.SuppressAnimateInOut;
          }
          if (other.MuteToolAudio != false) {
            MuteToolAudio = other.MuteToolAudio;
          }
          if (other.MuteCollisionAudio != false) {
            MuteCollisionAudio = other.MuteCollisionAudio;
          }
          if (other.TemplateId.Length != 0) {
            TemplateId = other.TemplateId;
          }
          if (other.PlayerBackpackToolType != global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolAnimationData.Types.PlayerBackpackToolType.Invalid) {
            PlayerBackpackToolType = other.PlayerBackpackToolType;
          }
          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(pb::CodedInputStream input) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          input.ReadRawMessage(this);
        #else
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                break;
              case 10: {
                Name = input.ReadString();
                break;
              }
              case 18: {
                TemplateId = input.ReadBytes();
                break;
              }
              case 26: {
                events_.AddEntriesFrom(input, _repeated_events_codec);
                break;
              }
              case 34: {
                poseStates_.AddEntriesFrom(input, _repeated_poseStates_codec);
                break;
              }
              case 42: {
                teamColorStates_.AddEntriesFrom(input, _repeated_teamColorStates_codec);
                break;
              }
              case 50: {
                isEnabledStates_.AddEntriesFrom(input, _repeated_isEnabledStates_codec);
                break;
              }
              case 56: {
                SuppressAnimateInOut = input.ReadBool();
                break;
              }
              case 64: {
                MuteToolAudio = input.ReadBool();
                break;
              }
              case 72: {
                MuteCollisionAudio = input.ReadBool();
                break;
              }
              case 88: {
                PlayerBackpackToolType = (global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolAnimationData.Types.PlayerBackpackToolType) input.ReadEnum();
                break;
              }
            }
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
                break;
              case 10: {
                Name = input.ReadString();
                break;
              }
              case 18: {
                TemplateId = input.ReadBytes();
                break;
              }
              case 26: {
                events_.AddEntriesFrom(ref input, _repeated_events_codec);
                break;
              }
              case 34: {
                poseStates_.AddEntriesFrom(ref input, _repeated_poseStates_codec);
                break;
              }
              case 42: {
                teamColorStates_.AddEntriesFrom(ref input, _repeated_teamColorStates_codec);
                break;
              }
              case 50: {
                isEnabledStates_.AddEntriesFrom(ref input, _repeated_isEnabledStates_codec);
                break;
              }
              case 56: {
                SuppressAnimateInOut = input.ReadBool();
                break;
              }
              case 64: {
                MuteToolAudio = input.ReadBool();
                break;
              }
              case 72: {
                MuteCollisionAudio = input.ReadBool();
                break;
              }
              case 88: {
                PlayerBackpackToolType = (global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolAnimationData.Types.PlayerBackpackToolType) input.ReadEnum();
                break;
              }
            }
          }
        }
        #endif

        #region Nested types
        /// <summary>Container for nested types declared in the ToolAnimationData message type.</summary>
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static partial class Types {
          public enum PlayerBackpackToolType {
            [pbr::OriginalName("INVALID")] Invalid = 0,
            [pbr::OriginalName("SHARE_CAM")] ShareCam = 1,
            [pbr::OriginalName("MAKER_PEN")] MakerPen = 2,
            [pbr::OriginalName("FEEDBACK_TOOL")] FeedbackTool = 3,
          }

        }
        #endregion

      }

      [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
      public sealed partial class ToolEventData : pb::IMessage<ToolEventData>
      #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          , pb::IBufferMessage
      #endif
      {
        private static readonly pb::MessageParser<ToolEventData> _parser = new pb::MessageParser<ToolEventData>(() => new ToolEventData());
        private pb::UnknownFieldSet _unknownFields;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pb::MessageParser<ToolEventData> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pbr::MessageDescriptor Descriptor {
          get { return global::RecRoom.Protobuf.RoomatarBlobData.Descriptor.NestedTypes[2]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        pbr::MessageDescriptor pb::IMessage.Descriptor {
          get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public ToolEventData() {
          OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public ToolEventData(ToolEventData other) : this() {
          timestamp_ = other.timestamp_;
          inputDown_ = other.inputDown_ != null ? other.inputDown_.Clone() : null;
          inputPressed_ = other.inputPressed_ != null ? other.inputPressed_.Clone() : null;
          inputUp_ = other.inputUp_ != null ? other.inputUp_.Clone() : null;
          inputUpWithVelocity_ = other.inputUpWithVelocity_ != null ? other.inputUpWithVelocity_.Clone() : null;
          inputCancelled_ = other.inputCancelled_ != null ? other.inputCancelled_.Clone() : null;
          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public ToolEventData Clone() {
          return new ToolEventData(this);
        }

        /// <summary>Field number for the "timestamp" field.</summary>
        public const int TimestampFieldNumber = 1;
        private float timestamp_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public float Timestamp {
          get { return timestamp_; }
          set {
            timestamp_ = value;
          }
        }

        /// <summary>Field number for the "input_down" field.</summary>
        public const int InputDownFieldNumber = 16;
        private global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.NoData inputDown_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.NoData InputDown {
          get { return inputDown_; }
          set {
            inputDown_ = value;
          }
        }

        /// <summary>Field number for the "input_pressed" field.</summary>
        public const int InputPressedFieldNumber = 17;
        private global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.NoData inputPressed_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.NoData InputPressed {
          get { return inputPressed_; }
          set {
            inputPressed_ = value;
          }
        }

        /// <summary>Field number for the "input_up" field.</summary>
        public const int InputUpFieldNumber = 18;
        private global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.NoData inputUp_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.NoData InputUp {
          get { return inputUp_; }
          set {
            inputUp_ = value;
          }
        }

        /// <summary>Field number for the "input_up_with_velocity" field.</summary>
        public const int InputUpWithVelocityFieldNumber = 19;
        private global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.InputUpWithVelocityData inputUpWithVelocity_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.InputUpWithVelocityData InputUpWithVelocity {
          get { return inputUpWithVelocity_; }
          set {
            inputUpWithVelocity_ = value;
          }
        }

        /// <summary>Field number for the "input_cancelled" field.</summary>
        public const int InputCancelledFieldNumber = 20;
        private global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.NoData inputCancelled_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.NoData InputCancelled {
          get { return inputCancelled_; }
          set {
            inputCancelled_ = value;
          }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override bool Equals(object other) {
          return Equals(other as ToolEventData);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool Equals(ToolEventData other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Timestamp, other.Timestamp)) return false;
          if (!object.Equals(InputDown, other.InputDown)) return false;
          if (!object.Equals(InputPressed, other.InputPressed)) return false;
          if (!object.Equals(InputUp, other.InputUp)) return false;
          if (!object.Equals(InputUpWithVelocity, other.InputUpWithVelocity)) return false;
          if (!object.Equals(InputCancelled, other.InputCancelled)) return false;
          return Equals(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override int GetHashCode() {
          int hash = 1;
          if (Timestamp != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Timestamp);
          if (inputDown_ != null) hash ^= InputDown.GetHashCode();
          if (inputPressed_ != null) hash ^= InputPressed.GetHashCode();
          if (inputUp_ != null) hash ^= InputUp.GetHashCode();
          if (inputUpWithVelocity_ != null) hash ^= InputUpWithVelocity.GetHashCode();
          if (inputCancelled_ != null) hash ^= InputCancelled.GetHashCode();
          if (_unknownFields != null) {
            hash ^= _unknownFields.GetHashCode();
          }
          return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override string ToString() {
          return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void WriteTo(pb::CodedOutputStream output) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          output.WriteRawMessage(this);
        #else
          if (Timestamp != 0F) {
            output.WriteRawTag(13);
            output.WriteFloat(Timestamp);
          }
          if (inputDown_ != null) {
            output.WriteRawTag(130, 1);
            output.WriteMessage(InputDown);
          }
          if (inputPressed_ != null) {
            output.WriteRawTag(138, 1);
            output.WriteMessage(InputPressed);
          }
          if (inputUp_ != null) {
            output.WriteRawTag(146, 1);
            output.WriteMessage(InputUp);
          }
          if (inputUpWithVelocity_ != null) {
            output.WriteRawTag(154, 1);
            output.WriteMessage(InputUpWithVelocity);
          }
          if (inputCancelled_ != null) {
            output.WriteRawTag(162, 1);
            output.WriteMessage(InputCancelled);
          }
          if (_unknownFields != null) {
            _unknownFields.WriteTo(output);
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
          if (Timestamp != 0F) {
            output.WriteRawTag(13);
            output.WriteFloat(Timestamp);
          }
          if (inputDown_ != null) {
            output.WriteRawTag(130, 1);
            output.WriteMessage(InputDown);
          }
          if (inputPressed_ != null) {
            output.WriteRawTag(138, 1);
            output.WriteMessage(InputPressed);
          }
          if (inputUp_ != null) {
            output.WriteRawTag(146, 1);
            output.WriteMessage(InputUp);
          }
          if (inputUpWithVelocity_ != null) {
            output.WriteRawTag(154, 1);
            output.WriteMessage(InputUpWithVelocity);
          }
          if (inputCancelled_ != null) {
            output.WriteRawTag(162, 1);
            output.WriteMessage(InputCancelled);
          }
          if (_unknownFields != null) {
            _unknownFields.WriteTo(ref output);
          }
        }
        #endif

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public int CalculateSize() {
          int size = 0;
          if (Timestamp != 0F) {
            size += 1 + 4;
          }
          if (inputDown_ != null) {
            size += 2 + pb::CodedOutputStream.ComputeMessageSize(InputDown);
          }
          if (inputPressed_ != null) {
            size += 2 + pb::CodedOutputStream.ComputeMessageSize(InputPressed);
          }
          if (inputUp_ != null) {
            size += 2 + pb::CodedOutputStream.ComputeMessageSize(InputUp);
          }
          if (inputUpWithVelocity_ != null) {
            size += 2 + pb::CodedOutputStream.ComputeMessageSize(InputUpWithVelocity);
          }
          if (inputCancelled_ != null) {
            size += 2 + pb::CodedOutputStream.ComputeMessageSize(InputCancelled);
          }
          if (_unknownFields != null) {
            size += _unknownFields.CalculateSize();
          }
          return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(ToolEventData other) {
          if (other == null) {
            return;
          }
          if (other.Timestamp != 0F) {
            Timestamp = other.Timestamp;
          }
          if (other.inputDown_ != null) {
            if (inputDown_ == null) {
              InputDown = new global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.NoData();
            }
            InputDown.MergeFrom(other.InputDown);
          }
          if (other.inputPressed_ != null) {
            if (inputPressed_ == null) {
              InputPressed = new global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.NoData();
            }
            InputPressed.MergeFrom(other.InputPressed);
          }
          if (other.inputUp_ != null) {
            if (inputUp_ == null) {
              InputUp = new global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.NoData();
            }
            InputUp.MergeFrom(other.InputUp);
          }
          if (other.inputUpWithVelocity_ != null) {
            if (inputUpWithVelocity_ == null) {
              InputUpWithVelocity = new global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.InputUpWithVelocityData();
            }
            InputUpWithVelocity.MergeFrom(other.InputUpWithVelocity);
          }
          if (other.inputCancelled_ != null) {
            if (inputCancelled_ == null) {
              InputCancelled = new global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.NoData();
            }
            InputCancelled.MergeFrom(other.InputCancelled);
          }
          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(pb::CodedInputStream input) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          input.ReadRawMessage(this);
        #else
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                break;
              case 13: {
                Timestamp = input.ReadFloat();
                break;
              }
              case 130: {
                if (inputDown_ == null) {
                  InputDown = new global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.NoData();
                }
                input.ReadMessage(InputDown);
                break;
              }
              case 138: {
                if (inputPressed_ == null) {
                  InputPressed = new global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.NoData();
                }
                input.ReadMessage(InputPressed);
                break;
              }
              case 146: {
                if (inputUp_ == null) {
                  InputUp = new global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.NoData();
                }
                input.ReadMessage(InputUp);
                break;
              }
              case 154: {
                if (inputUpWithVelocity_ == null) {
                  InputUpWithVelocity = new global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.InputUpWithVelocityData();
                }
                input.ReadMessage(InputUpWithVelocity);
                break;
              }
              case 162: {
                if (inputCancelled_ == null) {
                  InputCancelled = new global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.NoData();
                }
                input.ReadMessage(InputCancelled);
                break;
              }
            }
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
                break;
              case 13: {
                Timestamp = input.ReadFloat();
                break;
              }
              case 130: {
                if (inputDown_ == null) {
                  InputDown = new global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.NoData();
                }
                input.ReadMessage(InputDown);
                break;
              }
              case 138: {
                if (inputPressed_ == null) {
                  InputPressed = new global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.NoData();
                }
                input.ReadMessage(InputPressed);
                break;
              }
              case 146: {
                if (inputUp_ == null) {
                  InputUp = new global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.NoData();
                }
                input.ReadMessage(InputUp);
                break;
              }
              case 154: {
                if (inputUpWithVelocity_ == null) {
                  InputUpWithVelocity = new global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.InputUpWithVelocityData();
                }
                input.ReadMessage(InputUpWithVelocity);
                break;
              }
              case 162: {
                if (inputCancelled_ == null) {
                  InputCancelled = new global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Types.NoData();
                }
                input.ReadMessage(InputCancelled);
                break;
              }
            }
          }
        }
        #endif

        #region Nested types
        /// <summary>Container for nested types declared in the ToolEventData message type.</summary>
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static partial class Types {
          [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
          public sealed partial class NoData : pb::IMessage<NoData>
          #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
              , pb::IBufferMessage
          #endif
          {
            private static readonly pb::MessageParser<NoData> _parser = new pb::MessageParser<NoData>(() => new NoData());
            private pb::UnknownFieldSet _unknownFields;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public static pb::MessageParser<NoData> Parser { get { return _parser; } }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public static pbr::MessageDescriptor Descriptor {
              get { return global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Descriptor.NestedTypes[0]; }
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            pbr::MessageDescriptor pb::IMessage.Descriptor {
              get { return Descriptor; }
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public NoData() {
              OnConstruction();
            }

            partial void OnConstruction();

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public NoData(NoData other) : this() {
              _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public NoData Clone() {
              return new NoData(this);
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public override bool Equals(object other) {
              return Equals(other as NoData);
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool Equals(NoData other) {
              if (ReferenceEquals(other, null)) {
                return false;
              }
              if (ReferenceEquals(other, this)) {
                return true;
              }
              return Equals(_unknownFields, other._unknownFields);
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public override int GetHashCode() {
              int hash = 1;
              if (_unknownFields != null) {
                hash ^= _unknownFields.GetHashCode();
              }
              return hash;
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public override string ToString() {
              return pb::JsonFormatter.ToDiagnosticString(this);
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public void WriteTo(pb::CodedOutputStream output) {
            #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
              output.WriteRawMessage(this);
            #else
              if (_unknownFields != null) {
                _unknownFields.WriteTo(output);
              }
            #endif
            }

            #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
              if (_unknownFields != null) {
                _unknownFields.WriteTo(ref output);
              }
            }
            #endif

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public int CalculateSize() {
              int size = 0;
              if (_unknownFields != null) {
                size += _unknownFields.CalculateSize();
              }
              return size;
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public void MergeFrom(NoData other) {
              if (other == null) {
                return;
              }
              _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public void MergeFrom(pb::CodedInputStream input) {
            #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
              input.ReadRawMessage(this);
            #else
              uint tag;
              while ((tag = input.ReadTag()) != 0) {
              if ((tag & 7) == 4) {
                // Abort on any end group tag.
                return;
              }
              switch(tag) {
                  default:
                    _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                    break;
                }
              }
            #endif
            }

            #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
              uint tag;
              while ((tag = input.ReadTag()) != 0) {
              if ((tag & 7) == 4) {
                // Abort on any end group tag.
                return;
              }
              switch(tag) {
                  default:
                    _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
                    break;
                }
              }
            }
            #endif

          }

          [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
          public sealed partial class InputUpWithVelocityData : pb::IMessage<InputUpWithVelocityData>
          #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
              , pb::IBufferMessage
          #endif
          {
            private static readonly pb::MessageParser<InputUpWithVelocityData> _parser = new pb::MessageParser<InputUpWithVelocityData>(() => new InputUpWithVelocityData());
            private pb::UnknownFieldSet _unknownFields;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public static pb::MessageParser<InputUpWithVelocityData> Parser { get { return _parser; } }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public static pbr::MessageDescriptor Descriptor {
              get { return global::RecRoom.Protobuf.RoomatarBlobData.Types.ToolEventData.Descriptor.NestedTypes[1]; }
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            pbr::MessageDescriptor pb::IMessage.Descriptor {
              get { return Descriptor; }
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public InputUpWithVelocityData() {
              OnConstruction();
            }

            partial void OnConstruction();

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public InputUpWithVelocityData(InputUpWithVelocityData other) : this() {
              linearVelocity_ = other.linearVelocity_ != null ? other.linearVelocity_.Clone() : null;
              angularVelocity_ = other.angularVelocity_ != null ? other.angularVelocity_.Clone() : null;
              _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public InputUpWithVelocityData Clone() {
              return new InputUpWithVelocityData(this);
            }

            /// <summary>Field number for the "linear_velocity" field.</summary>
            public const int LinearVelocityFieldNumber = 1;
            private global::RecRoom.Protobuf.Core.Vector3Data linearVelocity_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public global::RecRoom.Protobuf.Core.Vector3Data LinearVelocity {
              get { return linearVelocity_; }
              set {
                linearVelocity_ = value;
              }
            }

            /// <summary>Field number for the "angular_velocity" field.</summary>
            public const int AngularVelocityFieldNumber = 2;
            private global::RecRoom.Protobuf.Core.Vector3Data angularVelocity_;
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public global::RecRoom.Protobuf.Core.Vector3Data AngularVelocity {
              get { return angularVelocity_; }
              set {
                angularVelocity_ = value;
              }
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public override bool Equals(object other) {
              return Equals(other as InputUpWithVelocityData);
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public bool Equals(InputUpWithVelocityData other) {
              if (ReferenceEquals(other, null)) {
                return false;
              }
              if (ReferenceEquals(other, this)) {
                return true;
              }
              if (!object.Equals(LinearVelocity, other.LinearVelocity)) return false;
              if (!object.Equals(AngularVelocity, other.AngularVelocity)) return false;
              return Equals(_unknownFields, other._unknownFields);
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public override int GetHashCode() {
              int hash = 1;
              if (linearVelocity_ != null) hash ^= LinearVelocity.GetHashCode();
              if (angularVelocity_ != null) hash ^= AngularVelocity.GetHashCode();
              if (_unknownFields != null) {
                hash ^= _unknownFields.GetHashCode();
              }
              return hash;
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public override string ToString() {
              return pb::JsonFormatter.ToDiagnosticString(this);
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public void WriteTo(pb::CodedOutputStream output) {
            #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
              output.WriteRawMessage(this);
            #else
              if (linearVelocity_ != null) {
                output.WriteRawTag(10);
                output.WriteMessage(LinearVelocity);
              }
              if (angularVelocity_ != null) {
                output.WriteRawTag(18);
                output.WriteMessage(AngularVelocity);
              }
              if (_unknownFields != null) {
                _unknownFields.WriteTo(output);
              }
            #endif
            }

            #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
              if (linearVelocity_ != null) {
                output.WriteRawTag(10);
                output.WriteMessage(LinearVelocity);
              }
              if (angularVelocity_ != null) {
                output.WriteRawTag(18);
                output.WriteMessage(AngularVelocity);
              }
              if (_unknownFields != null) {
                _unknownFields.WriteTo(ref output);
              }
            }
            #endif

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public int CalculateSize() {
              int size = 0;
              if (linearVelocity_ != null) {
                size += 1 + pb::CodedOutputStream.ComputeMessageSize(LinearVelocity);
              }
              if (angularVelocity_ != null) {
                size += 1 + pb::CodedOutputStream.ComputeMessageSize(AngularVelocity);
              }
              if (_unknownFields != null) {
                size += _unknownFields.CalculateSize();
              }
              return size;
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public void MergeFrom(InputUpWithVelocityData other) {
              if (other == null) {
                return;
              }
              if (other.linearVelocity_ != null) {
                if (linearVelocity_ == null) {
                  LinearVelocity = new global::RecRoom.Protobuf.Core.Vector3Data();
                }
                LinearVelocity.MergeFrom(other.LinearVelocity);
              }
              if (other.angularVelocity_ != null) {
                if (angularVelocity_ == null) {
                  AngularVelocity = new global::RecRoom.Protobuf.Core.Vector3Data();
                }
                AngularVelocity.MergeFrom(other.AngularVelocity);
              }
              _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
            }

            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            public void MergeFrom(pb::CodedInputStream input) {
            #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
              input.ReadRawMessage(this);
            #else
              uint tag;
              while ((tag = input.ReadTag()) != 0) {
              if ((tag & 7) == 4) {
                // Abort on any end group tag.
                return;
              }
              switch(tag) {
                  default:
                    _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                    break;
                  case 10: {
                    if (linearVelocity_ == null) {
                      LinearVelocity = new global::RecRoom.Protobuf.Core.Vector3Data();
                    }
                    input.ReadMessage(LinearVelocity);
                    break;
                  }
                  case 18: {
                    if (angularVelocity_ == null) {
                      AngularVelocity = new global::RecRoom.Protobuf.Core.Vector3Data();
                    }
                    input.ReadMessage(AngularVelocity);
                    break;
                  }
                }
              }
            #endif
            }

            #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
            [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
            [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
            void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
              uint tag;
              while ((tag = input.ReadTag()) != 0) {
              if ((tag & 7) == 4) {
                // Abort on any end group tag.
                return;
              }
              switch(tag) {
                  default:
                    _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
                    break;
                  case 10: {
                    if (linearVelocity_ == null) {
                      LinearVelocity = new global::RecRoom.Protobuf.Core.Vector3Data();
                    }
                    input.ReadMessage(LinearVelocity);
                    break;
                  }
                  case 18: {
                    if (angularVelocity_ == null) {
                      AngularVelocity = new global::RecRoom.Protobuf.Core.Vector3Data();
                    }
                    input.ReadMessage(AngularVelocity);
                    break;
                  }
                }
              }
            }
            #endif

          }

        }
        #endregion

      }

      [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
      public sealed partial class PoseStateData : pb::IMessage<PoseStateData>
      #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          , pb::IBufferMessage
      #endif
      {
        private static readonly pb::MessageParser<PoseStateData> _parser = new pb::MessageParser<PoseStateData>(() => new PoseStateData());
        private pb::UnknownFieldSet _unknownFields;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pb::MessageParser<PoseStateData> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pbr::MessageDescriptor Descriptor {
          get { return global::RecRoom.Protobuf.RoomatarBlobData.Descriptor.NestedTypes[3]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        pbr::MessageDescriptor pb::IMessage.Descriptor {
          get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public PoseStateData() {
          OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public PoseStateData(PoseStateData other) : this() {
          timestamp_ = other.timestamp_;
          position_ = other.position_ != null ? other.position_.Clone() : null;
          rotation_ = other.rotation_ != null ? other.rotation_.Clone() : null;
          uniformScale_ = other.uniformScale_;
          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public PoseStateData Clone() {
          return new PoseStateData(this);
        }

        /// <summary>Field number for the "timestamp" field.</summary>
        public const int TimestampFieldNumber = 1;
        private float timestamp_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public float Timestamp {
          get { return timestamp_; }
          set {
            timestamp_ = value;
          }
        }

        /// <summary>Field number for the "position" field.</summary>
        public const int PositionFieldNumber = 2;
        private global::RecRoom.Protobuf.Core.Vector3Data position_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public global::RecRoom.Protobuf.Core.Vector3Data Position {
          get { return position_; }
          set {
            position_ = value;
          }
        }

        /// <summary>Field number for the "rotation" field.</summary>
        public const int RotationFieldNumber = 3;
        private global::RecRoom.Protobuf.Core.Vector3Data rotation_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public global::RecRoom.Protobuf.Core.Vector3Data Rotation {
          get { return rotation_; }
          set {
            rotation_ = value;
          }
        }

        /// <summary>Field number for the "uniformScale" field.</summary>
        public const int UniformScaleFieldNumber = 4;
        private float uniformScale_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public float UniformScale {
          get { return uniformScale_; }
          set {
            uniformScale_ = value;
          }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override bool Equals(object other) {
          return Equals(other as PoseStateData);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool Equals(PoseStateData other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Timestamp, other.Timestamp)) return false;
          if (!object.Equals(Position, other.Position)) return false;
          if (!object.Equals(Rotation, other.Rotation)) return false;
          if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(UniformScale, other.UniformScale)) return false;
          return Equals(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override int GetHashCode() {
          int hash = 1;
          if (Timestamp != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Timestamp);
          if (position_ != null) hash ^= Position.GetHashCode();
          if (rotation_ != null) hash ^= Rotation.GetHashCode();
          if (UniformScale != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(UniformScale);
          if (_unknownFields != null) {
            hash ^= _unknownFields.GetHashCode();
          }
          return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override string ToString() {
          return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void WriteTo(pb::CodedOutputStream output) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          output.WriteRawMessage(this);
        #else
          if (Timestamp != 0F) {
            output.WriteRawTag(13);
            output.WriteFloat(Timestamp);
          }
          if (position_ != null) {
            output.WriteRawTag(18);
            output.WriteMessage(Position);
          }
          if (rotation_ != null) {
            output.WriteRawTag(26);
            output.WriteMessage(Rotation);
          }
          if (UniformScale != 0F) {
            output.WriteRawTag(37);
            output.WriteFloat(UniformScale);
          }
          if (_unknownFields != null) {
            _unknownFields.WriteTo(output);
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
          if (Timestamp != 0F) {
            output.WriteRawTag(13);
            output.WriteFloat(Timestamp);
          }
          if (position_ != null) {
            output.WriteRawTag(18);
            output.WriteMessage(Position);
          }
          if (rotation_ != null) {
            output.WriteRawTag(26);
            output.WriteMessage(Rotation);
          }
          if (UniformScale != 0F) {
            output.WriteRawTag(37);
            output.WriteFloat(UniformScale);
          }
          if (_unknownFields != null) {
            _unknownFields.WriteTo(ref output);
          }
        }
        #endif

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public int CalculateSize() {
          int size = 0;
          if (Timestamp != 0F) {
            size += 1 + 4;
          }
          if (position_ != null) {
            size += 1 + pb::CodedOutputStream.ComputeMessageSize(Position);
          }
          if (rotation_ != null) {
            size += 1 + pb::CodedOutputStream.ComputeMessageSize(Rotation);
          }
          if (UniformScale != 0F) {
            size += 1 + 4;
          }
          if (_unknownFields != null) {
            size += _unknownFields.CalculateSize();
          }
          return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(PoseStateData other) {
          if (other == null) {
            return;
          }
          if (other.Timestamp != 0F) {
            Timestamp = other.Timestamp;
          }
          if (other.position_ != null) {
            if (position_ == null) {
              Position = new global::RecRoom.Protobuf.Core.Vector3Data();
            }
            Position.MergeFrom(other.Position);
          }
          if (other.rotation_ != null) {
            if (rotation_ == null) {
              Rotation = new global::RecRoom.Protobuf.Core.Vector3Data();
            }
            Rotation.MergeFrom(other.Rotation);
          }
          if (other.UniformScale != 0F) {
            UniformScale = other.UniformScale;
          }
          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(pb::CodedInputStream input) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          input.ReadRawMessage(this);
        #else
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                break;
              case 13: {
                Timestamp = input.ReadFloat();
                break;
              }
              case 18: {
                if (position_ == null) {
                  Position = new global::RecRoom.Protobuf.Core.Vector3Data();
                }
                input.ReadMessage(Position);
                break;
              }
              case 26: {
                if (rotation_ == null) {
                  Rotation = new global::RecRoom.Protobuf.Core.Vector3Data();
                }
                input.ReadMessage(Rotation);
                break;
              }
              case 37: {
                UniformScale = input.ReadFloat();
                break;
              }
            }
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
                break;
              case 13: {
                Timestamp = input.ReadFloat();
                break;
              }
              case 18: {
                if (position_ == null) {
                  Position = new global::RecRoom.Protobuf.Core.Vector3Data();
                }
                input.ReadMessage(Position);
                break;
              }
              case 26: {
                if (rotation_ == null) {
                  Rotation = new global::RecRoom.Protobuf.Core.Vector3Data();
                }
                input.ReadMessage(Rotation);
                break;
              }
              case 37: {
                UniformScale = input.ReadFloat();
                break;
              }
            }
          }
        }
        #endif

      }

      [global::System.Diagnostics.DebuggerDisplayAttribute("{ToString(),nq}")]
      public sealed partial class IsEnabledStateData : pb::IMessage<IsEnabledStateData>
      #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          , pb::IBufferMessage
      #endif
      {
        private static readonly pb::MessageParser<IsEnabledStateData> _parser = new pb::MessageParser<IsEnabledStateData>(() => new IsEnabledStateData());
        private pb::UnknownFieldSet _unknownFields;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pb::MessageParser<IsEnabledStateData> Parser { get { return _parser; } }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public static pbr::MessageDescriptor Descriptor {
          get { return global::RecRoom.Protobuf.RoomatarBlobData.Descriptor.NestedTypes[4]; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        pbr::MessageDescriptor pb::IMessage.Descriptor {
          get { return Descriptor; }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public IsEnabledStateData() {
          OnConstruction();
        }

        partial void OnConstruction();

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public IsEnabledStateData(IsEnabledStateData other) : this() {
          timestamp_ = other.timestamp_;
          isEnabled_ = other.isEnabled_;
          _unknownFields = pb::UnknownFieldSet.Clone(other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public IsEnabledStateData Clone() {
          return new IsEnabledStateData(this);
        }

        /// <summary>Field number for the "timestamp" field.</summary>
        public const int TimestampFieldNumber = 1;
        private float timestamp_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public float Timestamp {
          get { return timestamp_; }
          set {
            timestamp_ = value;
          }
        }

        /// <summary>Field number for the "is_enabled" field.</summary>
        public const int IsEnabledFieldNumber = 2;
        private bool isEnabled_;
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool IsEnabled {
          get { return isEnabled_; }
          set {
            isEnabled_ = value;
          }
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override bool Equals(object other) {
          return Equals(other as IsEnabledStateData);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public bool Equals(IsEnabledStateData other) {
          if (ReferenceEquals(other, null)) {
            return false;
          }
          if (ReferenceEquals(other, this)) {
            return true;
          }
          if (!pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.Equals(Timestamp, other.Timestamp)) return false;
          if (IsEnabled != other.IsEnabled) return false;
          return Equals(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override int GetHashCode() {
          int hash = 1;
          if (Timestamp != 0F) hash ^= pbc::ProtobufEqualityComparers.BitwiseSingleEqualityComparer.GetHashCode(Timestamp);
          if (IsEnabled != false) hash ^= IsEnabled.GetHashCode();
          if (_unknownFields != null) {
            hash ^= _unknownFields.GetHashCode();
          }
          return hash;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public override string ToString() {
          return pb::JsonFormatter.ToDiagnosticString(this);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void WriteTo(pb::CodedOutputStream output) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          output.WriteRawMessage(this);
        #else
          if (Timestamp != 0F) {
            output.WriteRawTag(13);
            output.WriteFloat(Timestamp);
          }
          if (IsEnabled != false) {
            output.WriteRawTag(16);
            output.WriteBool(IsEnabled);
          }
          if (_unknownFields != null) {
            _unknownFields.WriteTo(output);
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalWriteTo(ref pb::WriteContext output) {
          if (Timestamp != 0F) {
            output.WriteRawTag(13);
            output.WriteFloat(Timestamp);
          }
          if (IsEnabled != false) {
            output.WriteRawTag(16);
            output.WriteBool(IsEnabled);
          }
          if (_unknownFields != null) {
            _unknownFields.WriteTo(ref output);
          }
        }
        #endif

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public int CalculateSize() {
          int size = 0;
          if (Timestamp != 0F) {
            size += 1 + 4;
          }
          if (IsEnabled != false) {
            size += 1 + 1;
          }
          if (_unknownFields != null) {
            size += _unknownFields.CalculateSize();
          }
          return size;
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(IsEnabledStateData other) {
          if (other == null) {
            return;
          }
          if (other.Timestamp != 0F) {
            Timestamp = other.Timestamp;
          }
          if (other.IsEnabled != false) {
            IsEnabled = other.IsEnabled;
          }
          _unknownFields = pb::UnknownFieldSet.MergeFrom(_unknownFields, other._unknownFields);
        }

        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        public void MergeFrom(pb::CodedInputStream input) {
        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
          input.ReadRawMessage(this);
        #else
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, input);
                break;
              case 13: {
                Timestamp = input.ReadFloat();
                break;
              }
              case 16: {
                IsEnabled = input.ReadBool();
                break;
              }
            }
          }
        #endif
        }

        #if !GOOGLE_PROTOBUF_REFSTRUCT_COMPATIBILITY_MODE
        [global::System.Diagnostics.DebuggerNonUserCodeAttribute]
        [global::System.CodeDom.Compiler.GeneratedCode("protoc", null)]
        void pb::IBufferMessage.InternalMergeFrom(ref pb::ParseContext input) {
          uint tag;
          while ((tag = input.ReadTag()) != 0) {
          if ((tag & 7) == 4) {
            // Abort on any end group tag.
            return;
          }
          switch(tag) {
              default:
                _unknownFields = pb::UnknownFieldSet.MergeFieldFrom(_unknownFields, ref input);
                break;
              case 13: {
                Timestamp = input.ReadFloat();
                break;
              }
              case 16: {
                IsEnabled = input.ReadBool();
                break;
              }
            }
          }
        }
        #endif

      }

    }
    #endregion

  }

  #endregion

}

#endregion Designer generated code
