All Downloads are FREE. Search and download functionalities are using the official Maven repository.

skadistats.clarity.wire.common.proto.Demo Maven / Gradle / Ivy

Go to download

Clarity is an open source replay parser for Dota 2 and CSGO 1 and 2 written in Java. This JAR contains the protobuf classes for clarity.

There is a newer version: 5.3
Show newest version
// Generated by the protocol buffer compiler.  DO NOT EDIT!
// source: demo.proto

package skadistats.clarity.wire.common.proto;

public final class Demo {
  private Demo() {}
  public static void registerAllExtensions(
      com.google.protobuf.ExtensionRegistry registry) {
  }
  /**
   * Protobuf enum {@code EDemoCommands}
   */
  public enum EDemoCommands
      implements com.google.protobuf.ProtocolMessageEnum {
    /**
     * DEM_Error = -1;
     */
    DEM_Error(0, -1),
    /**
     * DEM_Stop = 0;
     */
    DEM_Stop(1, 0),
    /**
     * DEM_FileHeader = 1;
     */
    DEM_FileHeader(2, 1),
    /**
     * DEM_FileInfo = 2;
     */
    DEM_FileInfo(3, 2),
    /**
     * DEM_SyncTick = 3;
     */
    DEM_SyncTick(4, 3),
    /**
     * DEM_SendTables = 4;
     */
    DEM_SendTables(5, 4),
    /**
     * DEM_ClassInfo = 5;
     */
    DEM_ClassInfo(6, 5),
    /**
     * DEM_StringTables = 6;
     */
    DEM_StringTables(7, 6),
    /**
     * DEM_Packet = 7;
     */
    DEM_Packet(8, 7),
    /**
     * DEM_SignonPacket = 8;
     */
    DEM_SignonPacket(9, 8),
    /**
     * DEM_ConsoleCmd = 9;
     */
    DEM_ConsoleCmd(10, 9),
    /**
     * DEM_CustomData = 10;
     */
    DEM_CustomData(11, 10),
    /**
     * DEM_CustomDataCallbacks = 11;
     */
    DEM_CustomDataCallbacks(12, 11),
    /**
     * DEM_UserCmd = 12;
     */
    DEM_UserCmd(13, 12),
    /**
     * DEM_FullPacket = 13;
     */
    DEM_FullPacket(14, 13),
    /**
     * DEM_SaveGame = 14;
     */
    DEM_SaveGame(15, 14),
    /**
     * DEM_SpawnGroups = 15;
     */
    DEM_SpawnGroups(16, 15),
    /**
     * DEM_Max = 16;
     */
    DEM_Max(17, 16),
    /**
     * DEM_IsCompressed_S1 = 112;
     */
    DEM_IsCompressed_S1(18, 112),
    /**
     * DEM_IsCompressed_S2 = 64;
     */
    DEM_IsCompressed_S2(19, 64),
    ;

    /**
     * DEM_Error = -1;
     */
    public static final int DEM_Error_VALUE = -1;
    /**
     * DEM_Stop = 0;
     */
    public static final int DEM_Stop_VALUE = 0;
    /**
     * DEM_FileHeader = 1;
     */
    public static final int DEM_FileHeader_VALUE = 1;
    /**
     * DEM_FileInfo = 2;
     */
    public static final int DEM_FileInfo_VALUE = 2;
    /**
     * DEM_SyncTick = 3;
     */
    public static final int DEM_SyncTick_VALUE = 3;
    /**
     * DEM_SendTables = 4;
     */
    public static final int DEM_SendTables_VALUE = 4;
    /**
     * DEM_ClassInfo = 5;
     */
    public static final int DEM_ClassInfo_VALUE = 5;
    /**
     * DEM_StringTables = 6;
     */
    public static final int DEM_StringTables_VALUE = 6;
    /**
     * DEM_Packet = 7;
     */
    public static final int DEM_Packet_VALUE = 7;
    /**
     * DEM_SignonPacket = 8;
     */
    public static final int DEM_SignonPacket_VALUE = 8;
    /**
     * DEM_ConsoleCmd = 9;
     */
    public static final int DEM_ConsoleCmd_VALUE = 9;
    /**
     * DEM_CustomData = 10;
     */
    public static final int DEM_CustomData_VALUE = 10;
    /**
     * DEM_CustomDataCallbacks = 11;
     */
    public static final int DEM_CustomDataCallbacks_VALUE = 11;
    /**
     * DEM_UserCmd = 12;
     */
    public static final int DEM_UserCmd_VALUE = 12;
    /**
     * DEM_FullPacket = 13;
     */
    public static final int DEM_FullPacket_VALUE = 13;
    /**
     * DEM_SaveGame = 14;
     */
    public static final int DEM_SaveGame_VALUE = 14;
    /**
     * DEM_SpawnGroups = 15;
     */
    public static final int DEM_SpawnGroups_VALUE = 15;
    /**
     * DEM_Max = 16;
     */
    public static final int DEM_Max_VALUE = 16;
    /**
     * DEM_IsCompressed_S1 = 112;
     */
    public static final int DEM_IsCompressed_S1_VALUE = 112;
    /**
     * DEM_IsCompressed_S2 = 64;
     */
    public static final int DEM_IsCompressed_S2_VALUE = 64;


    public final int getNumber() { return value; }

    public static EDemoCommands valueOf(int value) {
      switch (value) {
        case -1: return DEM_Error;
        case 0: return DEM_Stop;
        case 1: return DEM_FileHeader;
        case 2: return DEM_FileInfo;
        case 3: return DEM_SyncTick;
        case 4: return DEM_SendTables;
        case 5: return DEM_ClassInfo;
        case 6: return DEM_StringTables;
        case 7: return DEM_Packet;
        case 8: return DEM_SignonPacket;
        case 9: return DEM_ConsoleCmd;
        case 10: return DEM_CustomData;
        case 11: return DEM_CustomDataCallbacks;
        case 12: return DEM_UserCmd;
        case 13: return DEM_FullPacket;
        case 14: return DEM_SaveGame;
        case 15: return DEM_SpawnGroups;
        case 16: return DEM_Max;
        case 112: return DEM_IsCompressed_S1;
        case 64: return DEM_IsCompressed_S2;
        default: return null;
      }
    }

    public static com.google.protobuf.Internal.EnumLiteMap
        internalGetValueMap() {
      return internalValueMap;
    }
    private static com.google.protobuf.Internal.EnumLiteMap
        internalValueMap =
          new com.google.protobuf.Internal.EnumLiteMap() {
            public EDemoCommands findValueByNumber(int number) {
              return EDemoCommands.valueOf(number);
            }
          };

    public final com.google.protobuf.Descriptors.EnumValueDescriptor
        getValueDescriptor() {
      return getDescriptor().getValues().get(index);
    }
    public final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptorForType() {
      return getDescriptor();
    }
    public static final com.google.protobuf.Descriptors.EnumDescriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.Demo.getDescriptor().getEnumTypes().get(0);
    }

    private static final EDemoCommands[] VALUES = values();

    public static EDemoCommands valueOf(
        com.google.protobuf.Descriptors.EnumValueDescriptor desc) {
      if (desc.getType() != getDescriptor()) {
        throw new java.lang.IllegalArgumentException(
          "EnumValueDescriptor is not for this type.");
      }
      return VALUES[desc.getIndex()];
    }

    private final int index;
    private final int value;

    private EDemoCommands(int index, int value) {
      this.index = index;
      this.value = value;
    }

    // @@protoc_insertion_point(enum_scope:EDemoCommands)
  }

  public interface CDemoFileHeaderOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDemoFileHeader)
      com.google.protobuf.MessageOrBuilder {

    /**
     * required string demo_file_stamp = 1;
     */
    boolean hasDemoFileStamp();
    /**
     * required string demo_file_stamp = 1;
     */
    java.lang.String getDemoFileStamp();
    /**
     * required string demo_file_stamp = 1;
     */
    com.google.protobuf.ByteString
        getDemoFileStampBytes();

    /**
     * optional int32 network_protocol = 2;
     */
    boolean hasNetworkProtocol();
    /**
     * optional int32 network_protocol = 2;
     */
    int getNetworkProtocol();

    /**
     * optional string server_name = 3;
     */
    boolean hasServerName();
    /**
     * optional string server_name = 3;
     */
    java.lang.String getServerName();
    /**
     * optional string server_name = 3;
     */
    com.google.protobuf.ByteString
        getServerNameBytes();

    /**
     * optional string client_name = 4;
     */
    boolean hasClientName();
    /**
     * optional string client_name = 4;
     */
    java.lang.String getClientName();
    /**
     * optional string client_name = 4;
     */
    com.google.protobuf.ByteString
        getClientNameBytes();

    /**
     * optional string map_name = 5;
     */
    boolean hasMapName();
    /**
     * optional string map_name = 5;
     */
    java.lang.String getMapName();
    /**
     * optional string map_name = 5;
     */
    com.google.protobuf.ByteString
        getMapNameBytes();

    /**
     * optional string game_directory = 6;
     */
    boolean hasGameDirectory();
    /**
     * optional string game_directory = 6;
     */
    java.lang.String getGameDirectory();
    /**
     * optional string game_directory = 6;
     */
    com.google.protobuf.ByteString
        getGameDirectoryBytes();

    /**
     * optional int32 fullpackets_version = 7;
     */
    boolean hasFullpacketsVersion();
    /**
     * optional int32 fullpackets_version = 7;
     */
    int getFullpacketsVersion();

    /**
     * optional bool allow_clientside_entities = 8;
     */
    boolean hasAllowClientsideEntities();
    /**
     * optional bool allow_clientside_entities = 8;
     */
    boolean getAllowClientsideEntities();

    /**
     * optional bool allow_clientside_particles = 9;
     */
    boolean hasAllowClientsideParticles();
    /**
     * optional bool allow_clientside_particles = 9;
     */
    boolean getAllowClientsideParticles();

    /**
     * optional string addons = 10;
     */
    boolean hasAddons();
    /**
     * optional string addons = 10;
     */
    java.lang.String getAddons();
    /**
     * optional string addons = 10;
     */
    com.google.protobuf.ByteString
        getAddonsBytes();

    /**
     * optional string demo_version_name = 11;
     */
    boolean hasDemoVersionName();
    /**
     * optional string demo_version_name = 11;
     */
    java.lang.String getDemoVersionName();
    /**
     * optional string demo_version_name = 11;
     */
    com.google.protobuf.ByteString
        getDemoVersionNameBytes();

    /**
     * optional string demo_version_guid = 12;
     */
    boolean hasDemoVersionGuid();
    /**
     * optional string demo_version_guid = 12;
     */
    java.lang.String getDemoVersionGuid();
    /**
     * optional string demo_version_guid = 12;
     */
    com.google.protobuf.ByteString
        getDemoVersionGuidBytes();

    /**
     * optional int32 build_num = 13;
     */
    boolean hasBuildNum();
    /**
     * optional int32 build_num = 13;
     */
    int getBuildNum();
  }
  /**
   * Protobuf type {@code CDemoFileHeader}
   */
  public static final class CDemoFileHeader extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDemoFileHeader)
      CDemoFileHeaderOrBuilder {
    // Use CDemoFileHeader.newBuilder() to construct.
    private CDemoFileHeader(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDemoFileHeader(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDemoFileHeader defaultInstance;
    public static CDemoFileHeader getDefaultInstance() {
      return defaultInstance;
    }

    public CDemoFileHeader getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDemoFileHeader(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              demoFileStamp_ = bs;
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              networkProtocol_ = input.readInt32();
              break;
            }
            case 26: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000004;
              serverName_ = bs;
              break;
            }
            case 34: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000008;
              clientName_ = bs;
              break;
            }
            case 42: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000010;
              mapName_ = bs;
              break;
            }
            case 50: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000020;
              gameDirectory_ = bs;
              break;
            }
            case 56: {
              bitField0_ |= 0x00000040;
              fullpacketsVersion_ = input.readInt32();
              break;
            }
            case 64: {
              bitField0_ |= 0x00000080;
              allowClientsideEntities_ = input.readBool();
              break;
            }
            case 72: {
              bitField0_ |= 0x00000100;
              allowClientsideParticles_ = input.readBool();
              break;
            }
            case 82: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000200;
              addons_ = bs;
              break;
            }
            case 90: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000400;
              demoVersionName_ = bs;
              break;
            }
            case 98: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000800;
              demoVersionGuid_ = bs;
              break;
            }
            case 104: {
              bitField0_ |= 0x00001000;
              buildNum_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoFileHeader_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoFileHeader_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader.class, skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDemoFileHeader parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDemoFileHeader(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int DEMO_FILE_STAMP_FIELD_NUMBER = 1;
    private java.lang.Object demoFileStamp_;
    /**
     * required string demo_file_stamp = 1;
     */
    public boolean hasDemoFileStamp() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * required string demo_file_stamp = 1;
     */
    public java.lang.String getDemoFileStamp() {
      java.lang.Object ref = demoFileStamp_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          demoFileStamp_ = s;
        }
        return s;
      }
    }
    /**
     * required string demo_file_stamp = 1;
     */
    public com.google.protobuf.ByteString
        getDemoFileStampBytes() {
      java.lang.Object ref = demoFileStamp_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        demoFileStamp_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int NETWORK_PROTOCOL_FIELD_NUMBER = 2;
    private int networkProtocol_;
    /**
     * optional int32 network_protocol = 2;
     */
    public boolean hasNetworkProtocol() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 network_protocol = 2;
     */
    public int getNetworkProtocol() {
      return networkProtocol_;
    }

    public static final int SERVER_NAME_FIELD_NUMBER = 3;
    private java.lang.Object serverName_;
    /**
     * optional string server_name = 3;
     */
    public boolean hasServerName() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional string server_name = 3;
     */
    public java.lang.String getServerName() {
      java.lang.Object ref = serverName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          serverName_ = s;
        }
        return s;
      }
    }
    /**
     * optional string server_name = 3;
     */
    public com.google.protobuf.ByteString
        getServerNameBytes() {
      java.lang.Object ref = serverName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        serverName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int CLIENT_NAME_FIELD_NUMBER = 4;
    private java.lang.Object clientName_;
    /**
     * optional string client_name = 4;
     */
    public boolean hasClientName() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional string client_name = 4;
     */
    public java.lang.String getClientName() {
      java.lang.Object ref = clientName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          clientName_ = s;
        }
        return s;
      }
    }
    /**
     * optional string client_name = 4;
     */
    public com.google.protobuf.ByteString
        getClientNameBytes() {
      java.lang.Object ref = clientName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        clientName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int MAP_NAME_FIELD_NUMBER = 5;
    private java.lang.Object mapName_;
    /**
     * optional string map_name = 5;
     */
    public boolean hasMapName() {
      return ((bitField0_ & 0x00000010) == 0x00000010);
    }
    /**
     * optional string map_name = 5;
     */
    public java.lang.String getMapName() {
      java.lang.Object ref = mapName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          mapName_ = s;
        }
        return s;
      }
    }
    /**
     * optional string map_name = 5;
     */
    public com.google.protobuf.ByteString
        getMapNameBytes() {
      java.lang.Object ref = mapName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        mapName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int GAME_DIRECTORY_FIELD_NUMBER = 6;
    private java.lang.Object gameDirectory_;
    /**
     * optional string game_directory = 6;
     */
    public boolean hasGameDirectory() {
      return ((bitField0_ & 0x00000020) == 0x00000020);
    }
    /**
     * optional string game_directory = 6;
     */
    public java.lang.String getGameDirectory() {
      java.lang.Object ref = gameDirectory_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          gameDirectory_ = s;
        }
        return s;
      }
    }
    /**
     * optional string game_directory = 6;
     */
    public com.google.protobuf.ByteString
        getGameDirectoryBytes() {
      java.lang.Object ref = gameDirectory_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        gameDirectory_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int FULLPACKETS_VERSION_FIELD_NUMBER = 7;
    private int fullpacketsVersion_;
    /**
     * optional int32 fullpackets_version = 7;
     */
    public boolean hasFullpacketsVersion() {
      return ((bitField0_ & 0x00000040) == 0x00000040);
    }
    /**
     * optional int32 fullpackets_version = 7;
     */
    public int getFullpacketsVersion() {
      return fullpacketsVersion_;
    }

    public static final int ALLOW_CLIENTSIDE_ENTITIES_FIELD_NUMBER = 8;
    private boolean allowClientsideEntities_;
    /**
     * optional bool allow_clientside_entities = 8;
     */
    public boolean hasAllowClientsideEntities() {
      return ((bitField0_ & 0x00000080) == 0x00000080);
    }
    /**
     * optional bool allow_clientside_entities = 8;
     */
    public boolean getAllowClientsideEntities() {
      return allowClientsideEntities_;
    }

    public static final int ALLOW_CLIENTSIDE_PARTICLES_FIELD_NUMBER = 9;
    private boolean allowClientsideParticles_;
    /**
     * optional bool allow_clientside_particles = 9;
     */
    public boolean hasAllowClientsideParticles() {
      return ((bitField0_ & 0x00000100) == 0x00000100);
    }
    /**
     * optional bool allow_clientside_particles = 9;
     */
    public boolean getAllowClientsideParticles() {
      return allowClientsideParticles_;
    }

    public static final int ADDONS_FIELD_NUMBER = 10;
    private java.lang.Object addons_;
    /**
     * optional string addons = 10;
     */
    public boolean hasAddons() {
      return ((bitField0_ & 0x00000200) == 0x00000200);
    }
    /**
     * optional string addons = 10;
     */
    public java.lang.String getAddons() {
      java.lang.Object ref = addons_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          addons_ = s;
        }
        return s;
      }
    }
    /**
     * optional string addons = 10;
     */
    public com.google.protobuf.ByteString
        getAddonsBytes() {
      java.lang.Object ref = addons_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        addons_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEMO_VERSION_NAME_FIELD_NUMBER = 11;
    private java.lang.Object demoVersionName_;
    /**
     * optional string demo_version_name = 11;
     */
    public boolean hasDemoVersionName() {
      return ((bitField0_ & 0x00000400) == 0x00000400);
    }
    /**
     * optional string demo_version_name = 11;
     */
    public java.lang.String getDemoVersionName() {
      java.lang.Object ref = demoVersionName_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          demoVersionName_ = s;
        }
        return s;
      }
    }
    /**
     * optional string demo_version_name = 11;
     */
    public com.google.protobuf.ByteString
        getDemoVersionNameBytes() {
      java.lang.Object ref = demoVersionName_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        demoVersionName_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int DEMO_VERSION_GUID_FIELD_NUMBER = 12;
    private java.lang.Object demoVersionGuid_;
    /**
     * optional string demo_version_guid = 12;
     */
    public boolean hasDemoVersionGuid() {
      return ((bitField0_ & 0x00000800) == 0x00000800);
    }
    /**
     * optional string demo_version_guid = 12;
     */
    public java.lang.String getDemoVersionGuid() {
      java.lang.Object ref = demoVersionGuid_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          demoVersionGuid_ = s;
        }
        return s;
      }
    }
    /**
     * optional string demo_version_guid = 12;
     */
    public com.google.protobuf.ByteString
        getDemoVersionGuidBytes() {
      java.lang.Object ref = demoVersionGuid_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        demoVersionGuid_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    public static final int BUILD_NUM_FIELD_NUMBER = 13;
    private int buildNum_;
    /**
     * optional int32 build_num = 13;
     */
    public boolean hasBuildNum() {
      return ((bitField0_ & 0x00001000) == 0x00001000);
    }
    /**
     * optional int32 build_num = 13;
     */
    public int getBuildNum() {
      return buildNum_;
    }

    private void initFields() {
      demoFileStamp_ = "";
      networkProtocol_ = 0;
      serverName_ = "";
      clientName_ = "";
      mapName_ = "";
      gameDirectory_ = "";
      fullpacketsVersion_ = 0;
      allowClientsideEntities_ = false;
      allowClientsideParticles_ = false;
      addons_ = "";
      demoVersionName_ = "";
      demoVersionGuid_ = "";
      buildNum_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      if (!hasDemoFileStamp()) {
        memoizedIsInitialized = 0;
        return false;
      }
      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getDemoFileStampBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, networkProtocol_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, getServerNameBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeBytes(4, getClientNameBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        output.writeBytes(5, getMapNameBytes());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        output.writeBytes(6, getGameDirectoryBytes());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        output.writeInt32(7, fullpacketsVersion_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        output.writeBool(8, allowClientsideEntities_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        output.writeBool(9, allowClientsideParticles_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        output.writeBytes(10, getAddonsBytes());
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        output.writeBytes(11, getDemoVersionNameBytes());
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        output.writeBytes(12, getDemoVersionGuidBytes());
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        output.writeInt32(13, buildNum_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getDemoFileStampBytes());
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, networkProtocol_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, getServerNameBytes());
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(4, getClientNameBytes());
      }
      if (((bitField0_ & 0x00000010) == 0x00000010)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(5, getMapNameBytes());
      }
      if (((bitField0_ & 0x00000020) == 0x00000020)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(6, getGameDirectoryBytes());
      }
      if (((bitField0_ & 0x00000040) == 0x00000040)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(7, fullpacketsVersion_);
      }
      if (((bitField0_ & 0x00000080) == 0x00000080)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(8, allowClientsideEntities_);
      }
      if (((bitField0_ & 0x00000100) == 0x00000100)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBoolSize(9, allowClientsideParticles_);
      }
      if (((bitField0_ & 0x00000200) == 0x00000200)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(10, getAddonsBytes());
      }
      if (((bitField0_ & 0x00000400) == 0x00000400)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(11, getDemoVersionNameBytes());
      }
      if (((bitField0_ & 0x00000800) == 0x00000800)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(12, getDemoVersionGuidBytes());
      }
      if (((bitField0_ & 0x00001000) == 0x00001000)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(13, buildNum_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDemoFileHeader}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDemoFileHeader)
        skadistats.clarity.wire.common.proto.Demo.CDemoFileHeaderOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoFileHeader_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoFileHeader_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader.class, skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        demoFileStamp_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        networkProtocol_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        serverName_ = "";
        bitField0_ = (bitField0_ & ~0x00000004);
        clientName_ = "";
        bitField0_ = (bitField0_ & ~0x00000008);
        mapName_ = "";
        bitField0_ = (bitField0_ & ~0x00000010);
        gameDirectory_ = "";
        bitField0_ = (bitField0_ & ~0x00000020);
        fullpacketsVersion_ = 0;
        bitField0_ = (bitField0_ & ~0x00000040);
        allowClientsideEntities_ = false;
        bitField0_ = (bitField0_ & ~0x00000080);
        allowClientsideParticles_ = false;
        bitField0_ = (bitField0_ & ~0x00000100);
        addons_ = "";
        bitField0_ = (bitField0_ & ~0x00000200);
        demoVersionName_ = "";
        bitField0_ = (bitField0_ & ~0x00000400);
        demoVersionGuid_ = "";
        bitField0_ = (bitField0_ & ~0x00000800);
        buildNum_ = 0;
        bitField0_ = (bitField0_ & ~0x00001000);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoFileHeader_descriptor;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader build() {
        skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader buildPartial() {
        skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader result = new skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.demoFileStamp_ = demoFileStamp_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.networkProtocol_ = networkProtocol_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.serverName_ = serverName_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.clientName_ = clientName_;
        if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
          to_bitField0_ |= 0x00000010;
        }
        result.mapName_ = mapName_;
        if (((from_bitField0_ & 0x00000020) == 0x00000020)) {
          to_bitField0_ |= 0x00000020;
        }
        result.gameDirectory_ = gameDirectory_;
        if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
          to_bitField0_ |= 0x00000040;
        }
        result.fullpacketsVersion_ = fullpacketsVersion_;
        if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
          to_bitField0_ |= 0x00000080;
        }
        result.allowClientsideEntities_ = allowClientsideEntities_;
        if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
          to_bitField0_ |= 0x00000100;
        }
        result.allowClientsideParticles_ = allowClientsideParticles_;
        if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
          to_bitField0_ |= 0x00000200;
        }
        result.addons_ = addons_;
        if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
          to_bitField0_ |= 0x00000400;
        }
        result.demoVersionName_ = demoVersionName_;
        if (((from_bitField0_ & 0x00000800) == 0x00000800)) {
          to_bitField0_ |= 0x00000800;
        }
        result.demoVersionGuid_ = demoVersionGuid_;
        if (((from_bitField0_ & 0x00001000) == 0x00001000)) {
          to_bitField0_ |= 0x00001000;
        }
        result.buildNum_ = buildNum_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader) {
          return mergeFrom((skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader other) {
        if (other == skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader.getDefaultInstance()) return this;
        if (other.hasDemoFileStamp()) {
          bitField0_ |= 0x00000001;
          demoFileStamp_ = other.demoFileStamp_;
          onChanged();
        }
        if (other.hasNetworkProtocol()) {
          setNetworkProtocol(other.getNetworkProtocol());
        }
        if (other.hasServerName()) {
          bitField0_ |= 0x00000004;
          serverName_ = other.serverName_;
          onChanged();
        }
        if (other.hasClientName()) {
          bitField0_ |= 0x00000008;
          clientName_ = other.clientName_;
          onChanged();
        }
        if (other.hasMapName()) {
          bitField0_ |= 0x00000010;
          mapName_ = other.mapName_;
          onChanged();
        }
        if (other.hasGameDirectory()) {
          bitField0_ |= 0x00000020;
          gameDirectory_ = other.gameDirectory_;
          onChanged();
        }
        if (other.hasFullpacketsVersion()) {
          setFullpacketsVersion(other.getFullpacketsVersion());
        }
        if (other.hasAllowClientsideEntities()) {
          setAllowClientsideEntities(other.getAllowClientsideEntities());
        }
        if (other.hasAllowClientsideParticles()) {
          setAllowClientsideParticles(other.getAllowClientsideParticles());
        }
        if (other.hasAddons()) {
          bitField0_ |= 0x00000200;
          addons_ = other.addons_;
          onChanged();
        }
        if (other.hasDemoVersionName()) {
          bitField0_ |= 0x00000400;
          demoVersionName_ = other.demoVersionName_;
          onChanged();
        }
        if (other.hasDemoVersionGuid()) {
          bitField0_ |= 0x00000800;
          demoVersionGuid_ = other.demoVersionGuid_;
          onChanged();
        }
        if (other.hasBuildNum()) {
          setBuildNum(other.getBuildNum());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        if (!hasDemoFileStamp()) {
          
          return false;
        }
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.Demo.CDemoFileHeader) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object demoFileStamp_ = "";
      /**
       * required string demo_file_stamp = 1;
       */
      public boolean hasDemoFileStamp() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * required string demo_file_stamp = 1;
       */
      public java.lang.String getDemoFileStamp() {
        java.lang.Object ref = demoFileStamp_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            demoFileStamp_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * required string demo_file_stamp = 1;
       */
      public com.google.protobuf.ByteString
          getDemoFileStampBytes() {
        java.lang.Object ref = demoFileStamp_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          demoFileStamp_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * required string demo_file_stamp = 1;
       */
      public Builder setDemoFileStamp(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        demoFileStamp_ = value;
        onChanged();
        return this;
      }
      /**
       * required string demo_file_stamp = 1;
       */
      public Builder clearDemoFileStamp() {
        bitField0_ = (bitField0_ & ~0x00000001);
        demoFileStamp_ = getDefaultInstance().getDemoFileStamp();
        onChanged();
        return this;
      }
      /**
       * required string demo_file_stamp = 1;
       */
      public Builder setDemoFileStampBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        demoFileStamp_ = value;
        onChanged();
        return this;
      }

      private int networkProtocol_ ;
      /**
       * optional int32 network_protocol = 2;
       */
      public boolean hasNetworkProtocol() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 network_protocol = 2;
       */
      public int getNetworkProtocol() {
        return networkProtocol_;
      }
      /**
       * optional int32 network_protocol = 2;
       */
      public Builder setNetworkProtocol(int value) {
        bitField0_ |= 0x00000002;
        networkProtocol_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 network_protocol = 2;
       */
      public Builder clearNetworkProtocol() {
        bitField0_ = (bitField0_ & ~0x00000002);
        networkProtocol_ = 0;
        onChanged();
        return this;
      }

      private java.lang.Object serverName_ = "";
      /**
       * optional string server_name = 3;
       */
      public boolean hasServerName() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string server_name = 3;
       */
      public java.lang.String getServerName() {
        java.lang.Object ref = serverName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            serverName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string server_name = 3;
       */
      public com.google.protobuf.ByteString
          getServerNameBytes() {
        java.lang.Object ref = serverName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          serverName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string server_name = 3;
       */
      public Builder setServerName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        serverName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string server_name = 3;
       */
      public Builder clearServerName() {
        bitField0_ = (bitField0_ & ~0x00000004);
        serverName_ = getDefaultInstance().getServerName();
        onChanged();
        return this;
      }
      /**
       * optional string server_name = 3;
       */
      public Builder setServerNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        serverName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object clientName_ = "";
      /**
       * optional string client_name = 4;
       */
      public boolean hasClientName() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional string client_name = 4;
       */
      public java.lang.String getClientName() {
        java.lang.Object ref = clientName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            clientName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string client_name = 4;
       */
      public com.google.protobuf.ByteString
          getClientNameBytes() {
        java.lang.Object ref = clientName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          clientName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string client_name = 4;
       */
      public Builder setClientName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        clientName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string client_name = 4;
       */
      public Builder clearClientName() {
        bitField0_ = (bitField0_ & ~0x00000008);
        clientName_ = getDefaultInstance().getClientName();
        onChanged();
        return this;
      }
      /**
       * optional string client_name = 4;
       */
      public Builder setClientNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000008;
        clientName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object mapName_ = "";
      /**
       * optional string map_name = 5;
       */
      public boolean hasMapName() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional string map_name = 5;
       */
      public java.lang.String getMapName() {
        java.lang.Object ref = mapName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            mapName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string map_name = 5;
       */
      public com.google.protobuf.ByteString
          getMapNameBytes() {
        java.lang.Object ref = mapName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          mapName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string map_name = 5;
       */
      public Builder setMapName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        mapName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string map_name = 5;
       */
      public Builder clearMapName() {
        bitField0_ = (bitField0_ & ~0x00000010);
        mapName_ = getDefaultInstance().getMapName();
        onChanged();
        return this;
      }
      /**
       * optional string map_name = 5;
       */
      public Builder setMapNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000010;
        mapName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object gameDirectory_ = "";
      /**
       * optional string game_directory = 6;
       */
      public boolean hasGameDirectory() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional string game_directory = 6;
       */
      public java.lang.String getGameDirectory() {
        java.lang.Object ref = gameDirectory_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            gameDirectory_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string game_directory = 6;
       */
      public com.google.protobuf.ByteString
          getGameDirectoryBytes() {
        java.lang.Object ref = gameDirectory_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          gameDirectory_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string game_directory = 6;
       */
      public Builder setGameDirectory(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        gameDirectory_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string game_directory = 6;
       */
      public Builder clearGameDirectory() {
        bitField0_ = (bitField0_ & ~0x00000020);
        gameDirectory_ = getDefaultInstance().getGameDirectory();
        onChanged();
        return this;
      }
      /**
       * optional string game_directory = 6;
       */
      public Builder setGameDirectoryBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000020;
        gameDirectory_ = value;
        onChanged();
        return this;
      }

      private int fullpacketsVersion_ ;
      /**
       * optional int32 fullpackets_version = 7;
       */
      public boolean hasFullpacketsVersion() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional int32 fullpackets_version = 7;
       */
      public int getFullpacketsVersion() {
        return fullpacketsVersion_;
      }
      /**
       * optional int32 fullpackets_version = 7;
       */
      public Builder setFullpacketsVersion(int value) {
        bitField0_ |= 0x00000040;
        fullpacketsVersion_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 fullpackets_version = 7;
       */
      public Builder clearFullpacketsVersion() {
        bitField0_ = (bitField0_ & ~0x00000040);
        fullpacketsVersion_ = 0;
        onChanged();
        return this;
      }

      private boolean allowClientsideEntities_ ;
      /**
       * optional bool allow_clientside_entities = 8;
       */
      public boolean hasAllowClientsideEntities() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional bool allow_clientside_entities = 8;
       */
      public boolean getAllowClientsideEntities() {
        return allowClientsideEntities_;
      }
      /**
       * optional bool allow_clientside_entities = 8;
       */
      public Builder setAllowClientsideEntities(boolean value) {
        bitField0_ |= 0x00000080;
        allowClientsideEntities_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool allow_clientside_entities = 8;
       */
      public Builder clearAllowClientsideEntities() {
        bitField0_ = (bitField0_ & ~0x00000080);
        allowClientsideEntities_ = false;
        onChanged();
        return this;
      }

      private boolean allowClientsideParticles_ ;
      /**
       * optional bool allow_clientside_particles = 9;
       */
      public boolean hasAllowClientsideParticles() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional bool allow_clientside_particles = 9;
       */
      public boolean getAllowClientsideParticles() {
        return allowClientsideParticles_;
      }
      /**
       * optional bool allow_clientside_particles = 9;
       */
      public Builder setAllowClientsideParticles(boolean value) {
        bitField0_ |= 0x00000100;
        allowClientsideParticles_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bool allow_clientside_particles = 9;
       */
      public Builder clearAllowClientsideParticles() {
        bitField0_ = (bitField0_ & ~0x00000100);
        allowClientsideParticles_ = false;
        onChanged();
        return this;
      }

      private java.lang.Object addons_ = "";
      /**
       * optional string addons = 10;
       */
      public boolean hasAddons() {
        return ((bitField0_ & 0x00000200) == 0x00000200);
      }
      /**
       * optional string addons = 10;
       */
      public java.lang.String getAddons() {
        java.lang.Object ref = addons_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            addons_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string addons = 10;
       */
      public com.google.protobuf.ByteString
          getAddonsBytes() {
        java.lang.Object ref = addons_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          addons_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string addons = 10;
       */
      public Builder setAddons(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
        addons_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string addons = 10;
       */
      public Builder clearAddons() {
        bitField0_ = (bitField0_ & ~0x00000200);
        addons_ = getDefaultInstance().getAddons();
        onChanged();
        return this;
      }
      /**
       * optional string addons = 10;
       */
      public Builder setAddonsBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
        addons_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object demoVersionName_ = "";
      /**
       * optional string demo_version_name = 11;
       */
      public boolean hasDemoVersionName() {
        return ((bitField0_ & 0x00000400) == 0x00000400);
      }
      /**
       * optional string demo_version_name = 11;
       */
      public java.lang.String getDemoVersionName() {
        java.lang.Object ref = demoVersionName_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            demoVersionName_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string demo_version_name = 11;
       */
      public com.google.protobuf.ByteString
          getDemoVersionNameBytes() {
        java.lang.Object ref = demoVersionName_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          demoVersionName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string demo_version_name = 11;
       */
      public Builder setDemoVersionName(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000400;
        demoVersionName_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string demo_version_name = 11;
       */
      public Builder clearDemoVersionName() {
        bitField0_ = (bitField0_ & ~0x00000400);
        demoVersionName_ = getDefaultInstance().getDemoVersionName();
        onChanged();
        return this;
      }
      /**
       * optional string demo_version_name = 11;
       */
      public Builder setDemoVersionNameBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000400;
        demoVersionName_ = value;
        onChanged();
        return this;
      }

      private java.lang.Object demoVersionGuid_ = "";
      /**
       * optional string demo_version_guid = 12;
       */
      public boolean hasDemoVersionGuid() {
        return ((bitField0_ & 0x00000800) == 0x00000800);
      }
      /**
       * optional string demo_version_guid = 12;
       */
      public java.lang.String getDemoVersionGuid() {
        java.lang.Object ref = demoVersionGuid_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            demoVersionGuid_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string demo_version_guid = 12;
       */
      public com.google.protobuf.ByteString
          getDemoVersionGuidBytes() {
        java.lang.Object ref = demoVersionGuid_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          demoVersionGuid_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string demo_version_guid = 12;
       */
      public Builder setDemoVersionGuid(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000800;
        demoVersionGuid_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string demo_version_guid = 12;
       */
      public Builder clearDemoVersionGuid() {
        bitField0_ = (bitField0_ & ~0x00000800);
        demoVersionGuid_ = getDefaultInstance().getDemoVersionGuid();
        onChanged();
        return this;
      }
      /**
       * optional string demo_version_guid = 12;
       */
      public Builder setDemoVersionGuidBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000800;
        demoVersionGuid_ = value;
        onChanged();
        return this;
      }

      private int buildNum_ ;
      /**
       * optional int32 build_num = 13;
       */
      public boolean hasBuildNum() {
        return ((bitField0_ & 0x00001000) == 0x00001000);
      }
      /**
       * optional int32 build_num = 13;
       */
      public int getBuildNum() {
        return buildNum_;
      }
      /**
       * optional int32 build_num = 13;
       */
      public Builder setBuildNum(int value) {
        bitField0_ |= 0x00001000;
        buildNum_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 build_num = 13;
       */
      public Builder clearBuildNum() {
        bitField0_ = (bitField0_ & ~0x00001000);
        buildNum_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDemoFileHeader)
    }

    static {
      defaultInstance = new CDemoFileHeader(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDemoFileHeader)
  }

  public interface CGameInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CGameInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .CGameInfo.CDotaGameInfo dota = 4;
     */
    boolean hasDota();
    /**
     * optional .CGameInfo.CDotaGameInfo dota = 4;
     */
    skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo getDota();
    /**
     * optional .CGameInfo.CDotaGameInfo dota = 4;
     */
    skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfoOrBuilder getDotaOrBuilder();
  }
  /**
   * Protobuf type {@code CGameInfo}
   */
  public static final class CGameInfo extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CGameInfo)
      CGameInfoOrBuilder {
    // Use CGameInfo.newBuilder() to construct.
    private CGameInfo(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CGameInfo(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CGameInfo defaultInstance;
    public static CGameInfo getDefaultInstance() {
      return defaultInstance;
    }

    public CGameInfo getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CGameInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 34: {
              skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = dota_.toBuilder();
              }
              dota_ = input.readMessage(skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(dota_);
                dota_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CGameInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CGameInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.Demo.CGameInfo.class, skadistats.clarity.wire.common.proto.Demo.CGameInfo.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CGameInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CGameInfo(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface CDotaGameInfoOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CGameInfo.CDotaGameInfo)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional uint64 match_id = 1;
       */
      boolean hasMatchId();
      /**
       * optional uint64 match_id = 1;
       */
      long getMatchId();

      /**
       * optional int32 game_mode = 2;
       */
      boolean hasGameMode();
      /**
       * optional int32 game_mode = 2;
       */
      int getGameMode();

      /**
       * optional int32 game_winner = 3;
       */
      boolean hasGameWinner();
      /**
       * optional int32 game_winner = 3;
       */
      int getGameWinner();

      /**
       * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
       */
      java.util.List 
          getPlayerInfoList();
      /**
       * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
       */
      skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo getPlayerInfo(int index);
      /**
       * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
       */
      int getPlayerInfoCount();
      /**
       * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
       */
      java.util.List 
          getPlayerInfoOrBuilderList();
      /**
       * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
       */
      skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfoOrBuilder getPlayerInfoOrBuilder(
          int index);

      /**
       * optional uint32 leagueid = 5;
       */
      boolean hasLeagueid();
      /**
       * optional uint32 leagueid = 5;
       */
      int getLeagueid();

      /**
       * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
       */
      java.util.List 
          getPicksBansList();
      /**
       * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
       */
      skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent getPicksBans(int index);
      /**
       * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
       */
      int getPicksBansCount();
      /**
       * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
       */
      java.util.List 
          getPicksBansOrBuilderList();
      /**
       * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
       */
      skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEventOrBuilder getPicksBansOrBuilder(
          int index);

      /**
       * optional uint32 radiant_team_id = 7;
       */
      boolean hasRadiantTeamId();
      /**
       * optional uint32 radiant_team_id = 7;
       */
      int getRadiantTeamId();

      /**
       * optional uint32 dire_team_id = 8;
       */
      boolean hasDireTeamId();
      /**
       * optional uint32 dire_team_id = 8;
       */
      int getDireTeamId();

      /**
       * optional string radiant_team_tag = 9;
       */
      boolean hasRadiantTeamTag();
      /**
       * optional string radiant_team_tag = 9;
       */
      java.lang.String getRadiantTeamTag();
      /**
       * optional string radiant_team_tag = 9;
       */
      com.google.protobuf.ByteString
          getRadiantTeamTagBytes();

      /**
       * optional string dire_team_tag = 10;
       */
      boolean hasDireTeamTag();
      /**
       * optional string dire_team_tag = 10;
       */
      java.lang.String getDireTeamTag();
      /**
       * optional string dire_team_tag = 10;
       */
      com.google.protobuf.ByteString
          getDireTeamTagBytes();

      /**
       * optional uint32 end_time = 11;
       */
      boolean hasEndTime();
      /**
       * optional uint32 end_time = 11;
       */
      int getEndTime();
    }
    /**
     * Protobuf type {@code CGameInfo.CDotaGameInfo}
     */
    public static final class CDotaGameInfo extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CGameInfo.CDotaGameInfo)
        CDotaGameInfoOrBuilder {
      // Use CDotaGameInfo.newBuilder() to construct.
      private CDotaGameInfo(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private CDotaGameInfo(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final CDotaGameInfo defaultInstance;
      public static CDotaGameInfo getDefaultInstance() {
        return defaultInstance;
      }

      public CDotaGameInfo getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private CDotaGameInfo(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                matchId_ = input.readUInt64();
                break;
              }
              case 16: {
                bitField0_ |= 0x00000002;
                gameMode_ = input.readInt32();
                break;
              }
              case 24: {
                bitField0_ |= 0x00000004;
                gameWinner_ = input.readInt32();
                break;
              }
              case 34: {
                if (!((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
                  playerInfo_ = new java.util.ArrayList();
                  mutable_bitField0_ |= 0x00000008;
                }
                playerInfo_.add(input.readMessage(skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo.PARSER, extensionRegistry));
                break;
              }
              case 40: {
                bitField0_ |= 0x00000008;
                leagueid_ = input.readUInt32();
                break;
              }
              case 50: {
                if (!((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
                  picksBans_ = new java.util.ArrayList();
                  mutable_bitField0_ |= 0x00000020;
                }
                picksBans_.add(input.readMessage(skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent.PARSER, extensionRegistry));
                break;
              }
              case 56: {
                bitField0_ |= 0x00000010;
                radiantTeamId_ = input.readUInt32();
                break;
              }
              case 64: {
                bitField0_ |= 0x00000020;
                direTeamId_ = input.readUInt32();
                break;
              }
              case 74: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000040;
                radiantTeamTag_ = bs;
                break;
              }
              case 82: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000080;
                direTeamTag_ = bs;
                break;
              }
              case 88: {
                bitField0_ |= 0x00000100;
                endTime_ = input.readUInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000008) == 0x00000008)) {
            playerInfo_ = java.util.Collections.unmodifiableList(playerInfo_);
          }
          if (((mutable_bitField0_ & 0x00000020) == 0x00000020)) {
            picksBans_ = java.util.Collections.unmodifiableList(picksBans_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CGameInfo_CDotaGameInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CGameInfo_CDotaGameInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.class, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public CDotaGameInfo parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new CDotaGameInfo(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      public interface CPlayerInfoOrBuilder extends
          // @@protoc_insertion_point(interface_extends:CGameInfo.CDotaGameInfo.CPlayerInfo)
          com.google.protobuf.MessageOrBuilder {

        /**
         * optional string hero_name = 1;
         */
        boolean hasHeroName();
        /**
         * optional string hero_name = 1;
         */
        java.lang.String getHeroName();
        /**
         * optional string hero_name = 1;
         */
        com.google.protobuf.ByteString
            getHeroNameBytes();

        /**
         * optional string player_name = 2;
         */
        boolean hasPlayerName();
        /**
         * optional string player_name = 2;
         */
        java.lang.String getPlayerName();
        /**
         * optional string player_name = 2;
         */
        com.google.protobuf.ByteString
            getPlayerNameBytes();

        /**
         * optional bool is_fake_client = 3;
         */
        boolean hasIsFakeClient();
        /**
         * optional bool is_fake_client = 3;
         */
        boolean getIsFakeClient();

        /**
         * optional uint64 steamid = 4;
         */
        boolean hasSteamid();
        /**
         * optional uint64 steamid = 4;
         */
        long getSteamid();

        /**
         * optional int32 game_team = 5;
         */
        boolean hasGameTeam();
        /**
         * optional int32 game_team = 5;
         */
        int getGameTeam();
      }
      /**
       * Protobuf type {@code CGameInfo.CDotaGameInfo.CPlayerInfo}
       */
      public static final class CPlayerInfo extends
          com.google.protobuf.GeneratedMessage implements
          // @@protoc_insertion_point(message_implements:CGameInfo.CDotaGameInfo.CPlayerInfo)
          CPlayerInfoOrBuilder {
        // Use CPlayerInfo.newBuilder() to construct.
        private CPlayerInfo(com.google.protobuf.GeneratedMessage.Builder builder) {
          super(builder);
          this.unknownFields = builder.getUnknownFields();
        }
        private CPlayerInfo(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

        private static final CPlayerInfo defaultInstance;
        public static CPlayerInfo getDefaultInstance() {
          return defaultInstance;
        }

        public CPlayerInfo getDefaultInstanceForType() {
          return defaultInstance;
        }

        private final com.google.protobuf.UnknownFieldSet unknownFields;
        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
          return this.unknownFields;
        }
        private CPlayerInfo(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          initFields();
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 10: {
                  com.google.protobuf.ByteString bs = input.readBytes();
                  bitField0_ |= 0x00000001;
                  heroName_ = bs;
                  break;
                }
                case 18: {
                  com.google.protobuf.ByteString bs = input.readBytes();
                  bitField0_ |= 0x00000002;
                  playerName_ = bs;
                  break;
                }
                case 24: {
                  bitField0_ |= 0x00000004;
                  isFakeClient_ = input.readBool();
                  break;
                }
                case 32: {
                  bitField0_ |= 0x00000008;
                  steamid_ = input.readUInt64();
                  break;
                }
                case 40: {
                  bitField0_ |= 0x00000010;
                  gameTeam_ = input.readInt32();
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this);
          } finally {
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.Demo.internal_static_CGameInfo_CDotaGameInfo_CPlayerInfo_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.Demo.internal_static_CGameInfo_CDotaGameInfo_CPlayerInfo_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo.class, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo.Builder.class);
        }

        public static com.google.protobuf.Parser PARSER =
            new com.google.protobuf.AbstractParser() {
          public CPlayerInfo parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new CPlayerInfo(input, extensionRegistry);
          }
        };

        @java.lang.Override
        public com.google.protobuf.Parser getParserForType() {
          return PARSER;
        }

        private int bitField0_;
        public static final int HERO_NAME_FIELD_NUMBER = 1;
        private java.lang.Object heroName_;
        /**
         * optional string hero_name = 1;
         */
        public boolean hasHeroName() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional string hero_name = 1;
         */
        public java.lang.String getHeroName() {
          java.lang.Object ref = heroName_;
          if (ref instanceof java.lang.String) {
            return (java.lang.String) ref;
          } else {
            com.google.protobuf.ByteString bs = 
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              heroName_ = s;
            }
            return s;
          }
        }
        /**
         * optional string hero_name = 1;
         */
        public com.google.protobuf.ByteString
            getHeroNameBytes() {
          java.lang.Object ref = heroName_;
          if (ref instanceof java.lang.String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            heroName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

        public static final int PLAYER_NAME_FIELD_NUMBER = 2;
        private java.lang.Object playerName_;
        /**
         * optional string player_name = 2;
         */
        public boolean hasPlayerName() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional string player_name = 2;
         */
        public java.lang.String getPlayerName() {
          java.lang.Object ref = playerName_;
          if (ref instanceof java.lang.String) {
            return (java.lang.String) ref;
          } else {
            com.google.protobuf.ByteString bs = 
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              playerName_ = s;
            }
            return s;
          }
        }
        /**
         * optional string player_name = 2;
         */
        public com.google.protobuf.ByteString
            getPlayerNameBytes() {
          java.lang.Object ref = playerName_;
          if (ref instanceof java.lang.String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            playerName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }

        public static final int IS_FAKE_CLIENT_FIELD_NUMBER = 3;
        private boolean isFakeClient_;
        /**
         * optional bool is_fake_client = 3;
         */
        public boolean hasIsFakeClient() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional bool is_fake_client = 3;
         */
        public boolean getIsFakeClient() {
          return isFakeClient_;
        }

        public static final int STEAMID_FIELD_NUMBER = 4;
        private long steamid_;
        /**
         * optional uint64 steamid = 4;
         */
        public boolean hasSteamid() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * optional uint64 steamid = 4;
         */
        public long getSteamid() {
          return steamid_;
        }

        public static final int GAME_TEAM_FIELD_NUMBER = 5;
        private int gameTeam_;
        /**
         * optional int32 game_team = 5;
         */
        public boolean hasGameTeam() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * optional int32 game_team = 5;
         */
        public int getGameTeam() {
          return gameTeam_;
        }

        private void initFields() {
          heroName_ = "";
          playerName_ = "";
          isFakeClient_ = false;
          steamid_ = 0L;
          gameTeam_ = 0;
        }
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getSerializedSize();
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            output.writeBytes(1, getHeroNameBytes());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeBytes(2, getPlayerNameBytes());
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            output.writeBool(3, isFakeClient_);
          }
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            output.writeUInt64(4, steamid_);
          }
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            output.writeInt32(5, gameTeam_);
          }
          getUnknownFields().writeTo(output);
        }

        private int memoizedSerializedSize = -1;
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;

          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.CodedOutputStream
              .computeBytesSize(1, getHeroNameBytes());
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream
              .computeBytesSize(2, getPlayerNameBytes());
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            size += com.google.protobuf.CodedOutputStream
              .computeBoolSize(3, isFakeClient_);
          }
          if (((bitField0_ & 0x00000008) == 0x00000008)) {
            size += com.google.protobuf.CodedOutputStream
              .computeUInt64Size(4, steamid_);
          }
          if (((bitField0_ & 0x00000010) == 0x00000010)) {
            size += com.google.protobuf.CodedOutputStream
              .computeInt32Size(5, gameTeam_);
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }

        private static final long serialVersionUID = 0L;
        @java.lang.Override
        protected java.lang.Object writeReplace()
            throws java.io.ObjectStreamException {
          return super.writeReplace();
        }

        public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseFrom(input, extensionRegistry);
        }
        public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input);
        }
        public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input, extensionRegistry);
        }
        public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseFrom(input, extensionRegistry);
        }

        public static Builder newBuilder() { return Builder.create(); }
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder(skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo prototype) {
          return newBuilder().mergeFrom(prototype);
        }
        public Builder toBuilder() { return newBuilder(this); }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * Protobuf type {@code CGameInfo.CDotaGameInfo.CPlayerInfo}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessage.Builder implements
            // @@protoc_insertion_point(builder_implements:CGameInfo.CDotaGameInfo.CPlayerInfo)
            skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfoOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return skadistats.clarity.wire.common.proto.Demo.internal_static_CGameInfo_CDotaGameInfo_CPlayerInfo_descriptor;
          }

          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return skadistats.clarity.wire.common.proto.Demo.internal_static_CGameInfo_CDotaGameInfo_CPlayerInfo_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo.class, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo.Builder.class);
          }

          // Construct using skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(
              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            }
          }
          private static Builder create() {
            return new Builder();
          }

          public Builder clear() {
            super.clear();
            heroName_ = "";
            bitField0_ = (bitField0_ & ~0x00000001);
            playerName_ = "";
            bitField0_ = (bitField0_ & ~0x00000002);
            isFakeClient_ = false;
            bitField0_ = (bitField0_ & ~0x00000004);
            steamid_ = 0L;
            bitField0_ = (bitField0_ & ~0x00000008);
            gameTeam_ = 0;
            bitField0_ = (bitField0_ & ~0x00000010);
            return this;
          }

          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }

          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return skadistats.clarity.wire.common.proto.Demo.internal_static_CGameInfo_CDotaGameInfo_CPlayerInfo_descriptor;
          }

          public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo getDefaultInstanceForType() {
            return skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo.getDefaultInstance();
          }

          public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo build() {
            skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo buildPartial() {
            skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo result = new skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.heroName_ = heroName_;
            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
              to_bitField0_ |= 0x00000002;
            }
            result.playerName_ = playerName_;
            if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
              to_bitField0_ |= 0x00000004;
            }
            result.isFakeClient_ = isFakeClient_;
            if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
              to_bitField0_ |= 0x00000008;
            }
            result.steamid_ = steamid_;
            if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
              to_bitField0_ |= 0x00000010;
            }
            result.gameTeam_ = gameTeam_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }

          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo) {
              return mergeFrom((skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo other) {
            if (other == skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo.getDefaultInstance()) return this;
            if (other.hasHeroName()) {
              bitField0_ |= 0x00000001;
              heroName_ = other.heroName_;
              onChanged();
            }
            if (other.hasPlayerName()) {
              bitField0_ |= 0x00000002;
              playerName_ = other.playerName_;
              onChanged();
            }
            if (other.hasIsFakeClient()) {
              setIsFakeClient(other.getIsFakeClient());
            }
            if (other.hasSteamid()) {
              setSteamid(other.getSteamid());
            }
            if (other.hasGameTeam()) {
              setGameTeam(other.getGameTeam());
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }

          public final boolean isInitialized() {
            return true;
          }

          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo) e.getUnfinishedMessage();
              throw e;
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          private java.lang.Object heroName_ = "";
          /**
           * optional string hero_name = 1;
           */
          public boolean hasHeroName() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          /**
           * optional string hero_name = 1;
           */
          public java.lang.String getHeroName() {
            java.lang.Object ref = heroName_;
            if (!(ref instanceof java.lang.String)) {
              com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
              java.lang.String s = bs.toStringUtf8();
              if (bs.isValidUtf8()) {
                heroName_ = s;
              }
              return s;
            } else {
              return (java.lang.String) ref;
            }
          }
          /**
           * optional string hero_name = 1;
           */
          public com.google.protobuf.ByteString
              getHeroNameBytes() {
            java.lang.Object ref = heroName_;
            if (ref instanceof String) {
              com.google.protobuf.ByteString b = 
                  com.google.protobuf.ByteString.copyFromUtf8(
                      (java.lang.String) ref);
              heroName_ = b;
              return b;
            } else {
              return (com.google.protobuf.ByteString) ref;
            }
          }
          /**
           * optional string hero_name = 1;
           */
          public Builder setHeroName(
              java.lang.String value) {
            if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
            heroName_ = value;
            onChanged();
            return this;
          }
          /**
           * optional string hero_name = 1;
           */
          public Builder clearHeroName() {
            bitField0_ = (bitField0_ & ~0x00000001);
            heroName_ = getDefaultInstance().getHeroName();
            onChanged();
            return this;
          }
          /**
           * optional string hero_name = 1;
           */
          public Builder setHeroNameBytes(
              com.google.protobuf.ByteString value) {
            if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
            heroName_ = value;
            onChanged();
            return this;
          }

          private java.lang.Object playerName_ = "";
          /**
           * optional string player_name = 2;
           */
          public boolean hasPlayerName() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }
          /**
           * optional string player_name = 2;
           */
          public java.lang.String getPlayerName() {
            java.lang.Object ref = playerName_;
            if (!(ref instanceof java.lang.String)) {
              com.google.protobuf.ByteString bs =
                  (com.google.protobuf.ByteString) ref;
              java.lang.String s = bs.toStringUtf8();
              if (bs.isValidUtf8()) {
                playerName_ = s;
              }
              return s;
            } else {
              return (java.lang.String) ref;
            }
          }
          /**
           * optional string player_name = 2;
           */
          public com.google.protobuf.ByteString
              getPlayerNameBytes() {
            java.lang.Object ref = playerName_;
            if (ref instanceof String) {
              com.google.protobuf.ByteString b = 
                  com.google.protobuf.ByteString.copyFromUtf8(
                      (java.lang.String) ref);
              playerName_ = b;
              return b;
            } else {
              return (com.google.protobuf.ByteString) ref;
            }
          }
          /**
           * optional string player_name = 2;
           */
          public Builder setPlayerName(
              java.lang.String value) {
            if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
            playerName_ = value;
            onChanged();
            return this;
          }
          /**
           * optional string player_name = 2;
           */
          public Builder clearPlayerName() {
            bitField0_ = (bitField0_ & ~0x00000002);
            playerName_ = getDefaultInstance().getPlayerName();
            onChanged();
            return this;
          }
          /**
           * optional string player_name = 2;
           */
          public Builder setPlayerNameBytes(
              com.google.protobuf.ByteString value) {
            if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
            playerName_ = value;
            onChanged();
            return this;
          }

          private boolean isFakeClient_ ;
          /**
           * optional bool is_fake_client = 3;
           */
          public boolean hasIsFakeClient() {
            return ((bitField0_ & 0x00000004) == 0x00000004);
          }
          /**
           * optional bool is_fake_client = 3;
           */
          public boolean getIsFakeClient() {
            return isFakeClient_;
          }
          /**
           * optional bool is_fake_client = 3;
           */
          public Builder setIsFakeClient(boolean value) {
            bitField0_ |= 0x00000004;
            isFakeClient_ = value;
            onChanged();
            return this;
          }
          /**
           * optional bool is_fake_client = 3;
           */
          public Builder clearIsFakeClient() {
            bitField0_ = (bitField0_ & ~0x00000004);
            isFakeClient_ = false;
            onChanged();
            return this;
          }

          private long steamid_ ;
          /**
           * optional uint64 steamid = 4;
           */
          public boolean hasSteamid() {
            return ((bitField0_ & 0x00000008) == 0x00000008);
          }
          /**
           * optional uint64 steamid = 4;
           */
          public long getSteamid() {
            return steamid_;
          }
          /**
           * optional uint64 steamid = 4;
           */
          public Builder setSteamid(long value) {
            bitField0_ |= 0x00000008;
            steamid_ = value;
            onChanged();
            return this;
          }
          /**
           * optional uint64 steamid = 4;
           */
          public Builder clearSteamid() {
            bitField0_ = (bitField0_ & ~0x00000008);
            steamid_ = 0L;
            onChanged();
            return this;
          }

          private int gameTeam_ ;
          /**
           * optional int32 game_team = 5;
           */
          public boolean hasGameTeam() {
            return ((bitField0_ & 0x00000010) == 0x00000010);
          }
          /**
           * optional int32 game_team = 5;
           */
          public int getGameTeam() {
            return gameTeam_;
          }
          /**
           * optional int32 game_team = 5;
           */
          public Builder setGameTeam(int value) {
            bitField0_ |= 0x00000010;
            gameTeam_ = value;
            onChanged();
            return this;
          }
          /**
           * optional int32 game_team = 5;
           */
          public Builder clearGameTeam() {
            bitField0_ = (bitField0_ & ~0x00000010);
            gameTeam_ = 0;
            onChanged();
            return this;
          }

          // @@protoc_insertion_point(builder_scope:CGameInfo.CDotaGameInfo.CPlayerInfo)
        }

        static {
          defaultInstance = new CPlayerInfo(true);
          defaultInstance.initFields();
        }

        // @@protoc_insertion_point(class_scope:CGameInfo.CDotaGameInfo.CPlayerInfo)
      }

      public interface CHeroSelectEventOrBuilder extends
          // @@protoc_insertion_point(interface_extends:CGameInfo.CDotaGameInfo.CHeroSelectEvent)
          com.google.protobuf.MessageOrBuilder {

        /**
         * optional bool is_pick = 1;
         */
        boolean hasIsPick();
        /**
         * optional bool is_pick = 1;
         */
        boolean getIsPick();

        /**
         * optional uint32 team = 2;
         */
        boolean hasTeam();
        /**
         * optional uint32 team = 2;
         */
        int getTeam();

        /**
         * optional uint32 hero_id = 3;
         */
        boolean hasHeroId();
        /**
         * optional uint32 hero_id = 3;
         */
        int getHeroId();
      }
      /**
       * Protobuf type {@code CGameInfo.CDotaGameInfo.CHeroSelectEvent}
       */
      public static final class CHeroSelectEvent extends
          com.google.protobuf.GeneratedMessage implements
          // @@protoc_insertion_point(message_implements:CGameInfo.CDotaGameInfo.CHeroSelectEvent)
          CHeroSelectEventOrBuilder {
        // Use CHeroSelectEvent.newBuilder() to construct.
        private CHeroSelectEvent(com.google.protobuf.GeneratedMessage.Builder builder) {
          super(builder);
          this.unknownFields = builder.getUnknownFields();
        }
        private CHeroSelectEvent(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

        private static final CHeroSelectEvent defaultInstance;
        public static CHeroSelectEvent getDefaultInstance() {
          return defaultInstance;
        }

        public CHeroSelectEvent getDefaultInstanceForType() {
          return defaultInstance;
        }

        private final com.google.protobuf.UnknownFieldSet unknownFields;
        @java.lang.Override
        public final com.google.protobuf.UnknownFieldSet
            getUnknownFields() {
          return this.unknownFields;
        }
        private CHeroSelectEvent(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          initFields();
          int mutable_bitField0_ = 0;
          com.google.protobuf.UnknownFieldSet.Builder unknownFields =
              com.google.protobuf.UnknownFieldSet.newBuilder();
          try {
            boolean done = false;
            while (!done) {
              int tag = input.readTag();
              switch (tag) {
                case 0:
                  done = true;
                  break;
                default: {
                  if (!parseUnknownField(input, unknownFields,
                                         extensionRegistry, tag)) {
                    done = true;
                  }
                  break;
                }
                case 8: {
                  bitField0_ |= 0x00000001;
                  isPick_ = input.readBool();
                  break;
                }
                case 16: {
                  bitField0_ |= 0x00000002;
                  team_ = input.readUInt32();
                  break;
                }
                case 24: {
                  bitField0_ |= 0x00000004;
                  heroId_ = input.readUInt32();
                  break;
                }
              }
            }
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            throw e.setUnfinishedMessage(this);
          } catch (java.io.IOException e) {
            throw new com.google.protobuf.InvalidProtocolBufferException(
                e.getMessage()).setUnfinishedMessage(this);
          } finally {
            this.unknownFields = unknownFields.build();
            makeExtensionsImmutable();
          }
        }
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.Demo.internal_static_CGameInfo_CDotaGameInfo_CHeroSelectEvent_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.Demo.internal_static_CGameInfo_CDotaGameInfo_CHeroSelectEvent_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent.class, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent.Builder.class);
        }

        public static com.google.protobuf.Parser PARSER =
            new com.google.protobuf.AbstractParser() {
          public CHeroSelectEvent parsePartialFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws com.google.protobuf.InvalidProtocolBufferException {
            return new CHeroSelectEvent(input, extensionRegistry);
          }
        };

        @java.lang.Override
        public com.google.protobuf.Parser getParserForType() {
          return PARSER;
        }

        private int bitField0_;
        public static final int IS_PICK_FIELD_NUMBER = 1;
        private boolean isPick_;
        /**
         * optional bool is_pick = 1;
         */
        public boolean hasIsPick() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional bool is_pick = 1;
         */
        public boolean getIsPick() {
          return isPick_;
        }

        public static final int TEAM_FIELD_NUMBER = 2;
        private int team_;
        /**
         * optional uint32 team = 2;
         */
        public boolean hasTeam() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional uint32 team = 2;
         */
        public int getTeam() {
          return team_;
        }

        public static final int HERO_ID_FIELD_NUMBER = 3;
        private int heroId_;
        /**
         * optional uint32 hero_id = 3;
         */
        public boolean hasHeroId() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional uint32 hero_id = 3;
         */
        public int getHeroId() {
          return heroId_;
        }

        private void initFields() {
          isPick_ = false;
          team_ = 0;
          heroId_ = 0;
        }
        private byte memoizedIsInitialized = -1;
        public final boolean isInitialized() {
          byte isInitialized = memoizedIsInitialized;
          if (isInitialized == 1) return true;
          if (isInitialized == 0) return false;

          memoizedIsInitialized = 1;
          return true;
        }

        public void writeTo(com.google.protobuf.CodedOutputStream output)
                            throws java.io.IOException {
          getSerializedSize();
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            output.writeBool(1, isPick_);
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            output.writeUInt32(2, team_);
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            output.writeUInt32(3, heroId_);
          }
          getUnknownFields().writeTo(output);
        }

        private int memoizedSerializedSize = -1;
        public int getSerializedSize() {
          int size = memoizedSerializedSize;
          if (size != -1) return size;

          size = 0;
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            size += com.google.protobuf.CodedOutputStream
              .computeBoolSize(1, isPick_);
          }
          if (((bitField0_ & 0x00000002) == 0x00000002)) {
            size += com.google.protobuf.CodedOutputStream
              .computeUInt32Size(2, team_);
          }
          if (((bitField0_ & 0x00000004) == 0x00000004)) {
            size += com.google.protobuf.CodedOutputStream
              .computeUInt32Size(3, heroId_);
          }
          size += getUnknownFields().getSerializedSize();
          memoizedSerializedSize = size;
          return size;
        }

        private static final long serialVersionUID = 0L;
        @java.lang.Override
        protected java.lang.Object writeReplace()
            throws java.io.ObjectStreamException {
          return super.writeReplace();
        }

        public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent parseFrom(
            com.google.protobuf.ByteString data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent parseFrom(
            com.google.protobuf.ByteString data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent parseFrom(byte[] data)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data);
        }
        public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent parseFrom(
            byte[] data,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return PARSER.parseFrom(data, extensionRegistry);
        }
        public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent parseFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent parseFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseFrom(input, extensionRegistry);
        }
        public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent parseDelimitedFrom(java.io.InputStream input)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input);
        }
        public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent parseDelimitedFrom(
            java.io.InputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseDelimitedFrom(input, extensionRegistry);
        }
        public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent parseFrom(
            com.google.protobuf.CodedInputStream input)
            throws java.io.IOException {
          return PARSER.parseFrom(input);
        }
        public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent parseFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          return PARSER.parseFrom(input, extensionRegistry);
        }

        public static Builder newBuilder() { return Builder.create(); }
        public Builder newBuilderForType() { return newBuilder(); }
        public static Builder newBuilder(skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent prototype) {
          return newBuilder().mergeFrom(prototype);
        }
        public Builder toBuilder() { return newBuilder(this); }

        @java.lang.Override
        protected Builder newBuilderForType(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          Builder builder = new Builder(parent);
          return builder;
        }
        /**
         * Protobuf type {@code CGameInfo.CDotaGameInfo.CHeroSelectEvent}
         */
        public static final class Builder extends
            com.google.protobuf.GeneratedMessage.Builder implements
            // @@protoc_insertion_point(builder_implements:CGameInfo.CDotaGameInfo.CHeroSelectEvent)
            skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEventOrBuilder {
          public static final com.google.protobuf.Descriptors.Descriptor
              getDescriptor() {
            return skadistats.clarity.wire.common.proto.Demo.internal_static_CGameInfo_CDotaGameInfo_CHeroSelectEvent_descriptor;
          }

          protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
              internalGetFieldAccessorTable() {
            return skadistats.clarity.wire.common.proto.Demo.internal_static_CGameInfo_CDotaGameInfo_CHeroSelectEvent_fieldAccessorTable
                .ensureFieldAccessorsInitialized(
                    skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent.class, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent.Builder.class);
          }

          // Construct using skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent.newBuilder()
          private Builder() {
            maybeForceBuilderInitialization();
          }

          private Builder(
              com.google.protobuf.GeneratedMessage.BuilderParent parent) {
            super(parent);
            maybeForceBuilderInitialization();
          }
          private void maybeForceBuilderInitialization() {
            if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            }
          }
          private static Builder create() {
            return new Builder();
          }

          public Builder clear() {
            super.clear();
            isPick_ = false;
            bitField0_ = (bitField0_ & ~0x00000001);
            team_ = 0;
            bitField0_ = (bitField0_ & ~0x00000002);
            heroId_ = 0;
            bitField0_ = (bitField0_ & ~0x00000004);
            return this;
          }

          public Builder clone() {
            return create().mergeFrom(buildPartial());
          }

          public com.google.protobuf.Descriptors.Descriptor
              getDescriptorForType() {
            return skadistats.clarity.wire.common.proto.Demo.internal_static_CGameInfo_CDotaGameInfo_CHeroSelectEvent_descriptor;
          }

          public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent getDefaultInstanceForType() {
            return skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent.getDefaultInstance();
          }

          public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent build() {
            skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent result = buildPartial();
            if (!result.isInitialized()) {
              throw newUninitializedMessageException(result);
            }
            return result;
          }

          public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent buildPartial() {
            skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent result = new skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent(this);
            int from_bitField0_ = bitField0_;
            int to_bitField0_ = 0;
            if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
              to_bitField0_ |= 0x00000001;
            }
            result.isPick_ = isPick_;
            if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
              to_bitField0_ |= 0x00000002;
            }
            result.team_ = team_;
            if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
              to_bitField0_ |= 0x00000004;
            }
            result.heroId_ = heroId_;
            result.bitField0_ = to_bitField0_;
            onBuilt();
            return result;
          }

          public Builder mergeFrom(com.google.protobuf.Message other) {
            if (other instanceof skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent) {
              return mergeFrom((skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent)other);
            } else {
              super.mergeFrom(other);
              return this;
            }
          }

          public Builder mergeFrom(skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent other) {
            if (other == skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent.getDefaultInstance()) return this;
            if (other.hasIsPick()) {
              setIsPick(other.getIsPick());
            }
            if (other.hasTeam()) {
              setTeam(other.getTeam());
            }
            if (other.hasHeroId()) {
              setHeroId(other.getHeroId());
            }
            this.mergeUnknownFields(other.getUnknownFields());
            return this;
          }

          public final boolean isInitialized() {
            return true;
          }

          public Builder mergeFrom(
              com.google.protobuf.CodedInputStream input,
              com.google.protobuf.ExtensionRegistryLite extensionRegistry)
              throws java.io.IOException {
            skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent parsedMessage = null;
            try {
              parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
            } catch (com.google.protobuf.InvalidProtocolBufferException e) {
              parsedMessage = (skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent) e.getUnfinishedMessage();
              throw e;
            } finally {
              if (parsedMessage != null) {
                mergeFrom(parsedMessage);
              }
            }
            return this;
          }
          private int bitField0_;

          private boolean isPick_ ;
          /**
           * optional bool is_pick = 1;
           */
          public boolean hasIsPick() {
            return ((bitField0_ & 0x00000001) == 0x00000001);
          }
          /**
           * optional bool is_pick = 1;
           */
          public boolean getIsPick() {
            return isPick_;
          }
          /**
           * optional bool is_pick = 1;
           */
          public Builder setIsPick(boolean value) {
            bitField0_ |= 0x00000001;
            isPick_ = value;
            onChanged();
            return this;
          }
          /**
           * optional bool is_pick = 1;
           */
          public Builder clearIsPick() {
            bitField0_ = (bitField0_ & ~0x00000001);
            isPick_ = false;
            onChanged();
            return this;
          }

          private int team_ ;
          /**
           * optional uint32 team = 2;
           */
          public boolean hasTeam() {
            return ((bitField0_ & 0x00000002) == 0x00000002);
          }
          /**
           * optional uint32 team = 2;
           */
          public int getTeam() {
            return team_;
          }
          /**
           * optional uint32 team = 2;
           */
          public Builder setTeam(int value) {
            bitField0_ |= 0x00000002;
            team_ = value;
            onChanged();
            return this;
          }
          /**
           * optional uint32 team = 2;
           */
          public Builder clearTeam() {
            bitField0_ = (bitField0_ & ~0x00000002);
            team_ = 0;
            onChanged();
            return this;
          }

          private int heroId_ ;
          /**
           * optional uint32 hero_id = 3;
           */
          public boolean hasHeroId() {
            return ((bitField0_ & 0x00000004) == 0x00000004);
          }
          /**
           * optional uint32 hero_id = 3;
           */
          public int getHeroId() {
            return heroId_;
          }
          /**
           * optional uint32 hero_id = 3;
           */
          public Builder setHeroId(int value) {
            bitField0_ |= 0x00000004;
            heroId_ = value;
            onChanged();
            return this;
          }
          /**
           * optional uint32 hero_id = 3;
           */
          public Builder clearHeroId() {
            bitField0_ = (bitField0_ & ~0x00000004);
            heroId_ = 0;
            onChanged();
            return this;
          }

          // @@protoc_insertion_point(builder_scope:CGameInfo.CDotaGameInfo.CHeroSelectEvent)
        }

        static {
          defaultInstance = new CHeroSelectEvent(true);
          defaultInstance.initFields();
        }

        // @@protoc_insertion_point(class_scope:CGameInfo.CDotaGameInfo.CHeroSelectEvent)
      }

      private int bitField0_;
      public static final int MATCH_ID_FIELD_NUMBER = 1;
      private long matchId_;
      /**
       * optional uint64 match_id = 1;
       */
      public boolean hasMatchId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional uint64 match_id = 1;
       */
      public long getMatchId() {
        return matchId_;
      }

      public static final int GAME_MODE_FIELD_NUMBER = 2;
      private int gameMode_;
      /**
       * optional int32 game_mode = 2;
       */
      public boolean hasGameMode() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 game_mode = 2;
       */
      public int getGameMode() {
        return gameMode_;
      }

      public static final int GAME_WINNER_FIELD_NUMBER = 3;
      private int gameWinner_;
      /**
       * optional int32 game_winner = 3;
       */
      public boolean hasGameWinner() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 game_winner = 3;
       */
      public int getGameWinner() {
        return gameWinner_;
      }

      public static final int PLAYER_INFO_FIELD_NUMBER = 4;
      private java.util.List playerInfo_;
      /**
       * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
       */
      public java.util.List getPlayerInfoList() {
        return playerInfo_;
      }
      /**
       * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
       */
      public java.util.List 
          getPlayerInfoOrBuilderList() {
        return playerInfo_;
      }
      /**
       * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
       */
      public int getPlayerInfoCount() {
        return playerInfo_.size();
      }
      /**
       * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
       */
      public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo getPlayerInfo(int index) {
        return playerInfo_.get(index);
      }
      /**
       * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
       */
      public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfoOrBuilder getPlayerInfoOrBuilder(
          int index) {
        return playerInfo_.get(index);
      }

      public static final int LEAGUEID_FIELD_NUMBER = 5;
      private int leagueid_;
      /**
       * optional uint32 leagueid = 5;
       */
      public boolean hasLeagueid() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional uint32 leagueid = 5;
       */
      public int getLeagueid() {
        return leagueid_;
      }

      public static final int PICKS_BANS_FIELD_NUMBER = 6;
      private java.util.List picksBans_;
      /**
       * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
       */
      public java.util.List getPicksBansList() {
        return picksBans_;
      }
      /**
       * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
       */
      public java.util.List 
          getPicksBansOrBuilderList() {
        return picksBans_;
      }
      /**
       * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
       */
      public int getPicksBansCount() {
        return picksBans_.size();
      }
      /**
       * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
       */
      public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent getPicksBans(int index) {
        return picksBans_.get(index);
      }
      /**
       * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
       */
      public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEventOrBuilder getPicksBansOrBuilder(
          int index) {
        return picksBans_.get(index);
      }

      public static final int RADIANT_TEAM_ID_FIELD_NUMBER = 7;
      private int radiantTeamId_;
      /**
       * optional uint32 radiant_team_id = 7;
       */
      public boolean hasRadiantTeamId() {
        return ((bitField0_ & 0x00000010) == 0x00000010);
      }
      /**
       * optional uint32 radiant_team_id = 7;
       */
      public int getRadiantTeamId() {
        return radiantTeamId_;
      }

      public static final int DIRE_TEAM_ID_FIELD_NUMBER = 8;
      private int direTeamId_;
      /**
       * optional uint32 dire_team_id = 8;
       */
      public boolean hasDireTeamId() {
        return ((bitField0_ & 0x00000020) == 0x00000020);
      }
      /**
       * optional uint32 dire_team_id = 8;
       */
      public int getDireTeamId() {
        return direTeamId_;
      }

      public static final int RADIANT_TEAM_TAG_FIELD_NUMBER = 9;
      private java.lang.Object radiantTeamTag_;
      /**
       * optional string radiant_team_tag = 9;
       */
      public boolean hasRadiantTeamTag() {
        return ((bitField0_ & 0x00000040) == 0x00000040);
      }
      /**
       * optional string radiant_team_tag = 9;
       */
      public java.lang.String getRadiantTeamTag() {
        java.lang.Object ref = radiantTeamTag_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            radiantTeamTag_ = s;
          }
          return s;
        }
      }
      /**
       * optional string radiant_team_tag = 9;
       */
      public com.google.protobuf.ByteString
          getRadiantTeamTagBytes() {
        java.lang.Object ref = radiantTeamTag_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          radiantTeamTag_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int DIRE_TEAM_TAG_FIELD_NUMBER = 10;
      private java.lang.Object direTeamTag_;
      /**
       * optional string dire_team_tag = 10;
       */
      public boolean hasDireTeamTag() {
        return ((bitField0_ & 0x00000080) == 0x00000080);
      }
      /**
       * optional string dire_team_tag = 10;
       */
      public java.lang.String getDireTeamTag() {
        java.lang.Object ref = direTeamTag_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            direTeamTag_ = s;
          }
          return s;
        }
      }
      /**
       * optional string dire_team_tag = 10;
       */
      public com.google.protobuf.ByteString
          getDireTeamTagBytes() {
        java.lang.Object ref = direTeamTag_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          direTeamTag_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int END_TIME_FIELD_NUMBER = 11;
      private int endTime_;
      /**
       * optional uint32 end_time = 11;
       */
      public boolean hasEndTime() {
        return ((bitField0_ & 0x00000100) == 0x00000100);
      }
      /**
       * optional uint32 end_time = 11;
       */
      public int getEndTime() {
        return endTime_;
      }

      private void initFields() {
        matchId_ = 0L;
        gameMode_ = 0;
        gameWinner_ = 0;
        playerInfo_ = java.util.Collections.emptyList();
        leagueid_ = 0;
        picksBans_ = java.util.Collections.emptyList();
        radiantTeamId_ = 0;
        direTeamId_ = 0;
        radiantTeamTag_ = "";
        direTeamTag_ = "";
        endTime_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeUInt64(1, matchId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(2, gameMode_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeInt32(3, gameWinner_);
        }
        for (int i = 0; i < playerInfo_.size(); i++) {
          output.writeMessage(4, playerInfo_.get(i));
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          output.writeUInt32(5, leagueid_);
        }
        for (int i = 0; i < picksBans_.size(); i++) {
          output.writeMessage(6, picksBans_.get(i));
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          output.writeUInt32(7, radiantTeamId_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          output.writeUInt32(8, direTeamId_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          output.writeBytes(9, getRadiantTeamTagBytes());
        }
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          output.writeBytes(10, getDireTeamTagBytes());
        }
        if (((bitField0_ & 0x00000100) == 0x00000100)) {
          output.writeUInt32(11, endTime_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt64Size(1, matchId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(2, gameMode_);
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(3, gameWinner_);
        }
        for (int i = 0; i < playerInfo_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(4, playerInfo_.get(i));
        }
        if (((bitField0_ & 0x00000008) == 0x00000008)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(5, leagueid_);
        }
        for (int i = 0; i < picksBans_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(6, picksBans_.get(i));
        }
        if (((bitField0_ & 0x00000010) == 0x00000010)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(7, radiantTeamId_);
        }
        if (((bitField0_ & 0x00000020) == 0x00000020)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(8, direTeamId_);
        }
        if (((bitField0_ & 0x00000040) == 0x00000040)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(9, getRadiantTeamTagBytes());
        }
        if (((bitField0_ & 0x00000080) == 0x00000080)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(10, getDireTeamTagBytes());
        }
        if (((bitField0_ & 0x00000100) == 0x00000100)) {
          size += com.google.protobuf.CodedOutputStream
            .computeUInt32Size(11, endTime_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CGameInfo.CDotaGameInfo}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CGameInfo.CDotaGameInfo)
          skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfoOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.Demo.internal_static_CGameInfo_CDotaGameInfo_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.Demo.internal_static_CGameInfo_CDotaGameInfo_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.class, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getPlayerInfoFieldBuilder();
            getPicksBansFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          matchId_ = 0L;
          bitField0_ = (bitField0_ & ~0x00000001);
          gameMode_ = 0;
          bitField0_ = (bitField0_ & ~0x00000002);
          gameWinner_ = 0;
          bitField0_ = (bitField0_ & ~0x00000004);
          if (playerInfoBuilder_ == null) {
            playerInfo_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000008);
          } else {
            playerInfoBuilder_.clear();
          }
          leagueid_ = 0;
          bitField0_ = (bitField0_ & ~0x00000010);
          if (picksBansBuilder_ == null) {
            picksBans_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000020);
          } else {
            picksBansBuilder_.clear();
          }
          radiantTeamId_ = 0;
          bitField0_ = (bitField0_ & ~0x00000040);
          direTeamId_ = 0;
          bitField0_ = (bitField0_ & ~0x00000080);
          radiantTeamTag_ = "";
          bitField0_ = (bitField0_ & ~0x00000100);
          direTeamTag_ = "";
          bitField0_ = (bitField0_ & ~0x00000200);
          endTime_ = 0;
          bitField0_ = (bitField0_ & ~0x00000400);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.Demo.internal_static_CGameInfo_CDotaGameInfo_descriptor;
        }

        public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo build() {
          skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo buildPartial() {
          skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo result = new skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.matchId_ = matchId_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.gameMode_ = gameMode_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.gameWinner_ = gameWinner_;
          if (playerInfoBuilder_ == null) {
            if (((bitField0_ & 0x00000008) == 0x00000008)) {
              playerInfo_ = java.util.Collections.unmodifiableList(playerInfo_);
              bitField0_ = (bitField0_ & ~0x00000008);
            }
            result.playerInfo_ = playerInfo_;
          } else {
            result.playerInfo_ = playerInfoBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000010) == 0x00000010)) {
            to_bitField0_ |= 0x00000008;
          }
          result.leagueid_ = leagueid_;
          if (picksBansBuilder_ == null) {
            if (((bitField0_ & 0x00000020) == 0x00000020)) {
              picksBans_ = java.util.Collections.unmodifiableList(picksBans_);
              bitField0_ = (bitField0_ & ~0x00000020);
            }
            result.picksBans_ = picksBans_;
          } else {
            result.picksBans_ = picksBansBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000040) == 0x00000040)) {
            to_bitField0_ |= 0x00000010;
          }
          result.radiantTeamId_ = radiantTeamId_;
          if (((from_bitField0_ & 0x00000080) == 0x00000080)) {
            to_bitField0_ |= 0x00000020;
          }
          result.direTeamId_ = direTeamId_;
          if (((from_bitField0_ & 0x00000100) == 0x00000100)) {
            to_bitField0_ |= 0x00000040;
          }
          result.radiantTeamTag_ = radiantTeamTag_;
          if (((from_bitField0_ & 0x00000200) == 0x00000200)) {
            to_bitField0_ |= 0x00000080;
          }
          result.direTeamTag_ = direTeamTag_;
          if (((from_bitField0_ & 0x00000400) == 0x00000400)) {
            to_bitField0_ |= 0x00000100;
          }
          result.endTime_ = endTime_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo) {
            return mergeFrom((skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo other) {
          if (other == skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.getDefaultInstance()) return this;
          if (other.hasMatchId()) {
            setMatchId(other.getMatchId());
          }
          if (other.hasGameMode()) {
            setGameMode(other.getGameMode());
          }
          if (other.hasGameWinner()) {
            setGameWinner(other.getGameWinner());
          }
          if (playerInfoBuilder_ == null) {
            if (!other.playerInfo_.isEmpty()) {
              if (playerInfo_.isEmpty()) {
                playerInfo_ = other.playerInfo_;
                bitField0_ = (bitField0_ & ~0x00000008);
              } else {
                ensurePlayerInfoIsMutable();
                playerInfo_.addAll(other.playerInfo_);
              }
              onChanged();
            }
          } else {
            if (!other.playerInfo_.isEmpty()) {
              if (playerInfoBuilder_.isEmpty()) {
                playerInfoBuilder_.dispose();
                playerInfoBuilder_ = null;
                playerInfo_ = other.playerInfo_;
                bitField0_ = (bitField0_ & ~0x00000008);
                playerInfoBuilder_ = 
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getPlayerInfoFieldBuilder() : null;
              } else {
                playerInfoBuilder_.addAllMessages(other.playerInfo_);
              }
            }
          }
          if (other.hasLeagueid()) {
            setLeagueid(other.getLeagueid());
          }
          if (picksBansBuilder_ == null) {
            if (!other.picksBans_.isEmpty()) {
              if (picksBans_.isEmpty()) {
                picksBans_ = other.picksBans_;
                bitField0_ = (bitField0_ & ~0x00000020);
              } else {
                ensurePicksBansIsMutable();
                picksBans_.addAll(other.picksBans_);
              }
              onChanged();
            }
          } else {
            if (!other.picksBans_.isEmpty()) {
              if (picksBansBuilder_.isEmpty()) {
                picksBansBuilder_.dispose();
                picksBansBuilder_ = null;
                picksBans_ = other.picksBans_;
                bitField0_ = (bitField0_ & ~0x00000020);
                picksBansBuilder_ = 
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getPicksBansFieldBuilder() : null;
              } else {
                picksBansBuilder_.addAllMessages(other.picksBans_);
              }
            }
          }
          if (other.hasRadiantTeamId()) {
            setRadiantTeamId(other.getRadiantTeamId());
          }
          if (other.hasDireTeamId()) {
            setDireTeamId(other.getDireTeamId());
          }
          if (other.hasRadiantTeamTag()) {
            bitField0_ |= 0x00000100;
            radiantTeamTag_ = other.radiantTeamTag_;
            onChanged();
          }
          if (other.hasDireTeamTag()) {
            bitField0_ |= 0x00000200;
            direTeamTag_ = other.direTeamTag_;
            onChanged();
          }
          if (other.hasEndTime()) {
            setEndTime(other.getEndTime());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private long matchId_ ;
        /**
         * optional uint64 match_id = 1;
         */
        public boolean hasMatchId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional uint64 match_id = 1;
         */
        public long getMatchId() {
          return matchId_;
        }
        /**
         * optional uint64 match_id = 1;
         */
        public Builder setMatchId(long value) {
          bitField0_ |= 0x00000001;
          matchId_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint64 match_id = 1;
         */
        public Builder clearMatchId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          matchId_ = 0L;
          onChanged();
          return this;
        }

        private int gameMode_ ;
        /**
         * optional int32 game_mode = 2;
         */
        public boolean hasGameMode() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional int32 game_mode = 2;
         */
        public int getGameMode() {
          return gameMode_;
        }
        /**
         * optional int32 game_mode = 2;
         */
        public Builder setGameMode(int value) {
          bitField0_ |= 0x00000002;
          gameMode_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 game_mode = 2;
         */
        public Builder clearGameMode() {
          bitField0_ = (bitField0_ & ~0x00000002);
          gameMode_ = 0;
          onChanged();
          return this;
        }

        private int gameWinner_ ;
        /**
         * optional int32 game_winner = 3;
         */
        public boolean hasGameWinner() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional int32 game_winner = 3;
         */
        public int getGameWinner() {
          return gameWinner_;
        }
        /**
         * optional int32 game_winner = 3;
         */
        public Builder setGameWinner(int value) {
          bitField0_ |= 0x00000004;
          gameWinner_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 game_winner = 3;
         */
        public Builder clearGameWinner() {
          bitField0_ = (bitField0_ & ~0x00000004);
          gameWinner_ = 0;
          onChanged();
          return this;
        }

        private java.util.List playerInfo_ =
          java.util.Collections.emptyList();
        private void ensurePlayerInfoIsMutable() {
          if (!((bitField0_ & 0x00000008) == 0x00000008)) {
            playerInfo_ = new java.util.ArrayList(playerInfo_);
            bitField0_ |= 0x00000008;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilder<
            skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo.Builder, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfoOrBuilder> playerInfoBuilder_;

        /**
         * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
         */
        public java.util.List getPlayerInfoList() {
          if (playerInfoBuilder_ == null) {
            return java.util.Collections.unmodifiableList(playerInfo_);
          } else {
            return playerInfoBuilder_.getMessageList();
          }
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
         */
        public int getPlayerInfoCount() {
          if (playerInfoBuilder_ == null) {
            return playerInfo_.size();
          } else {
            return playerInfoBuilder_.getCount();
          }
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
         */
        public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo getPlayerInfo(int index) {
          if (playerInfoBuilder_ == null) {
            return playerInfo_.get(index);
          } else {
            return playerInfoBuilder_.getMessage(index);
          }
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
         */
        public Builder setPlayerInfo(
            int index, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo value) {
          if (playerInfoBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePlayerInfoIsMutable();
            playerInfo_.set(index, value);
            onChanged();
          } else {
            playerInfoBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
         */
        public Builder setPlayerInfo(
            int index, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo.Builder builderForValue) {
          if (playerInfoBuilder_ == null) {
            ensurePlayerInfoIsMutable();
            playerInfo_.set(index, builderForValue.build());
            onChanged();
          } else {
            playerInfoBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
         */
        public Builder addPlayerInfo(skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo value) {
          if (playerInfoBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePlayerInfoIsMutable();
            playerInfo_.add(value);
            onChanged();
          } else {
            playerInfoBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
         */
        public Builder addPlayerInfo(
            int index, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo value) {
          if (playerInfoBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePlayerInfoIsMutable();
            playerInfo_.add(index, value);
            onChanged();
          } else {
            playerInfoBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
         */
        public Builder addPlayerInfo(
            skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo.Builder builderForValue) {
          if (playerInfoBuilder_ == null) {
            ensurePlayerInfoIsMutable();
            playerInfo_.add(builderForValue.build());
            onChanged();
          } else {
            playerInfoBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
         */
        public Builder addPlayerInfo(
            int index, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo.Builder builderForValue) {
          if (playerInfoBuilder_ == null) {
            ensurePlayerInfoIsMutable();
            playerInfo_.add(index, builderForValue.build());
            onChanged();
          } else {
            playerInfoBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
         */
        public Builder addAllPlayerInfo(
            java.lang.Iterable values) {
          if (playerInfoBuilder_ == null) {
            ensurePlayerInfoIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, playerInfo_);
            onChanged();
          } else {
            playerInfoBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
         */
        public Builder clearPlayerInfo() {
          if (playerInfoBuilder_ == null) {
            playerInfo_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000008);
            onChanged();
          } else {
            playerInfoBuilder_.clear();
          }
          return this;
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
         */
        public Builder removePlayerInfo(int index) {
          if (playerInfoBuilder_ == null) {
            ensurePlayerInfoIsMutable();
            playerInfo_.remove(index);
            onChanged();
          } else {
            playerInfoBuilder_.remove(index);
          }
          return this;
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
         */
        public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo.Builder getPlayerInfoBuilder(
            int index) {
          return getPlayerInfoFieldBuilder().getBuilder(index);
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
         */
        public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfoOrBuilder getPlayerInfoOrBuilder(
            int index) {
          if (playerInfoBuilder_ == null) {
            return playerInfo_.get(index);  } else {
            return playerInfoBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
         */
        public java.util.List 
             getPlayerInfoOrBuilderList() {
          if (playerInfoBuilder_ != null) {
            return playerInfoBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(playerInfo_);
          }
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
         */
        public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo.Builder addPlayerInfoBuilder() {
          return getPlayerInfoFieldBuilder().addBuilder(
              skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo.getDefaultInstance());
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
         */
        public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo.Builder addPlayerInfoBuilder(
            int index) {
          return getPlayerInfoFieldBuilder().addBuilder(
              index, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo.getDefaultInstance());
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CPlayerInfo player_info = 4;
         */
        public java.util.List 
             getPlayerInfoBuilderList() {
          return getPlayerInfoFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilder<
            skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo.Builder, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfoOrBuilder> 
            getPlayerInfoFieldBuilder() {
          if (playerInfoBuilder_ == null) {
            playerInfoBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfo.Builder, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CPlayerInfoOrBuilder>(
                    playerInfo_,
                    ((bitField0_ & 0x00000008) == 0x00000008),
                    getParentForChildren(),
                    isClean());
            playerInfo_ = null;
          }
          return playerInfoBuilder_;
        }

        private int leagueid_ ;
        /**
         * optional uint32 leagueid = 5;
         */
        public boolean hasLeagueid() {
          return ((bitField0_ & 0x00000010) == 0x00000010);
        }
        /**
         * optional uint32 leagueid = 5;
         */
        public int getLeagueid() {
          return leagueid_;
        }
        /**
         * optional uint32 leagueid = 5;
         */
        public Builder setLeagueid(int value) {
          bitField0_ |= 0x00000010;
          leagueid_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 leagueid = 5;
         */
        public Builder clearLeagueid() {
          bitField0_ = (bitField0_ & ~0x00000010);
          leagueid_ = 0;
          onChanged();
          return this;
        }

        private java.util.List picksBans_ =
          java.util.Collections.emptyList();
        private void ensurePicksBansIsMutable() {
          if (!((bitField0_ & 0x00000020) == 0x00000020)) {
            picksBans_ = new java.util.ArrayList(picksBans_);
            bitField0_ |= 0x00000020;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilder<
            skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent.Builder, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEventOrBuilder> picksBansBuilder_;

        /**
         * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
         */
        public java.util.List getPicksBansList() {
          if (picksBansBuilder_ == null) {
            return java.util.Collections.unmodifiableList(picksBans_);
          } else {
            return picksBansBuilder_.getMessageList();
          }
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
         */
        public int getPicksBansCount() {
          if (picksBansBuilder_ == null) {
            return picksBans_.size();
          } else {
            return picksBansBuilder_.getCount();
          }
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
         */
        public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent getPicksBans(int index) {
          if (picksBansBuilder_ == null) {
            return picksBans_.get(index);
          } else {
            return picksBansBuilder_.getMessage(index);
          }
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
         */
        public Builder setPicksBans(
            int index, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent value) {
          if (picksBansBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePicksBansIsMutable();
            picksBans_.set(index, value);
            onChanged();
          } else {
            picksBansBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
         */
        public Builder setPicksBans(
            int index, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent.Builder builderForValue) {
          if (picksBansBuilder_ == null) {
            ensurePicksBansIsMutable();
            picksBans_.set(index, builderForValue.build());
            onChanged();
          } else {
            picksBansBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
         */
        public Builder addPicksBans(skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent value) {
          if (picksBansBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePicksBansIsMutable();
            picksBans_.add(value);
            onChanged();
          } else {
            picksBansBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
         */
        public Builder addPicksBans(
            int index, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent value) {
          if (picksBansBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensurePicksBansIsMutable();
            picksBans_.add(index, value);
            onChanged();
          } else {
            picksBansBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
         */
        public Builder addPicksBans(
            skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent.Builder builderForValue) {
          if (picksBansBuilder_ == null) {
            ensurePicksBansIsMutable();
            picksBans_.add(builderForValue.build());
            onChanged();
          } else {
            picksBansBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
         */
        public Builder addPicksBans(
            int index, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent.Builder builderForValue) {
          if (picksBansBuilder_ == null) {
            ensurePicksBansIsMutable();
            picksBans_.add(index, builderForValue.build());
            onChanged();
          } else {
            picksBansBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
         */
        public Builder addAllPicksBans(
            java.lang.Iterable values) {
          if (picksBansBuilder_ == null) {
            ensurePicksBansIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, picksBans_);
            onChanged();
          } else {
            picksBansBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
         */
        public Builder clearPicksBans() {
          if (picksBansBuilder_ == null) {
            picksBans_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000020);
            onChanged();
          } else {
            picksBansBuilder_.clear();
          }
          return this;
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
         */
        public Builder removePicksBans(int index) {
          if (picksBansBuilder_ == null) {
            ensurePicksBansIsMutable();
            picksBans_.remove(index);
            onChanged();
          } else {
            picksBansBuilder_.remove(index);
          }
          return this;
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
         */
        public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent.Builder getPicksBansBuilder(
            int index) {
          return getPicksBansFieldBuilder().getBuilder(index);
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
         */
        public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEventOrBuilder getPicksBansOrBuilder(
            int index) {
          if (picksBansBuilder_ == null) {
            return picksBans_.get(index);  } else {
            return picksBansBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
         */
        public java.util.List 
             getPicksBansOrBuilderList() {
          if (picksBansBuilder_ != null) {
            return picksBansBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(picksBans_);
          }
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
         */
        public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent.Builder addPicksBansBuilder() {
          return getPicksBansFieldBuilder().addBuilder(
              skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent.getDefaultInstance());
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
         */
        public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent.Builder addPicksBansBuilder(
            int index) {
          return getPicksBansFieldBuilder().addBuilder(
              index, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent.getDefaultInstance());
        }
        /**
         * repeated .CGameInfo.CDotaGameInfo.CHeroSelectEvent picks_bans = 6;
         */
        public java.util.List 
             getPicksBansBuilderList() {
          return getPicksBansFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilder<
            skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent.Builder, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEventOrBuilder> 
            getPicksBansFieldBuilder() {
          if (picksBansBuilder_ == null) {
            picksBansBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEvent.Builder, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.CHeroSelectEventOrBuilder>(
                    picksBans_,
                    ((bitField0_ & 0x00000020) == 0x00000020),
                    getParentForChildren(),
                    isClean());
            picksBans_ = null;
          }
          return picksBansBuilder_;
        }

        private int radiantTeamId_ ;
        /**
         * optional uint32 radiant_team_id = 7;
         */
        public boolean hasRadiantTeamId() {
          return ((bitField0_ & 0x00000040) == 0x00000040);
        }
        /**
         * optional uint32 radiant_team_id = 7;
         */
        public int getRadiantTeamId() {
          return radiantTeamId_;
        }
        /**
         * optional uint32 radiant_team_id = 7;
         */
        public Builder setRadiantTeamId(int value) {
          bitField0_ |= 0x00000040;
          radiantTeamId_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 radiant_team_id = 7;
         */
        public Builder clearRadiantTeamId() {
          bitField0_ = (bitField0_ & ~0x00000040);
          radiantTeamId_ = 0;
          onChanged();
          return this;
        }

        private int direTeamId_ ;
        /**
         * optional uint32 dire_team_id = 8;
         */
        public boolean hasDireTeamId() {
          return ((bitField0_ & 0x00000080) == 0x00000080);
        }
        /**
         * optional uint32 dire_team_id = 8;
         */
        public int getDireTeamId() {
          return direTeamId_;
        }
        /**
         * optional uint32 dire_team_id = 8;
         */
        public Builder setDireTeamId(int value) {
          bitField0_ |= 0x00000080;
          direTeamId_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 dire_team_id = 8;
         */
        public Builder clearDireTeamId() {
          bitField0_ = (bitField0_ & ~0x00000080);
          direTeamId_ = 0;
          onChanged();
          return this;
        }

        private java.lang.Object radiantTeamTag_ = "";
        /**
         * optional string radiant_team_tag = 9;
         */
        public boolean hasRadiantTeamTag() {
          return ((bitField0_ & 0x00000100) == 0x00000100);
        }
        /**
         * optional string radiant_team_tag = 9;
         */
        public java.lang.String getRadiantTeamTag() {
          java.lang.Object ref = radiantTeamTag_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              radiantTeamTag_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * optional string radiant_team_tag = 9;
         */
        public com.google.protobuf.ByteString
            getRadiantTeamTagBytes() {
          java.lang.Object ref = radiantTeamTag_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            radiantTeamTag_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * optional string radiant_team_tag = 9;
         */
        public Builder setRadiantTeamTag(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000100;
          radiantTeamTag_ = value;
          onChanged();
          return this;
        }
        /**
         * optional string radiant_team_tag = 9;
         */
        public Builder clearRadiantTeamTag() {
          bitField0_ = (bitField0_ & ~0x00000100);
          radiantTeamTag_ = getDefaultInstance().getRadiantTeamTag();
          onChanged();
          return this;
        }
        /**
         * optional string radiant_team_tag = 9;
         */
        public Builder setRadiantTeamTagBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000100;
          radiantTeamTag_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object direTeamTag_ = "";
        /**
         * optional string dire_team_tag = 10;
         */
        public boolean hasDireTeamTag() {
          return ((bitField0_ & 0x00000200) == 0x00000200);
        }
        /**
         * optional string dire_team_tag = 10;
         */
        public java.lang.String getDireTeamTag() {
          java.lang.Object ref = direTeamTag_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              direTeamTag_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * optional string dire_team_tag = 10;
         */
        public com.google.protobuf.ByteString
            getDireTeamTagBytes() {
          java.lang.Object ref = direTeamTag_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            direTeamTag_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * optional string dire_team_tag = 10;
         */
        public Builder setDireTeamTag(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
          direTeamTag_ = value;
          onChanged();
          return this;
        }
        /**
         * optional string dire_team_tag = 10;
         */
        public Builder clearDireTeamTag() {
          bitField0_ = (bitField0_ & ~0x00000200);
          direTeamTag_ = getDefaultInstance().getDireTeamTag();
          onChanged();
          return this;
        }
        /**
         * optional string dire_team_tag = 10;
         */
        public Builder setDireTeamTagBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000200;
          direTeamTag_ = value;
          onChanged();
          return this;
        }

        private int endTime_ ;
        /**
         * optional uint32 end_time = 11;
         */
        public boolean hasEndTime() {
          return ((bitField0_ & 0x00000400) == 0x00000400);
        }
        /**
         * optional uint32 end_time = 11;
         */
        public int getEndTime() {
          return endTime_;
        }
        /**
         * optional uint32 end_time = 11;
         */
        public Builder setEndTime(int value) {
          bitField0_ |= 0x00000400;
          endTime_ = value;
          onChanged();
          return this;
        }
        /**
         * optional uint32 end_time = 11;
         */
        public Builder clearEndTime() {
          bitField0_ = (bitField0_ & ~0x00000400);
          endTime_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CGameInfo.CDotaGameInfo)
      }

      static {
        defaultInstance = new CDotaGameInfo(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CGameInfo.CDotaGameInfo)
    }

    private int bitField0_;
    public static final int DOTA_FIELD_NUMBER = 4;
    private skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo dota_;
    /**
     * optional .CGameInfo.CDotaGameInfo dota = 4;
     */
    public boolean hasDota() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .CGameInfo.CDotaGameInfo dota = 4;
     */
    public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo getDota() {
      return dota_;
    }
    /**
     * optional .CGameInfo.CDotaGameInfo dota = 4;
     */
    public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfoOrBuilder getDotaOrBuilder() {
      return dota_;
    }

    private void initFields() {
      dota_ = skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(4, dota_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, dota_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.Demo.CGameInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CGameInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CGameInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CGameInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CGameInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CGameInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CGameInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CGameInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CGameInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CGameInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.Demo.CGameInfo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CGameInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CGameInfo)
        skadistats.clarity.wire.common.proto.Demo.CGameInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CGameInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CGameInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.Demo.CGameInfo.class, skadistats.clarity.wire.common.proto.Demo.CGameInfo.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.Demo.CGameInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getDotaFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (dotaBuilder_ == null) {
          dota_ = skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.getDefaultInstance();
        } else {
          dotaBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CGameInfo_descriptor;
      }

      public skadistats.clarity.wire.common.proto.Demo.CGameInfo getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.Demo.CGameInfo.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.Demo.CGameInfo build() {
        skadistats.clarity.wire.common.proto.Demo.CGameInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.Demo.CGameInfo buildPartial() {
        skadistats.clarity.wire.common.proto.Demo.CGameInfo result = new skadistats.clarity.wire.common.proto.Demo.CGameInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (dotaBuilder_ == null) {
          result.dota_ = dota_;
        } else {
          result.dota_ = dotaBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.Demo.CGameInfo) {
          return mergeFrom((skadistats.clarity.wire.common.proto.Demo.CGameInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.Demo.CGameInfo other) {
        if (other == skadistats.clarity.wire.common.proto.Demo.CGameInfo.getDefaultInstance()) return this;
        if (other.hasDota()) {
          mergeDota(other.getDota());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.Demo.CGameInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.Demo.CGameInfo) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo dota_ = skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.Builder, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfoOrBuilder> dotaBuilder_;
      /**
       * optional .CGameInfo.CDotaGameInfo dota = 4;
       */
      public boolean hasDota() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .CGameInfo.CDotaGameInfo dota = 4;
       */
      public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo getDota() {
        if (dotaBuilder_ == null) {
          return dota_;
        } else {
          return dotaBuilder_.getMessage();
        }
      }
      /**
       * optional .CGameInfo.CDotaGameInfo dota = 4;
       */
      public Builder setDota(skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo value) {
        if (dotaBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          dota_ = value;
          onChanged();
        } else {
          dotaBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CGameInfo.CDotaGameInfo dota = 4;
       */
      public Builder setDota(
          skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.Builder builderForValue) {
        if (dotaBuilder_ == null) {
          dota_ = builderForValue.build();
          onChanged();
        } else {
          dotaBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CGameInfo.CDotaGameInfo dota = 4;
       */
      public Builder mergeDota(skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo value) {
        if (dotaBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              dota_ != skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.getDefaultInstance()) {
            dota_ =
              skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.newBuilder(dota_).mergeFrom(value).buildPartial();
          } else {
            dota_ = value;
          }
          onChanged();
        } else {
          dotaBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CGameInfo.CDotaGameInfo dota = 4;
       */
      public Builder clearDota() {
        if (dotaBuilder_ == null) {
          dota_ = skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.getDefaultInstance();
          onChanged();
        } else {
          dotaBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * optional .CGameInfo.CDotaGameInfo dota = 4;
       */
      public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.Builder getDotaBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getDotaFieldBuilder().getBuilder();
      }
      /**
       * optional .CGameInfo.CDotaGameInfo dota = 4;
       */
      public skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfoOrBuilder getDotaOrBuilder() {
        if (dotaBuilder_ != null) {
          return dotaBuilder_.getMessageOrBuilder();
        } else {
          return dota_;
        }
      }
      /**
       * optional .CGameInfo.CDotaGameInfo dota = 4;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.Builder, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfoOrBuilder> 
          getDotaFieldBuilder() {
        if (dotaBuilder_ == null) {
          dotaBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfo.Builder, skadistats.clarity.wire.common.proto.Demo.CGameInfo.CDotaGameInfoOrBuilder>(
                  getDota(),
                  getParentForChildren(),
                  isClean());
          dota_ = null;
        }
        return dotaBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CGameInfo)
    }

    static {
      defaultInstance = new CGameInfo(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CGameInfo)
  }

  public interface CDemoFileInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDemoFileInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional float playback_time = 1;
     */
    boolean hasPlaybackTime();
    /**
     * optional float playback_time = 1;
     */
    float getPlaybackTime();

    /**
     * optional int32 playback_ticks = 2;
     */
    boolean hasPlaybackTicks();
    /**
     * optional int32 playback_ticks = 2;
     */
    int getPlaybackTicks();

    /**
     * optional int32 playback_frames = 3;
     */
    boolean hasPlaybackFrames();
    /**
     * optional int32 playback_frames = 3;
     */
    int getPlaybackFrames();

    /**
     * optional .CGameInfo game_info = 4;
     */
    boolean hasGameInfo();
    /**
     * optional .CGameInfo game_info = 4;
     */
    skadistats.clarity.wire.common.proto.Demo.CGameInfo getGameInfo();
    /**
     * optional .CGameInfo game_info = 4;
     */
    skadistats.clarity.wire.common.proto.Demo.CGameInfoOrBuilder getGameInfoOrBuilder();
  }
  /**
   * Protobuf type {@code CDemoFileInfo}
   */
  public static final class CDemoFileInfo extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDemoFileInfo)
      CDemoFileInfoOrBuilder {
    // Use CDemoFileInfo.newBuilder() to construct.
    private CDemoFileInfo(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDemoFileInfo(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDemoFileInfo defaultInstance;
    public static CDemoFileInfo getDefaultInstance() {
      return defaultInstance;
    }

    public CDemoFileInfo getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDemoFileInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 13: {
              bitField0_ |= 0x00000001;
              playbackTime_ = input.readFloat();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              playbackTicks_ = input.readInt32();
              break;
            }
            case 24: {
              bitField0_ |= 0x00000004;
              playbackFrames_ = input.readInt32();
              break;
            }
            case 34: {
              skadistats.clarity.wire.common.proto.Demo.CGameInfo.Builder subBuilder = null;
              if (((bitField0_ & 0x00000008) == 0x00000008)) {
                subBuilder = gameInfo_.toBuilder();
              }
              gameInfo_ = input.readMessage(skadistats.clarity.wire.common.proto.Demo.CGameInfo.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(gameInfo_);
                gameInfo_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000008;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoFileInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoFileInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo.class, skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDemoFileInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDemoFileInfo(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int PLAYBACK_TIME_FIELD_NUMBER = 1;
    private float playbackTime_;
    /**
     * optional float playback_time = 1;
     */
    public boolean hasPlaybackTime() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional float playback_time = 1;
     */
    public float getPlaybackTime() {
      return playbackTime_;
    }

    public static final int PLAYBACK_TICKS_FIELD_NUMBER = 2;
    private int playbackTicks_;
    /**
     * optional int32 playback_ticks = 2;
     */
    public boolean hasPlaybackTicks() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 playback_ticks = 2;
     */
    public int getPlaybackTicks() {
      return playbackTicks_;
    }

    public static final int PLAYBACK_FRAMES_FIELD_NUMBER = 3;
    private int playbackFrames_;
    /**
     * optional int32 playback_frames = 3;
     */
    public boolean hasPlaybackFrames() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional int32 playback_frames = 3;
     */
    public int getPlaybackFrames() {
      return playbackFrames_;
    }

    public static final int GAME_INFO_FIELD_NUMBER = 4;
    private skadistats.clarity.wire.common.proto.Demo.CGameInfo gameInfo_;
    /**
     * optional .CGameInfo game_info = 4;
     */
    public boolean hasGameInfo() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional .CGameInfo game_info = 4;
     */
    public skadistats.clarity.wire.common.proto.Demo.CGameInfo getGameInfo() {
      return gameInfo_;
    }
    /**
     * optional .CGameInfo game_info = 4;
     */
    public skadistats.clarity.wire.common.proto.Demo.CGameInfoOrBuilder getGameInfoOrBuilder() {
      return gameInfo_;
    }

    private void initFields() {
      playbackTime_ = 0F;
      playbackTicks_ = 0;
      playbackFrames_ = 0;
      gameInfo_ = skadistats.clarity.wire.common.proto.Demo.CGameInfo.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeFloat(1, playbackTime_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, playbackTicks_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeInt32(3, playbackFrames_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeMessage(4, gameInfo_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFloatSize(1, playbackTime_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, playbackTicks_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(3, playbackFrames_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(4, gameInfo_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDemoFileInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDemoFileInfo)
        skadistats.clarity.wire.common.proto.Demo.CDemoFileInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoFileInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoFileInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo.class, skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getGameInfoFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        playbackTime_ = 0F;
        bitField0_ = (bitField0_ & ~0x00000001);
        playbackTicks_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        playbackFrames_ = 0;
        bitField0_ = (bitField0_ & ~0x00000004);
        if (gameInfoBuilder_ == null) {
          gameInfo_ = skadistats.clarity.wire.common.proto.Demo.CGameInfo.getDefaultInstance();
        } else {
          gameInfoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoFileInfo_descriptor;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo build() {
        skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo buildPartial() {
        skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo result = new skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.playbackTime_ = playbackTime_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.playbackTicks_ = playbackTicks_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.playbackFrames_ = playbackFrames_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        if (gameInfoBuilder_ == null) {
          result.gameInfo_ = gameInfo_;
        } else {
          result.gameInfo_ = gameInfoBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo) {
          return mergeFrom((skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo other) {
        if (other == skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo.getDefaultInstance()) return this;
        if (other.hasPlaybackTime()) {
          setPlaybackTime(other.getPlaybackTime());
        }
        if (other.hasPlaybackTicks()) {
          setPlaybackTicks(other.getPlaybackTicks());
        }
        if (other.hasPlaybackFrames()) {
          setPlaybackFrames(other.getPlaybackFrames());
        }
        if (other.hasGameInfo()) {
          mergeGameInfo(other.getGameInfo());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.Demo.CDemoFileInfo) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private float playbackTime_ ;
      /**
       * optional float playback_time = 1;
       */
      public boolean hasPlaybackTime() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional float playback_time = 1;
       */
      public float getPlaybackTime() {
        return playbackTime_;
      }
      /**
       * optional float playback_time = 1;
       */
      public Builder setPlaybackTime(float value) {
        bitField0_ |= 0x00000001;
        playbackTime_ = value;
        onChanged();
        return this;
      }
      /**
       * optional float playback_time = 1;
       */
      public Builder clearPlaybackTime() {
        bitField0_ = (bitField0_ & ~0x00000001);
        playbackTime_ = 0F;
        onChanged();
        return this;
      }

      private int playbackTicks_ ;
      /**
       * optional int32 playback_ticks = 2;
       */
      public boolean hasPlaybackTicks() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 playback_ticks = 2;
       */
      public int getPlaybackTicks() {
        return playbackTicks_;
      }
      /**
       * optional int32 playback_ticks = 2;
       */
      public Builder setPlaybackTicks(int value) {
        bitField0_ |= 0x00000002;
        playbackTicks_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 playback_ticks = 2;
       */
      public Builder clearPlaybackTicks() {
        bitField0_ = (bitField0_ & ~0x00000002);
        playbackTicks_ = 0;
        onChanged();
        return this;
      }

      private int playbackFrames_ ;
      /**
       * optional int32 playback_frames = 3;
       */
      public boolean hasPlaybackFrames() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional int32 playback_frames = 3;
       */
      public int getPlaybackFrames() {
        return playbackFrames_;
      }
      /**
       * optional int32 playback_frames = 3;
       */
      public Builder setPlaybackFrames(int value) {
        bitField0_ |= 0x00000004;
        playbackFrames_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 playback_frames = 3;
       */
      public Builder clearPlaybackFrames() {
        bitField0_ = (bitField0_ & ~0x00000004);
        playbackFrames_ = 0;
        onChanged();
        return this;
      }

      private skadistats.clarity.wire.common.proto.Demo.CGameInfo gameInfo_ = skadistats.clarity.wire.common.proto.Demo.CGameInfo.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.Demo.CGameInfo, skadistats.clarity.wire.common.proto.Demo.CGameInfo.Builder, skadistats.clarity.wire.common.proto.Demo.CGameInfoOrBuilder> gameInfoBuilder_;
      /**
       * optional .CGameInfo game_info = 4;
       */
      public boolean hasGameInfo() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional .CGameInfo game_info = 4;
       */
      public skadistats.clarity.wire.common.proto.Demo.CGameInfo getGameInfo() {
        if (gameInfoBuilder_ == null) {
          return gameInfo_;
        } else {
          return gameInfoBuilder_.getMessage();
        }
      }
      /**
       * optional .CGameInfo game_info = 4;
       */
      public Builder setGameInfo(skadistats.clarity.wire.common.proto.Demo.CGameInfo value) {
        if (gameInfoBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          gameInfo_ = value;
          onChanged();
        } else {
          gameInfoBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CGameInfo game_info = 4;
       */
      public Builder setGameInfo(
          skadistats.clarity.wire.common.proto.Demo.CGameInfo.Builder builderForValue) {
        if (gameInfoBuilder_ == null) {
          gameInfo_ = builderForValue.build();
          onChanged();
        } else {
          gameInfoBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CGameInfo game_info = 4;
       */
      public Builder mergeGameInfo(skadistats.clarity.wire.common.proto.Demo.CGameInfo value) {
        if (gameInfoBuilder_ == null) {
          if (((bitField0_ & 0x00000008) == 0x00000008) &&
              gameInfo_ != skadistats.clarity.wire.common.proto.Demo.CGameInfo.getDefaultInstance()) {
            gameInfo_ =
              skadistats.clarity.wire.common.proto.Demo.CGameInfo.newBuilder(gameInfo_).mergeFrom(value).buildPartial();
          } else {
            gameInfo_ = value;
          }
          onChanged();
        } else {
          gameInfoBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000008;
        return this;
      }
      /**
       * optional .CGameInfo game_info = 4;
       */
      public Builder clearGameInfo() {
        if (gameInfoBuilder_ == null) {
          gameInfo_ = skadistats.clarity.wire.common.proto.Demo.CGameInfo.getDefaultInstance();
          onChanged();
        } else {
          gameInfoBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }
      /**
       * optional .CGameInfo game_info = 4;
       */
      public skadistats.clarity.wire.common.proto.Demo.CGameInfo.Builder getGameInfoBuilder() {
        bitField0_ |= 0x00000008;
        onChanged();
        return getGameInfoFieldBuilder().getBuilder();
      }
      /**
       * optional .CGameInfo game_info = 4;
       */
      public skadistats.clarity.wire.common.proto.Demo.CGameInfoOrBuilder getGameInfoOrBuilder() {
        if (gameInfoBuilder_ != null) {
          return gameInfoBuilder_.getMessageOrBuilder();
        } else {
          return gameInfo_;
        }
      }
      /**
       * optional .CGameInfo game_info = 4;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.Demo.CGameInfo, skadistats.clarity.wire.common.proto.Demo.CGameInfo.Builder, skadistats.clarity.wire.common.proto.Demo.CGameInfoOrBuilder> 
          getGameInfoFieldBuilder() {
        if (gameInfoBuilder_ == null) {
          gameInfoBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.Demo.CGameInfo, skadistats.clarity.wire.common.proto.Demo.CGameInfo.Builder, skadistats.clarity.wire.common.proto.Demo.CGameInfoOrBuilder>(
                  getGameInfo(),
                  getParentForChildren(),
                  isClean());
          gameInfo_ = null;
        }
        return gameInfoBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDemoFileInfo)
    }

    static {
      defaultInstance = new CDemoFileInfo(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDemoFileInfo)
  }

  public interface CDemoPacketOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDemoPacket)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 sequence_in = 1;
     */
    boolean hasSequenceIn();
    /**
     * optional int32 sequence_in = 1;
     */
    int getSequenceIn();

    /**
     * optional int32 sequence_out_ack = 2;
     */
    boolean hasSequenceOutAck();
    /**
     * optional int32 sequence_out_ack = 2;
     */
    int getSequenceOutAck();

    /**
     * optional bytes data = 3;
     */
    boolean hasData();
    /**
     * optional bytes data = 3;
     */
    com.google.protobuf.ByteString getData();
  }
  /**
   * Protobuf type {@code CDemoPacket}
   */
  public static final class CDemoPacket extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDemoPacket)
      CDemoPacketOrBuilder {
    // Use CDemoPacket.newBuilder() to construct.
    private CDemoPacket(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDemoPacket(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDemoPacket defaultInstance;
    public static CDemoPacket getDefaultInstance() {
      return defaultInstance;
    }

    public CDemoPacket getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDemoPacket(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              sequenceIn_ = input.readInt32();
              break;
            }
            case 16: {
              bitField0_ |= 0x00000002;
              sequenceOutAck_ = input.readInt32();
              break;
            }
            case 26: {
              bitField0_ |= 0x00000004;
              data_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoPacket_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoPacket_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.Demo.CDemoPacket.class, skadistats.clarity.wire.common.proto.Demo.CDemoPacket.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDemoPacket parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDemoPacket(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int SEQUENCE_IN_FIELD_NUMBER = 1;
    private int sequenceIn_;
    /**
     * optional int32 sequence_in = 1;
     */
    public boolean hasSequenceIn() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 sequence_in = 1;
     */
    public int getSequenceIn() {
      return sequenceIn_;
    }

    public static final int SEQUENCE_OUT_ACK_FIELD_NUMBER = 2;
    private int sequenceOutAck_;
    /**
     * optional int32 sequence_out_ack = 2;
     */
    public boolean hasSequenceOutAck() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional int32 sequence_out_ack = 2;
     */
    public int getSequenceOutAck() {
      return sequenceOutAck_;
    }

    public static final int DATA_FIELD_NUMBER = 3;
    private com.google.protobuf.ByteString data_;
    /**
     * optional bytes data = 3;
     */
    public boolean hasData() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional bytes data = 3;
     */
    public com.google.protobuf.ByteString getData() {
      return data_;
    }

    private void initFields() {
      sequenceIn_ = 0;
      sequenceOutAck_ = 0;
      data_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, sequenceIn_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeInt32(2, sequenceOutAck_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeBytes(3, data_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, sequenceIn_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(2, sequenceOutAck_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(3, data_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.Demo.CDemoPacket parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoPacket parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoPacket parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoPacket parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoPacket parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoPacket parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoPacket parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoPacket parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoPacket parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoPacket parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.Demo.CDemoPacket prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDemoPacket}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDemoPacket)
        skadistats.clarity.wire.common.proto.Demo.CDemoPacketOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoPacket_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoPacket_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.Demo.CDemoPacket.class, skadistats.clarity.wire.common.proto.Demo.CDemoPacket.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.Demo.CDemoPacket.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        sequenceIn_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        sequenceOutAck_ = 0;
        bitField0_ = (bitField0_ & ~0x00000002);
        data_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000004);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoPacket_descriptor;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoPacket getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.Demo.CDemoPacket.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoPacket build() {
        skadistats.clarity.wire.common.proto.Demo.CDemoPacket result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoPacket buildPartial() {
        skadistats.clarity.wire.common.proto.Demo.CDemoPacket result = new skadistats.clarity.wire.common.proto.Demo.CDemoPacket(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.sequenceIn_ = sequenceIn_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.sequenceOutAck_ = sequenceOutAck_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.data_ = data_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.Demo.CDemoPacket) {
          return mergeFrom((skadistats.clarity.wire.common.proto.Demo.CDemoPacket)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.Demo.CDemoPacket other) {
        if (other == skadistats.clarity.wire.common.proto.Demo.CDemoPacket.getDefaultInstance()) return this;
        if (other.hasSequenceIn()) {
          setSequenceIn(other.getSequenceIn());
        }
        if (other.hasSequenceOutAck()) {
          setSequenceOutAck(other.getSequenceOutAck());
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.Demo.CDemoPacket parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.Demo.CDemoPacket) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int sequenceIn_ ;
      /**
       * optional int32 sequence_in = 1;
       */
      public boolean hasSequenceIn() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 sequence_in = 1;
       */
      public int getSequenceIn() {
        return sequenceIn_;
      }
      /**
       * optional int32 sequence_in = 1;
       */
      public Builder setSequenceIn(int value) {
        bitField0_ |= 0x00000001;
        sequenceIn_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 sequence_in = 1;
       */
      public Builder clearSequenceIn() {
        bitField0_ = (bitField0_ & ~0x00000001);
        sequenceIn_ = 0;
        onChanged();
        return this;
      }

      private int sequenceOutAck_ ;
      /**
       * optional int32 sequence_out_ack = 2;
       */
      public boolean hasSequenceOutAck() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 sequence_out_ack = 2;
       */
      public int getSequenceOutAck() {
        return sequenceOutAck_;
      }
      /**
       * optional int32 sequence_out_ack = 2;
       */
      public Builder setSequenceOutAck(int value) {
        bitField0_ |= 0x00000002;
        sequenceOutAck_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 sequence_out_ack = 2;
       */
      public Builder clearSequenceOutAck() {
        bitField0_ = (bitField0_ & ~0x00000002);
        sequenceOutAck_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * optional bytes data = 3;
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional bytes data = 3;
       */
      public com.google.protobuf.ByteString getData() {
        return data_;
      }
      /**
       * optional bytes data = 3;
       */
      public Builder setData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
        data_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bytes data = 3;
       */
      public Builder clearData() {
        bitField0_ = (bitField0_ & ~0x00000004);
        data_ = getDefaultInstance().getData();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDemoPacket)
    }

    static {
      defaultInstance = new CDemoPacket(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDemoPacket)
  }

  public interface CDemoFullPacketOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDemoFullPacket)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional .CDemoStringTables string_table = 1;
     */
    boolean hasStringTable();
    /**
     * optional .CDemoStringTables string_table = 1;
     */
    skadistats.clarity.wire.common.proto.Demo.CDemoStringTables getStringTable();
    /**
     * optional .CDemoStringTables string_table = 1;
     */
    skadistats.clarity.wire.common.proto.Demo.CDemoStringTablesOrBuilder getStringTableOrBuilder();

    /**
     * optional .CDemoPacket packet = 2;
     */
    boolean hasPacket();
    /**
     * optional .CDemoPacket packet = 2;
     */
    skadistats.clarity.wire.common.proto.Demo.CDemoPacket getPacket();
    /**
     * optional .CDemoPacket packet = 2;
     */
    skadistats.clarity.wire.common.proto.Demo.CDemoPacketOrBuilder getPacketOrBuilder();
  }
  /**
   * Protobuf type {@code CDemoFullPacket}
   */
  public static final class CDemoFullPacket extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDemoFullPacket)
      CDemoFullPacketOrBuilder {
    // Use CDemoFullPacket.newBuilder() to construct.
    private CDemoFullPacket(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDemoFullPacket(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDemoFullPacket defaultInstance;
    public static CDemoFullPacket getDefaultInstance() {
      return defaultInstance;
    }

    public CDemoFullPacket getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDemoFullPacket(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.Builder subBuilder = null;
              if (((bitField0_ & 0x00000001) == 0x00000001)) {
                subBuilder = stringTable_.toBuilder();
              }
              stringTable_ = input.readMessage(skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(stringTable_);
                stringTable_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000001;
              break;
            }
            case 18: {
              skadistats.clarity.wire.common.proto.Demo.CDemoPacket.Builder subBuilder = null;
              if (((bitField0_ & 0x00000002) == 0x00000002)) {
                subBuilder = packet_.toBuilder();
              }
              packet_ = input.readMessage(skadistats.clarity.wire.common.proto.Demo.CDemoPacket.PARSER, extensionRegistry);
              if (subBuilder != null) {
                subBuilder.mergeFrom(packet_);
                packet_ = subBuilder.buildPartial();
              }
              bitField0_ |= 0x00000002;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoFullPacket_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoFullPacket_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket.class, skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDemoFullPacket parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDemoFullPacket(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int STRING_TABLE_FIELD_NUMBER = 1;
    private skadistats.clarity.wire.common.proto.Demo.CDemoStringTables stringTable_;
    /**
     * optional .CDemoStringTables string_table = 1;
     */
    public boolean hasStringTable() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional .CDemoStringTables string_table = 1;
     */
    public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables getStringTable() {
      return stringTable_;
    }
    /**
     * optional .CDemoStringTables string_table = 1;
     */
    public skadistats.clarity.wire.common.proto.Demo.CDemoStringTablesOrBuilder getStringTableOrBuilder() {
      return stringTable_;
    }

    public static final int PACKET_FIELD_NUMBER = 2;
    private skadistats.clarity.wire.common.proto.Demo.CDemoPacket packet_;
    /**
     * optional .CDemoPacket packet = 2;
     */
    public boolean hasPacket() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional .CDemoPacket packet = 2;
     */
    public skadistats.clarity.wire.common.proto.Demo.CDemoPacket getPacket() {
      return packet_;
    }
    /**
     * optional .CDemoPacket packet = 2;
     */
    public skadistats.clarity.wire.common.proto.Demo.CDemoPacketOrBuilder getPacketOrBuilder() {
      return packet_;
    }

    private void initFields() {
      stringTable_ = skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.getDefaultInstance();
      packet_ = skadistats.clarity.wire.common.proto.Demo.CDemoPacket.getDefaultInstance();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeMessage(1, stringTable_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeMessage(2, packet_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, stringTable_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(2, packet_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDemoFullPacket}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDemoFullPacket)
        skadistats.clarity.wire.common.proto.Demo.CDemoFullPacketOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoFullPacket_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoFullPacket_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket.class, skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getStringTableFieldBuilder();
          getPacketFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (stringTableBuilder_ == null) {
          stringTable_ = skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.getDefaultInstance();
        } else {
          stringTableBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        if (packetBuilder_ == null) {
          packet_ = skadistats.clarity.wire.common.proto.Demo.CDemoPacket.getDefaultInstance();
        } else {
          packetBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoFullPacket_descriptor;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket build() {
        skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket buildPartial() {
        skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket result = new skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        if (stringTableBuilder_ == null) {
          result.stringTable_ = stringTable_;
        } else {
          result.stringTable_ = stringTableBuilder_.build();
        }
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        if (packetBuilder_ == null) {
          result.packet_ = packet_;
        } else {
          result.packet_ = packetBuilder_.build();
        }
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket) {
          return mergeFrom((skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket other) {
        if (other == skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket.getDefaultInstance()) return this;
        if (other.hasStringTable()) {
          mergeStringTable(other.getStringTable());
        }
        if (other.hasPacket()) {
          mergePacket(other.getPacket());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.Demo.CDemoFullPacket) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private skadistats.clarity.wire.common.proto.Demo.CDemoStringTables stringTable_ = skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.Demo.CDemoStringTables, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.Builder, skadistats.clarity.wire.common.proto.Demo.CDemoStringTablesOrBuilder> stringTableBuilder_;
      /**
       * optional .CDemoStringTables string_table = 1;
       */
      public boolean hasStringTable() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional .CDemoStringTables string_table = 1;
       */
      public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables getStringTable() {
        if (stringTableBuilder_ == null) {
          return stringTable_;
        } else {
          return stringTableBuilder_.getMessage();
        }
      }
      /**
       * optional .CDemoStringTables string_table = 1;
       */
      public Builder setStringTable(skadistats.clarity.wire.common.proto.Demo.CDemoStringTables value) {
        if (stringTableBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          stringTable_ = value;
          onChanged();
        } else {
          stringTableBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CDemoStringTables string_table = 1;
       */
      public Builder setStringTable(
          skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.Builder builderForValue) {
        if (stringTableBuilder_ == null) {
          stringTable_ = builderForValue.build();
          onChanged();
        } else {
          stringTableBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CDemoStringTables string_table = 1;
       */
      public Builder mergeStringTable(skadistats.clarity.wire.common.proto.Demo.CDemoStringTables value) {
        if (stringTableBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001) &&
              stringTable_ != skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.getDefaultInstance()) {
            stringTable_ =
              skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.newBuilder(stringTable_).mergeFrom(value).buildPartial();
          } else {
            stringTable_ = value;
          }
          onChanged();
        } else {
          stringTableBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000001;
        return this;
      }
      /**
       * optional .CDemoStringTables string_table = 1;
       */
      public Builder clearStringTable() {
        if (stringTableBuilder_ == null) {
          stringTable_ = skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.getDefaultInstance();
          onChanged();
        } else {
          stringTableBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }
      /**
       * optional .CDemoStringTables string_table = 1;
       */
      public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.Builder getStringTableBuilder() {
        bitField0_ |= 0x00000001;
        onChanged();
        return getStringTableFieldBuilder().getBuilder();
      }
      /**
       * optional .CDemoStringTables string_table = 1;
       */
      public skadistats.clarity.wire.common.proto.Demo.CDemoStringTablesOrBuilder getStringTableOrBuilder() {
        if (stringTableBuilder_ != null) {
          return stringTableBuilder_.getMessageOrBuilder();
        } else {
          return stringTable_;
        }
      }
      /**
       * optional .CDemoStringTables string_table = 1;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.Demo.CDemoStringTables, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.Builder, skadistats.clarity.wire.common.proto.Demo.CDemoStringTablesOrBuilder> 
          getStringTableFieldBuilder() {
        if (stringTableBuilder_ == null) {
          stringTableBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.Demo.CDemoStringTables, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.Builder, skadistats.clarity.wire.common.proto.Demo.CDemoStringTablesOrBuilder>(
                  getStringTable(),
                  getParentForChildren(),
                  isClean());
          stringTable_ = null;
        }
        return stringTableBuilder_;
      }

      private skadistats.clarity.wire.common.proto.Demo.CDemoPacket packet_ = skadistats.clarity.wire.common.proto.Demo.CDemoPacket.getDefaultInstance();
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.Demo.CDemoPacket, skadistats.clarity.wire.common.proto.Demo.CDemoPacket.Builder, skadistats.clarity.wire.common.proto.Demo.CDemoPacketOrBuilder> packetBuilder_;
      /**
       * optional .CDemoPacket packet = 2;
       */
      public boolean hasPacket() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional .CDemoPacket packet = 2;
       */
      public skadistats.clarity.wire.common.proto.Demo.CDemoPacket getPacket() {
        if (packetBuilder_ == null) {
          return packet_;
        } else {
          return packetBuilder_.getMessage();
        }
      }
      /**
       * optional .CDemoPacket packet = 2;
       */
      public Builder setPacket(skadistats.clarity.wire.common.proto.Demo.CDemoPacket value) {
        if (packetBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          packet_ = value;
          onChanged();
        } else {
          packetBuilder_.setMessage(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDemoPacket packet = 2;
       */
      public Builder setPacket(
          skadistats.clarity.wire.common.proto.Demo.CDemoPacket.Builder builderForValue) {
        if (packetBuilder_ == null) {
          packet_ = builderForValue.build();
          onChanged();
        } else {
          packetBuilder_.setMessage(builderForValue.build());
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDemoPacket packet = 2;
       */
      public Builder mergePacket(skadistats.clarity.wire.common.proto.Demo.CDemoPacket value) {
        if (packetBuilder_ == null) {
          if (((bitField0_ & 0x00000002) == 0x00000002) &&
              packet_ != skadistats.clarity.wire.common.proto.Demo.CDemoPacket.getDefaultInstance()) {
            packet_ =
              skadistats.clarity.wire.common.proto.Demo.CDemoPacket.newBuilder(packet_).mergeFrom(value).buildPartial();
          } else {
            packet_ = value;
          }
          onChanged();
        } else {
          packetBuilder_.mergeFrom(value);
        }
        bitField0_ |= 0x00000002;
        return this;
      }
      /**
       * optional .CDemoPacket packet = 2;
       */
      public Builder clearPacket() {
        if (packetBuilder_ == null) {
          packet_ = skadistats.clarity.wire.common.proto.Demo.CDemoPacket.getDefaultInstance();
          onChanged();
        } else {
          packetBuilder_.clear();
        }
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }
      /**
       * optional .CDemoPacket packet = 2;
       */
      public skadistats.clarity.wire.common.proto.Demo.CDemoPacket.Builder getPacketBuilder() {
        bitField0_ |= 0x00000002;
        onChanged();
        return getPacketFieldBuilder().getBuilder();
      }
      /**
       * optional .CDemoPacket packet = 2;
       */
      public skadistats.clarity.wire.common.proto.Demo.CDemoPacketOrBuilder getPacketOrBuilder() {
        if (packetBuilder_ != null) {
          return packetBuilder_.getMessageOrBuilder();
        } else {
          return packet_;
        }
      }
      /**
       * optional .CDemoPacket packet = 2;
       */
      private com.google.protobuf.SingleFieldBuilder<
          skadistats.clarity.wire.common.proto.Demo.CDemoPacket, skadistats.clarity.wire.common.proto.Demo.CDemoPacket.Builder, skadistats.clarity.wire.common.proto.Demo.CDemoPacketOrBuilder> 
          getPacketFieldBuilder() {
        if (packetBuilder_ == null) {
          packetBuilder_ = new com.google.protobuf.SingleFieldBuilder<
              skadistats.clarity.wire.common.proto.Demo.CDemoPacket, skadistats.clarity.wire.common.proto.Demo.CDemoPacket.Builder, skadistats.clarity.wire.common.proto.Demo.CDemoPacketOrBuilder>(
                  getPacket(),
                  getParentForChildren(),
                  isClean());
          packet_ = null;
        }
        return packetBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDemoFullPacket)
    }

    static {
      defaultInstance = new CDemoFullPacket(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDemoFullPacket)
  }

  public interface CDemoSaveGameOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDemoSaveGame)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional bytes data = 1;
     */
    boolean hasData();
    /**
     * optional bytes data = 1;
     */
    com.google.protobuf.ByteString getData();

    /**
     * optional fixed64 steam_id = 2;
     */
    boolean hasSteamId();
    /**
     * optional fixed64 steam_id = 2;
     */
    long getSteamId();

    /**
     * optional fixed64 signature = 3;
     */
    boolean hasSignature();
    /**
     * optional fixed64 signature = 3;
     */
    long getSignature();

    /**
     * optional int32 version = 4;
     */
    boolean hasVersion();
    /**
     * optional int32 version = 4;
     */
    int getVersion();
  }
  /**
   * Protobuf type {@code CDemoSaveGame}
   */
  public static final class CDemoSaveGame extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDemoSaveGame)
      CDemoSaveGameOrBuilder {
    // Use CDemoSaveGame.newBuilder() to construct.
    private CDemoSaveGame(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDemoSaveGame(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDemoSaveGame defaultInstance;
    public static CDemoSaveGame getDefaultInstance() {
      return defaultInstance;
    }

    public CDemoSaveGame getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDemoSaveGame(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              data_ = input.readBytes();
              break;
            }
            case 17: {
              bitField0_ |= 0x00000002;
              steamId_ = input.readFixed64();
              break;
            }
            case 25: {
              bitField0_ |= 0x00000004;
              signature_ = input.readFixed64();
              break;
            }
            case 32: {
              bitField0_ |= 0x00000008;
              version_ = input.readInt32();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoSaveGame_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoSaveGame_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame.class, skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDemoSaveGame parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDemoSaveGame(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int DATA_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString data_;
    /**
     * optional bytes data = 1;
     */
    public boolean hasData() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional bytes data = 1;
     */
    public com.google.protobuf.ByteString getData() {
      return data_;
    }

    public static final int STEAM_ID_FIELD_NUMBER = 2;
    private long steamId_;
    /**
     * optional fixed64 steam_id = 2;
     */
    public boolean hasSteamId() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional fixed64 steam_id = 2;
     */
    public long getSteamId() {
      return steamId_;
    }

    public static final int SIGNATURE_FIELD_NUMBER = 3;
    private long signature_;
    /**
     * optional fixed64 signature = 3;
     */
    public boolean hasSignature() {
      return ((bitField0_ & 0x00000004) == 0x00000004);
    }
    /**
     * optional fixed64 signature = 3;
     */
    public long getSignature() {
      return signature_;
    }

    public static final int VERSION_FIELD_NUMBER = 4;
    private int version_;
    /**
     * optional int32 version = 4;
     */
    public boolean hasVersion() {
      return ((bitField0_ & 0x00000008) == 0x00000008);
    }
    /**
     * optional int32 version = 4;
     */
    public int getVersion() {
      return version_;
    }

    private void initFields() {
      data_ = com.google.protobuf.ByteString.EMPTY;
      steamId_ = 0L;
      signature_ = 0L;
      version_ = 0;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, data_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeFixed64(2, steamId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        output.writeFixed64(3, signature_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        output.writeInt32(4, version_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, data_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(2, steamId_);
      }
      if (((bitField0_ & 0x00000004) == 0x00000004)) {
        size += com.google.protobuf.CodedOutputStream
          .computeFixed64Size(3, signature_);
      }
      if (((bitField0_ & 0x00000008) == 0x00000008)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(4, version_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDemoSaveGame}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDemoSaveGame)
        skadistats.clarity.wire.common.proto.Demo.CDemoSaveGameOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoSaveGame_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoSaveGame_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame.class, skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        data_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        steamId_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000002);
        signature_ = 0L;
        bitField0_ = (bitField0_ & ~0x00000004);
        version_ = 0;
        bitField0_ = (bitField0_ & ~0x00000008);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoSaveGame_descriptor;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame build() {
        skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame buildPartial() {
        skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame result = new skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.data_ = data_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.steamId_ = steamId_;
        if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
          to_bitField0_ |= 0x00000004;
        }
        result.signature_ = signature_;
        if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
          to_bitField0_ |= 0x00000008;
        }
        result.version_ = version_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame) {
          return mergeFrom((skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame other) {
        if (other == skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame.getDefaultInstance()) return this;
        if (other.hasData()) {
          setData(other.getData());
        }
        if (other.hasSteamId()) {
          setSteamId(other.getSteamId());
        }
        if (other.hasSignature()) {
          setSignature(other.getSignature());
        }
        if (other.hasVersion()) {
          setVersion(other.getVersion());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.Demo.CDemoSaveGame) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * optional bytes data = 1;
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional bytes data = 1;
       */
      public com.google.protobuf.ByteString getData() {
        return data_;
      }
      /**
       * optional bytes data = 1;
       */
      public Builder setData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        data_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bytes data = 1;
       */
      public Builder clearData() {
        bitField0_ = (bitField0_ & ~0x00000001);
        data_ = getDefaultInstance().getData();
        onChanged();
        return this;
      }

      private long steamId_ ;
      /**
       * optional fixed64 steam_id = 2;
       */
      public boolean hasSteamId() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional fixed64 steam_id = 2;
       */
      public long getSteamId() {
        return steamId_;
      }
      /**
       * optional fixed64 steam_id = 2;
       */
      public Builder setSteamId(long value) {
        bitField0_ |= 0x00000002;
        steamId_ = value;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 steam_id = 2;
       */
      public Builder clearSteamId() {
        bitField0_ = (bitField0_ & ~0x00000002);
        steamId_ = 0L;
        onChanged();
        return this;
      }

      private long signature_ ;
      /**
       * optional fixed64 signature = 3;
       */
      public boolean hasSignature() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional fixed64 signature = 3;
       */
      public long getSignature() {
        return signature_;
      }
      /**
       * optional fixed64 signature = 3;
       */
      public Builder setSignature(long value) {
        bitField0_ |= 0x00000004;
        signature_ = value;
        onChanged();
        return this;
      }
      /**
       * optional fixed64 signature = 3;
       */
      public Builder clearSignature() {
        bitField0_ = (bitField0_ & ~0x00000004);
        signature_ = 0L;
        onChanged();
        return this;
      }

      private int version_ ;
      /**
       * optional int32 version = 4;
       */
      public boolean hasVersion() {
        return ((bitField0_ & 0x00000008) == 0x00000008);
      }
      /**
       * optional int32 version = 4;
       */
      public int getVersion() {
        return version_;
      }
      /**
       * optional int32 version = 4;
       */
      public Builder setVersion(int value) {
        bitField0_ |= 0x00000008;
        version_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 version = 4;
       */
      public Builder clearVersion() {
        bitField0_ = (bitField0_ & ~0x00000008);
        version_ = 0;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDemoSaveGame)
    }

    static {
      defaultInstance = new CDemoSaveGame(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDemoSaveGame)
  }

  public interface CDemoSyncTickOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDemoSyncTick)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code CDemoSyncTick}
   */
  public static final class CDemoSyncTick extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDemoSyncTick)
      CDemoSyncTickOrBuilder {
    // Use CDemoSyncTick.newBuilder() to construct.
    private CDemoSyncTick(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDemoSyncTick(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDemoSyncTick defaultInstance;
    public static CDemoSyncTick getDefaultInstance() {
      return defaultInstance;
    }

    public CDemoSyncTick getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDemoSyncTick(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoSyncTick_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoSyncTick_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick.class, skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDemoSyncTick parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDemoSyncTick(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDemoSyncTick}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDemoSyncTick)
        skadistats.clarity.wire.common.proto.Demo.CDemoSyncTickOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoSyncTick_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoSyncTick_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick.class, skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoSyncTick_descriptor;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick build() {
        skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick buildPartial() {
        skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick result = new skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick(this);
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick) {
          return mergeFrom((skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick other) {
        if (other == skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.Demo.CDemoSyncTick) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDemoSyncTick)
    }

    static {
      defaultInstance = new CDemoSyncTick(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDemoSyncTick)
  }

  public interface CDemoConsoleCmdOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDemoConsoleCmd)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional string cmdstring = 1;
     */
    boolean hasCmdstring();
    /**
     * optional string cmdstring = 1;
     */
    java.lang.String getCmdstring();
    /**
     * optional string cmdstring = 1;
     */
    com.google.protobuf.ByteString
        getCmdstringBytes();
  }
  /**
   * Protobuf type {@code CDemoConsoleCmd}
   */
  public static final class CDemoConsoleCmd extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDemoConsoleCmd)
      CDemoConsoleCmdOrBuilder {
    // Use CDemoConsoleCmd.newBuilder() to construct.
    private CDemoConsoleCmd(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDemoConsoleCmd(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDemoConsoleCmd defaultInstance;
    public static CDemoConsoleCmd getDefaultInstance() {
      return defaultInstance;
    }

    public CDemoConsoleCmd getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDemoConsoleCmd(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              bitField0_ |= 0x00000001;
              cmdstring_ = bs;
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoConsoleCmd_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoConsoleCmd_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd.class, skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDemoConsoleCmd parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDemoConsoleCmd(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int CMDSTRING_FIELD_NUMBER = 1;
    private java.lang.Object cmdstring_;
    /**
     * optional string cmdstring = 1;
     */
    public boolean hasCmdstring() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional string cmdstring = 1;
     */
    public java.lang.String getCmdstring() {
      java.lang.Object ref = cmdstring_;
      if (ref instanceof java.lang.String) {
        return (java.lang.String) ref;
      } else {
        com.google.protobuf.ByteString bs = 
            (com.google.protobuf.ByteString) ref;
        java.lang.String s = bs.toStringUtf8();
        if (bs.isValidUtf8()) {
          cmdstring_ = s;
        }
        return s;
      }
    }
    /**
     * optional string cmdstring = 1;
     */
    public com.google.protobuf.ByteString
        getCmdstringBytes() {
      java.lang.Object ref = cmdstring_;
      if (ref instanceof java.lang.String) {
        com.google.protobuf.ByteString b = 
            com.google.protobuf.ByteString.copyFromUtf8(
                (java.lang.String) ref);
        cmdstring_ = b;
        return b;
      } else {
        return (com.google.protobuf.ByteString) ref;
      }
    }

    private void initFields() {
      cmdstring_ = "";
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, getCmdstringBytes());
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, getCmdstringBytes());
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDemoConsoleCmd}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDemoConsoleCmd)
        skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmdOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoConsoleCmd_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoConsoleCmd_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd.class, skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        cmdstring_ = "";
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoConsoleCmd_descriptor;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd build() {
        skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd buildPartial() {
        skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd result = new skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.cmdstring_ = cmdstring_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd) {
          return mergeFrom((skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd other) {
        if (other == skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd.getDefaultInstance()) return this;
        if (other.hasCmdstring()) {
          bitField0_ |= 0x00000001;
          cmdstring_ = other.cmdstring_;
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.Demo.CDemoConsoleCmd) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.lang.Object cmdstring_ = "";
      /**
       * optional string cmdstring = 1;
       */
      public boolean hasCmdstring() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string cmdstring = 1;
       */
      public java.lang.String getCmdstring() {
        java.lang.Object ref = cmdstring_;
        if (!(ref instanceof java.lang.String)) {
          com.google.protobuf.ByteString bs =
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            cmdstring_ = s;
          }
          return s;
        } else {
          return (java.lang.String) ref;
        }
      }
      /**
       * optional string cmdstring = 1;
       */
      public com.google.protobuf.ByteString
          getCmdstringBytes() {
        java.lang.Object ref = cmdstring_;
        if (ref instanceof String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          cmdstring_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }
      /**
       * optional string cmdstring = 1;
       */
      public Builder setCmdstring(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        cmdstring_ = value;
        onChanged();
        return this;
      }
      /**
       * optional string cmdstring = 1;
       */
      public Builder clearCmdstring() {
        bitField0_ = (bitField0_ & ~0x00000001);
        cmdstring_ = getDefaultInstance().getCmdstring();
        onChanged();
        return this;
      }
      /**
       * optional string cmdstring = 1;
       */
      public Builder setCmdstringBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        cmdstring_ = value;
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDemoConsoleCmd)
    }

    static {
      defaultInstance = new CDemoConsoleCmd(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDemoConsoleCmd)
  }

  public interface CDemoSendTablesOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDemoSendTables)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional bytes data = 1;
     */
    boolean hasData();
    /**
     * optional bytes data = 1;
     */
    com.google.protobuf.ByteString getData();
  }
  /**
   * Protobuf type {@code CDemoSendTables}
   */
  public static final class CDemoSendTables extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDemoSendTables)
      CDemoSendTablesOrBuilder {
    // Use CDemoSendTables.newBuilder() to construct.
    private CDemoSendTables(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDemoSendTables(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDemoSendTables defaultInstance;
    public static CDemoSendTables getDefaultInstance() {
      return defaultInstance;
    }

    public CDemoSendTables getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDemoSendTables(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              bitField0_ |= 0x00000001;
              data_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoSendTables_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoSendTables_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.Demo.CDemoSendTables.class, skadistats.clarity.wire.common.proto.Demo.CDemoSendTables.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDemoSendTables parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDemoSendTables(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int DATA_FIELD_NUMBER = 1;
    private com.google.protobuf.ByteString data_;
    /**
     * optional bytes data = 1;
     */
    public boolean hasData() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional bytes data = 1;
     */
    public com.google.protobuf.ByteString getData() {
      return data_;
    }

    private void initFields() {
      data_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeBytes(1, data_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(1, data_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.Demo.CDemoSendTables parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSendTables parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSendTables parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSendTables parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSendTables parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSendTables parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSendTables parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSendTables parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSendTables parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSendTables parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.Demo.CDemoSendTables prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDemoSendTables}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDemoSendTables)
        skadistats.clarity.wire.common.proto.Demo.CDemoSendTablesOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoSendTables_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoSendTables_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.Demo.CDemoSendTables.class, skadistats.clarity.wire.common.proto.Demo.CDemoSendTables.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.Demo.CDemoSendTables.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        data_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoSendTables_descriptor;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoSendTables getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.Demo.CDemoSendTables.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoSendTables build() {
        skadistats.clarity.wire.common.proto.Demo.CDemoSendTables result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoSendTables buildPartial() {
        skadistats.clarity.wire.common.proto.Demo.CDemoSendTables result = new skadistats.clarity.wire.common.proto.Demo.CDemoSendTables(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.data_ = data_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.Demo.CDemoSendTables) {
          return mergeFrom((skadistats.clarity.wire.common.proto.Demo.CDemoSendTables)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.Demo.CDemoSendTables other) {
        if (other == skadistats.clarity.wire.common.proto.Demo.CDemoSendTables.getDefaultInstance()) return this;
        if (other.hasData()) {
          setData(other.getData());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.Demo.CDemoSendTables parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.Demo.CDemoSendTables) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * optional bytes data = 1;
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional bytes data = 1;
       */
      public com.google.protobuf.ByteString getData() {
        return data_;
      }
      /**
       * optional bytes data = 1;
       */
      public Builder setData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
        data_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bytes data = 1;
       */
      public Builder clearData() {
        bitField0_ = (bitField0_ & ~0x00000001);
        data_ = getDefaultInstance().getData();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDemoSendTables)
    }

    static {
      defaultInstance = new CDemoSendTables(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDemoSendTables)
  }

  public interface CDemoClassInfoOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDemoClassInfo)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .CDemoClassInfo.class_t classes = 1;
     */
    java.util.List 
        getClassesList();
    /**
     * repeated .CDemoClassInfo.class_t classes = 1;
     */
    skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t getClasses(int index);
    /**
     * repeated .CDemoClassInfo.class_t classes = 1;
     */
    int getClassesCount();
    /**
     * repeated .CDemoClassInfo.class_t classes = 1;
     */
    java.util.List 
        getClassesOrBuilderList();
    /**
     * repeated .CDemoClassInfo.class_t classes = 1;
     */
    skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_tOrBuilder getClassesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CDemoClassInfo}
   */
  public static final class CDemoClassInfo extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDemoClassInfo)
      CDemoClassInfoOrBuilder {
    // Use CDemoClassInfo.newBuilder() to construct.
    private CDemoClassInfo(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDemoClassInfo(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDemoClassInfo defaultInstance;
    public static CDemoClassInfo getDefaultInstance() {
      return defaultInstance;
    }

    public CDemoClassInfo getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDemoClassInfo(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                classes_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              classes_.add(input.readMessage(skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          classes_ = java.util.Collections.unmodifiableList(classes_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoClassInfo_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoClassInfo_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class, skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDemoClassInfo parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDemoClassInfo(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface class_tOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDemoClassInfo.class_t)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional int32 class_id = 1;
       */
      boolean hasClassId();
      /**
       * optional int32 class_id = 1;
       */
      int getClassId();

      /**
       * optional string network_name = 2;
       */
      boolean hasNetworkName();
      /**
       * optional string network_name = 2;
       */
      java.lang.String getNetworkName();
      /**
       * optional string network_name = 2;
       */
      com.google.protobuf.ByteString
          getNetworkNameBytes();

      /**
       * optional string table_name = 3;
       */
      boolean hasTableName();
      /**
       * optional string table_name = 3;
       */
      java.lang.String getTableName();
      /**
       * optional string table_name = 3;
       */
      com.google.protobuf.ByteString
          getTableNameBytes();
    }
    /**
     * Protobuf type {@code CDemoClassInfo.class_t}
     */
    public static final class class_t extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDemoClassInfo.class_t)
        class_tOrBuilder {
      // Use class_t.newBuilder() to construct.
      private class_t(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private class_t(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final class_t defaultInstance;
      public static class_t getDefaultInstance() {
        return defaultInstance;
      }

      public class_t getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private class_t(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 8: {
                bitField0_ |= 0x00000001;
                classId_ = input.readInt32();
                break;
              }
              case 18: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000002;
                networkName_ = bs;
                break;
              }
              case 26: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000004;
                tableName_ = bs;
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoClassInfo_class_t_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoClassInfo_class_t_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t.class, skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public class_t parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new class_t(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int CLASS_ID_FIELD_NUMBER = 1;
      private int classId_;
      /**
       * optional int32 class_id = 1;
       */
      public boolean hasClassId() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 class_id = 1;
       */
      public int getClassId() {
        return classId_;
      }

      public static final int NETWORK_NAME_FIELD_NUMBER = 2;
      private java.lang.Object networkName_;
      /**
       * optional string network_name = 2;
       */
      public boolean hasNetworkName() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional string network_name = 2;
       */
      public java.lang.String getNetworkName() {
        java.lang.Object ref = networkName_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            networkName_ = s;
          }
          return s;
        }
      }
      /**
       * optional string network_name = 2;
       */
      public com.google.protobuf.ByteString
          getNetworkNameBytes() {
        java.lang.Object ref = networkName_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          networkName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int TABLE_NAME_FIELD_NUMBER = 3;
      private java.lang.Object tableName_;
      /**
       * optional string table_name = 3;
       */
      public boolean hasTableName() {
        return ((bitField0_ & 0x00000004) == 0x00000004);
      }
      /**
       * optional string table_name = 3;
       */
      public java.lang.String getTableName() {
        java.lang.Object ref = tableName_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            tableName_ = s;
          }
          return s;
        }
      }
      /**
       * optional string table_name = 3;
       */
      public com.google.protobuf.ByteString
          getTableNameBytes() {
        java.lang.Object ref = tableName_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tableName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      private void initFields() {
        classId_ = 0;
        networkName_ = "";
        tableName_ = "";
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeInt32(1, classId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBytes(2, getNetworkNameBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          output.writeBytes(3, getTableNameBytes());
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(1, classId_);
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(2, getNetworkNameBytes());
        }
        if (((bitField0_ & 0x00000004) == 0x00000004)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(3, getTableNameBytes());
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDemoClassInfo.class_t}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDemoClassInfo.class_t)
          skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_tOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoClassInfo_class_t_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoClassInfo_class_t_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t.class, skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          classId_ = 0;
          bitField0_ = (bitField0_ & ~0x00000001);
          networkName_ = "";
          bitField0_ = (bitField0_ & ~0x00000002);
          tableName_ = "";
          bitField0_ = (bitField0_ & ~0x00000004);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoClassInfo_class_t_descriptor;
        }

        public skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t build() {
          skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t buildPartial() {
          skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t result = new skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.classId_ = classId_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.networkName_ = networkName_;
          if (((from_bitField0_ & 0x00000004) == 0x00000004)) {
            to_bitField0_ |= 0x00000004;
          }
          result.tableName_ = tableName_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t) {
            return mergeFrom((skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t other) {
          if (other == skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t.getDefaultInstance()) return this;
          if (other.hasClassId()) {
            setClassId(other.getClassId());
          }
          if (other.hasNetworkName()) {
            bitField0_ |= 0x00000002;
            networkName_ = other.networkName_;
            onChanged();
          }
          if (other.hasTableName()) {
            bitField0_ |= 0x00000004;
            tableName_ = other.tableName_;
            onChanged();
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private int classId_ ;
        /**
         * optional int32 class_id = 1;
         */
        public boolean hasClassId() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional int32 class_id = 1;
         */
        public int getClassId() {
          return classId_;
        }
        /**
         * optional int32 class_id = 1;
         */
        public Builder setClassId(int value) {
          bitField0_ |= 0x00000001;
          classId_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 class_id = 1;
         */
        public Builder clearClassId() {
          bitField0_ = (bitField0_ & ~0x00000001);
          classId_ = 0;
          onChanged();
          return this;
        }

        private java.lang.Object networkName_ = "";
        /**
         * optional string network_name = 2;
         */
        public boolean hasNetworkName() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional string network_name = 2;
         */
        public java.lang.String getNetworkName() {
          java.lang.Object ref = networkName_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              networkName_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * optional string network_name = 2;
         */
        public com.google.protobuf.ByteString
            getNetworkNameBytes() {
          java.lang.Object ref = networkName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            networkName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * optional string network_name = 2;
         */
        public Builder setNetworkName(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          networkName_ = value;
          onChanged();
          return this;
        }
        /**
         * optional string network_name = 2;
         */
        public Builder clearNetworkName() {
          bitField0_ = (bitField0_ & ~0x00000002);
          networkName_ = getDefaultInstance().getNetworkName();
          onChanged();
          return this;
        }
        /**
         * optional string network_name = 2;
         */
        public Builder setNetworkNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          networkName_ = value;
          onChanged();
          return this;
        }

        private java.lang.Object tableName_ = "";
        /**
         * optional string table_name = 3;
         */
        public boolean hasTableName() {
          return ((bitField0_ & 0x00000004) == 0x00000004);
        }
        /**
         * optional string table_name = 3;
         */
        public java.lang.String getTableName() {
          java.lang.Object ref = tableName_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              tableName_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * optional string table_name = 3;
         */
        public com.google.protobuf.ByteString
            getTableNameBytes() {
          java.lang.Object ref = tableName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            tableName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * optional string table_name = 3;
         */
        public Builder setTableName(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
          tableName_ = value;
          onChanged();
          return this;
        }
        /**
         * optional string table_name = 3;
         */
        public Builder clearTableName() {
          bitField0_ = (bitField0_ & ~0x00000004);
          tableName_ = getDefaultInstance().getTableName();
          onChanged();
          return this;
        }
        /**
         * optional string table_name = 3;
         */
        public Builder setTableNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000004;
          tableName_ = value;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDemoClassInfo.class_t)
      }

      static {
        defaultInstance = new class_t(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDemoClassInfo.class_t)
    }

    public static final int CLASSES_FIELD_NUMBER = 1;
    private java.util.List classes_;
    /**
     * repeated .CDemoClassInfo.class_t classes = 1;
     */
    public java.util.List getClassesList() {
      return classes_;
    }
    /**
     * repeated .CDemoClassInfo.class_t classes = 1;
     */
    public java.util.List 
        getClassesOrBuilderList() {
      return classes_;
    }
    /**
     * repeated .CDemoClassInfo.class_t classes = 1;
     */
    public int getClassesCount() {
      return classes_.size();
    }
    /**
     * repeated .CDemoClassInfo.class_t classes = 1;
     */
    public skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t getClasses(int index) {
      return classes_.get(index);
    }
    /**
     * repeated .CDemoClassInfo.class_t classes = 1;
     */
    public skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_tOrBuilder getClassesOrBuilder(
        int index) {
      return classes_.get(index);
    }

    private void initFields() {
      classes_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < classes_.size(); i++) {
        output.writeMessage(1, classes_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < classes_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, classes_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDemoClassInfo}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDemoClassInfo)
        skadistats.clarity.wire.common.proto.Demo.CDemoClassInfoOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoClassInfo_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoClassInfo_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class, skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getClassesFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (classesBuilder_ == null) {
          classes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          classesBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoClassInfo_descriptor;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo build() {
        skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo buildPartial() {
        skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo result = new skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo(this);
        int from_bitField0_ = bitField0_;
        if (classesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            classes_ = java.util.Collections.unmodifiableList(classes_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.classes_ = classes_;
        } else {
          result.classes_ = classesBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo) {
          return mergeFrom((skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo other) {
        if (other == skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.getDefaultInstance()) return this;
        if (classesBuilder_ == null) {
          if (!other.classes_.isEmpty()) {
            if (classes_.isEmpty()) {
              classes_ = other.classes_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureClassesIsMutable();
              classes_.addAll(other.classes_);
            }
            onChanged();
          }
        } else {
          if (!other.classes_.isEmpty()) {
            if (classesBuilder_.isEmpty()) {
              classesBuilder_.dispose();
              classesBuilder_ = null;
              classes_ = other.classes_;
              bitField0_ = (bitField0_ & ~0x00000001);
              classesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getClassesFieldBuilder() : null;
            } else {
              classesBuilder_.addAllMessages(other.classes_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List classes_ =
        java.util.Collections.emptyList();
      private void ensureClassesIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          classes_ = new java.util.ArrayList(classes_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t, skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t.Builder, skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_tOrBuilder> classesBuilder_;

      /**
       * repeated .CDemoClassInfo.class_t classes = 1;
       */
      public java.util.List getClassesList() {
        if (classesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(classes_);
        } else {
          return classesBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDemoClassInfo.class_t classes = 1;
       */
      public int getClassesCount() {
        if (classesBuilder_ == null) {
          return classes_.size();
        } else {
          return classesBuilder_.getCount();
        }
      }
      /**
       * repeated .CDemoClassInfo.class_t classes = 1;
       */
      public skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t getClasses(int index) {
        if (classesBuilder_ == null) {
          return classes_.get(index);
        } else {
          return classesBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDemoClassInfo.class_t classes = 1;
       */
      public Builder setClasses(
          int index, skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t value) {
        if (classesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureClassesIsMutable();
          classes_.set(index, value);
          onChanged();
        } else {
          classesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDemoClassInfo.class_t classes = 1;
       */
      public Builder setClasses(
          int index, skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t.Builder builderForValue) {
        if (classesBuilder_ == null) {
          ensureClassesIsMutable();
          classes_.set(index, builderForValue.build());
          onChanged();
        } else {
          classesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDemoClassInfo.class_t classes = 1;
       */
      public Builder addClasses(skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t value) {
        if (classesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureClassesIsMutable();
          classes_.add(value);
          onChanged();
        } else {
          classesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDemoClassInfo.class_t classes = 1;
       */
      public Builder addClasses(
          int index, skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t value) {
        if (classesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureClassesIsMutable();
          classes_.add(index, value);
          onChanged();
        } else {
          classesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDemoClassInfo.class_t classes = 1;
       */
      public Builder addClasses(
          skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t.Builder builderForValue) {
        if (classesBuilder_ == null) {
          ensureClassesIsMutable();
          classes_.add(builderForValue.build());
          onChanged();
        } else {
          classesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDemoClassInfo.class_t classes = 1;
       */
      public Builder addClasses(
          int index, skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t.Builder builderForValue) {
        if (classesBuilder_ == null) {
          ensureClassesIsMutable();
          classes_.add(index, builderForValue.build());
          onChanged();
        } else {
          classesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDemoClassInfo.class_t classes = 1;
       */
      public Builder addAllClasses(
          java.lang.Iterable values) {
        if (classesBuilder_ == null) {
          ensureClassesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, classes_);
          onChanged();
        } else {
          classesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDemoClassInfo.class_t classes = 1;
       */
      public Builder clearClasses() {
        if (classesBuilder_ == null) {
          classes_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          classesBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDemoClassInfo.class_t classes = 1;
       */
      public Builder removeClasses(int index) {
        if (classesBuilder_ == null) {
          ensureClassesIsMutable();
          classes_.remove(index);
          onChanged();
        } else {
          classesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDemoClassInfo.class_t classes = 1;
       */
      public skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t.Builder getClassesBuilder(
          int index) {
        return getClassesFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDemoClassInfo.class_t classes = 1;
       */
      public skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_tOrBuilder getClassesOrBuilder(
          int index) {
        if (classesBuilder_ == null) {
          return classes_.get(index);  } else {
          return classesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDemoClassInfo.class_t classes = 1;
       */
      public java.util.List 
           getClassesOrBuilderList() {
        if (classesBuilder_ != null) {
          return classesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(classes_);
        }
      }
      /**
       * repeated .CDemoClassInfo.class_t classes = 1;
       */
      public skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t.Builder addClassesBuilder() {
        return getClassesFieldBuilder().addBuilder(
            skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t.getDefaultInstance());
      }
      /**
       * repeated .CDemoClassInfo.class_t classes = 1;
       */
      public skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t.Builder addClassesBuilder(
          int index) {
        return getClassesFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t.getDefaultInstance());
      }
      /**
       * repeated .CDemoClassInfo.class_t classes = 1;
       */
      public java.util.List 
           getClassesBuilderList() {
        return getClassesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t, skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t.Builder, skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_tOrBuilder> 
          getClassesFieldBuilder() {
        if (classesBuilder_ == null) {
          classesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t, skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_t.Builder, skadistats.clarity.wire.common.proto.Demo.CDemoClassInfo.class_tOrBuilder>(
                  classes_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          classes_ = null;
        }
        return classesBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDemoClassInfo)
    }

    static {
      defaultInstance = new CDemoClassInfo(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDemoClassInfo)
  }

  public interface CDemoCustomDataOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDemoCustomData)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 callback_index = 1;
     */
    boolean hasCallbackIndex();
    /**
     * optional int32 callback_index = 1;
     */
    int getCallbackIndex();

    /**
     * optional bytes data = 2;
     */
    boolean hasData();
    /**
     * optional bytes data = 2;
     */
    com.google.protobuf.ByteString getData();
  }
  /**
   * Protobuf type {@code CDemoCustomData}
   */
  public static final class CDemoCustomData extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDemoCustomData)
      CDemoCustomDataOrBuilder {
    // Use CDemoCustomData.newBuilder() to construct.
    private CDemoCustomData(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDemoCustomData(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDemoCustomData defaultInstance;
    public static CDemoCustomData getDefaultInstance() {
      return defaultInstance;
    }

    public CDemoCustomData getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDemoCustomData(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              callbackIndex_ = input.readInt32();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              data_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoCustomData_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoCustomData_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.Demo.CDemoCustomData.class, skadistats.clarity.wire.common.proto.Demo.CDemoCustomData.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDemoCustomData parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDemoCustomData(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int CALLBACK_INDEX_FIELD_NUMBER = 1;
    private int callbackIndex_;
    /**
     * optional int32 callback_index = 1;
     */
    public boolean hasCallbackIndex() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 callback_index = 1;
     */
    public int getCallbackIndex() {
      return callbackIndex_;
    }

    public static final int DATA_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString data_;
    /**
     * optional bytes data = 2;
     */
    public boolean hasData() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional bytes data = 2;
     */
    public com.google.protobuf.ByteString getData() {
      return data_;
    }

    private void initFields() {
      callbackIndex_ = 0;
      data_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, callbackIndex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, data_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, callbackIndex_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, data_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.Demo.CDemoCustomData parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoCustomData parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoCustomData parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoCustomData parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoCustomData parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoCustomData parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoCustomData parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoCustomData parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoCustomData parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoCustomData parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.Demo.CDemoCustomData prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDemoCustomData}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDemoCustomData)
        skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoCustomData_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoCustomData_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.Demo.CDemoCustomData.class, skadistats.clarity.wire.common.proto.Demo.CDemoCustomData.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.Demo.CDemoCustomData.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        callbackIndex_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        data_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoCustomData_descriptor;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoCustomData getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.Demo.CDemoCustomData.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoCustomData build() {
        skadistats.clarity.wire.common.proto.Demo.CDemoCustomData result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoCustomData buildPartial() {
        skadistats.clarity.wire.common.proto.Demo.CDemoCustomData result = new skadistats.clarity.wire.common.proto.Demo.CDemoCustomData(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.callbackIndex_ = callbackIndex_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.data_ = data_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.Demo.CDemoCustomData) {
          return mergeFrom((skadistats.clarity.wire.common.proto.Demo.CDemoCustomData)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.Demo.CDemoCustomData other) {
        if (other == skadistats.clarity.wire.common.proto.Demo.CDemoCustomData.getDefaultInstance()) return this;
        if (other.hasCallbackIndex()) {
          setCallbackIndex(other.getCallbackIndex());
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.Demo.CDemoCustomData parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.Demo.CDemoCustomData) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int callbackIndex_ ;
      /**
       * optional int32 callback_index = 1;
       */
      public boolean hasCallbackIndex() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 callback_index = 1;
       */
      public int getCallbackIndex() {
        return callbackIndex_;
      }
      /**
       * optional int32 callback_index = 1;
       */
      public Builder setCallbackIndex(int value) {
        bitField0_ |= 0x00000001;
        callbackIndex_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 callback_index = 1;
       */
      public Builder clearCallbackIndex() {
        bitField0_ = (bitField0_ & ~0x00000001);
        callbackIndex_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * optional bytes data = 2;
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional bytes data = 2;
       */
      public com.google.protobuf.ByteString getData() {
        return data_;
      }
      /**
       * optional bytes data = 2;
       */
      public Builder setData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        data_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bytes data = 2;
       */
      public Builder clearData() {
        bitField0_ = (bitField0_ & ~0x00000002);
        data_ = getDefaultInstance().getData();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDemoCustomData)
    }

    static {
      defaultInstance = new CDemoCustomData(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDemoCustomData)
  }

  public interface CDemoCustomDataCallbacksOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDemoCustomDataCallbacks)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated string save_id = 1;
     */
    com.google.protobuf.ProtocolStringList
        getSaveIdList();
    /**
     * repeated string save_id = 1;
     */
    int getSaveIdCount();
    /**
     * repeated string save_id = 1;
     */
    java.lang.String getSaveId(int index);
    /**
     * repeated string save_id = 1;
     */
    com.google.protobuf.ByteString
        getSaveIdBytes(int index);
  }
  /**
   * Protobuf type {@code CDemoCustomDataCallbacks}
   */
  public static final class CDemoCustomDataCallbacks extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDemoCustomDataCallbacks)
      CDemoCustomDataCallbacksOrBuilder {
    // Use CDemoCustomDataCallbacks.newBuilder() to construct.
    private CDemoCustomDataCallbacks(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDemoCustomDataCallbacks(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDemoCustomDataCallbacks defaultInstance;
    public static CDemoCustomDataCallbacks getDefaultInstance() {
      return defaultInstance;
    }

    public CDemoCustomDataCallbacks getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDemoCustomDataCallbacks(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              com.google.protobuf.ByteString bs = input.readBytes();
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                saveId_ = new com.google.protobuf.LazyStringArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              saveId_.add(bs);
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          saveId_ = saveId_.getUnmodifiableView();
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoCustomDataCallbacks_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoCustomDataCallbacks_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks.class, skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDemoCustomDataCallbacks parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDemoCustomDataCallbacks(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public static final int SAVE_ID_FIELD_NUMBER = 1;
    private com.google.protobuf.LazyStringList saveId_;
    /**
     * repeated string save_id = 1;
     */
    public com.google.protobuf.ProtocolStringList
        getSaveIdList() {
      return saveId_;
    }
    /**
     * repeated string save_id = 1;
     */
    public int getSaveIdCount() {
      return saveId_.size();
    }
    /**
     * repeated string save_id = 1;
     */
    public java.lang.String getSaveId(int index) {
      return saveId_.get(index);
    }
    /**
     * repeated string save_id = 1;
     */
    public com.google.protobuf.ByteString
        getSaveIdBytes(int index) {
      return saveId_.getByteString(index);
    }

    private void initFields() {
      saveId_ = com.google.protobuf.LazyStringArrayList.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < saveId_.size(); i++) {
        output.writeBytes(1, saveId_.getByteString(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < saveId_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(saveId_.getByteString(i));
        }
        size += dataSize;
        size += 1 * getSaveIdList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDemoCustomDataCallbacks}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDemoCustomDataCallbacks)
        skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacksOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoCustomDataCallbacks_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoCustomDataCallbacks_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks.class, skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        saveId_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoCustomDataCallbacks_descriptor;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks build() {
        skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks buildPartial() {
        skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks result = new skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          saveId_ = saveId_.getUnmodifiableView();
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.saveId_ = saveId_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks) {
          return mergeFrom((skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks other) {
        if (other == skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks.getDefaultInstance()) return this;
        if (!other.saveId_.isEmpty()) {
          if (saveId_.isEmpty()) {
            saveId_ = other.saveId_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureSaveIdIsMutable();
            saveId_.addAll(other.saveId_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.Demo.CDemoCustomDataCallbacks) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private com.google.protobuf.LazyStringList saveId_ = com.google.protobuf.LazyStringArrayList.EMPTY;
      private void ensureSaveIdIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          saveId_ = new com.google.protobuf.LazyStringArrayList(saveId_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * repeated string save_id = 1;
       */
      public com.google.protobuf.ProtocolStringList
          getSaveIdList() {
        return saveId_.getUnmodifiableView();
      }
      /**
       * repeated string save_id = 1;
       */
      public int getSaveIdCount() {
        return saveId_.size();
      }
      /**
       * repeated string save_id = 1;
       */
      public java.lang.String getSaveId(int index) {
        return saveId_.get(index);
      }
      /**
       * repeated string save_id = 1;
       */
      public com.google.protobuf.ByteString
          getSaveIdBytes(int index) {
        return saveId_.getByteString(index);
      }
      /**
       * repeated string save_id = 1;
       */
      public Builder setSaveId(
          int index, java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureSaveIdIsMutable();
        saveId_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated string save_id = 1;
       */
      public Builder addSaveId(
          java.lang.String value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureSaveIdIsMutable();
        saveId_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated string save_id = 1;
       */
      public Builder addAllSaveId(
          java.lang.Iterable values) {
        ensureSaveIdIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, saveId_);
        onChanged();
        return this;
      }
      /**
       * repeated string save_id = 1;
       */
      public Builder clearSaveId() {
        saveId_ = com.google.protobuf.LazyStringArrayList.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }
      /**
       * repeated string save_id = 1;
       */
      public Builder addSaveIdBytes(
          com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureSaveIdIsMutable();
        saveId_.add(value);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDemoCustomDataCallbacks)
    }

    static {
      defaultInstance = new CDemoCustomDataCallbacks(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDemoCustomDataCallbacks)
  }

  public interface CDemoStringTablesOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDemoStringTables)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated .CDemoStringTables.table_t tables = 1;
     */
    java.util.List 
        getTablesList();
    /**
     * repeated .CDemoStringTables.table_t tables = 1;
     */
    skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t getTables(int index);
    /**
     * repeated .CDemoStringTables.table_t tables = 1;
     */
    int getTablesCount();
    /**
     * repeated .CDemoStringTables.table_t tables = 1;
     */
    java.util.List 
        getTablesOrBuilderList();
    /**
     * repeated .CDemoStringTables.table_t tables = 1;
     */
    skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_tOrBuilder getTablesOrBuilder(
        int index);
  }
  /**
   * Protobuf type {@code CDemoStringTables}
   */
  public static final class CDemoStringTables extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDemoStringTables)
      CDemoStringTablesOrBuilder {
    // Use CDemoStringTables.newBuilder() to construct.
    private CDemoStringTables(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDemoStringTables(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDemoStringTables defaultInstance;
    public static CDemoStringTables getDefaultInstance() {
      return defaultInstance;
    }

    public CDemoStringTables getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDemoStringTables(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 10: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                tables_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              tables_.add(input.readMessage(skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t.PARSER, extensionRegistry));
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          tables_ = java.util.Collections.unmodifiableList(tables_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoStringTables_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoStringTables_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.class, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDemoStringTables parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDemoStringTables(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public interface items_tOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDemoStringTables.items_t)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional string str = 1;
       */
      boolean hasStr();
      /**
       * optional string str = 1;
       */
      java.lang.String getStr();
      /**
       * optional string str = 1;
       */
      com.google.protobuf.ByteString
          getStrBytes();

      /**
       * optional bytes data = 2;
       */
      boolean hasData();
      /**
       * optional bytes data = 2;
       */
      com.google.protobuf.ByteString getData();
    }
    /**
     * Protobuf type {@code CDemoStringTables.items_t}
     */
    public static final class items_t extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDemoStringTables.items_t)
        items_tOrBuilder {
      // Use items_t.newBuilder() to construct.
      private items_t(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private items_t(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final items_t defaultInstance;
      public static items_t getDefaultInstance() {
        return defaultInstance;
      }

      public items_t getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private items_t(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                str_ = bs;
                break;
              }
              case 18: {
                bitField0_ |= 0x00000002;
                data_ = input.readBytes();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoStringTables_items_t_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoStringTables_items_t_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.class, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public items_t parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new items_t(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int STR_FIELD_NUMBER = 1;
      private java.lang.Object str_;
      /**
       * optional string str = 1;
       */
      public boolean hasStr() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string str = 1;
       */
      public java.lang.String getStr() {
        java.lang.Object ref = str_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            str_ = s;
          }
          return s;
        }
      }
      /**
       * optional string str = 1;
       */
      public com.google.protobuf.ByteString
          getStrBytes() {
        java.lang.Object ref = str_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          str_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int DATA_FIELD_NUMBER = 2;
      private com.google.protobuf.ByteString data_;
      /**
       * optional bytes data = 2;
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional bytes data = 2;
       */
      public com.google.protobuf.ByteString getData() {
        return data_;
      }

      private void initFields() {
        str_ = "";
        data_ = com.google.protobuf.ByteString.EMPTY;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBytes(1, getStrBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeBytes(2, data_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(1, getStrBytes());
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(2, data_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDemoStringTables.items_t}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDemoStringTables.items_t)
          skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_tOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoStringTables_items_t_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoStringTables_items_t_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.class, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          str_ = "";
          bitField0_ = (bitField0_ & ~0x00000001);
          data_ = com.google.protobuf.ByteString.EMPTY;
          bitField0_ = (bitField0_ & ~0x00000002);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoStringTables_items_t_descriptor;
        }

        public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t build() {
          skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t buildPartial() {
          skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t result = new skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.str_ = str_;
          if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
            to_bitField0_ |= 0x00000002;
          }
          result.data_ = data_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t) {
            return mergeFrom((skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t other) {
          if (other == skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.getDefaultInstance()) return this;
          if (other.hasStr()) {
            bitField0_ |= 0x00000001;
            str_ = other.str_;
            onChanged();
          }
          if (other.hasData()) {
            setData(other.getData());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private java.lang.Object str_ = "";
        /**
         * optional string str = 1;
         */
        public boolean hasStr() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional string str = 1;
         */
        public java.lang.String getStr() {
          java.lang.Object ref = str_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              str_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * optional string str = 1;
         */
        public com.google.protobuf.ByteString
            getStrBytes() {
          java.lang.Object ref = str_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            str_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * optional string str = 1;
         */
        public Builder setStr(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          str_ = value;
          onChanged();
          return this;
        }
        /**
         * optional string str = 1;
         */
        public Builder clearStr() {
          bitField0_ = (bitField0_ & ~0x00000001);
          str_ = getDefaultInstance().getStr();
          onChanged();
          return this;
        }
        /**
         * optional string str = 1;
         */
        public Builder setStrBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          str_ = value;
          onChanged();
          return this;
        }

        private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
        /**
         * optional bytes data = 2;
         */
        public boolean hasData() {
          return ((bitField0_ & 0x00000002) == 0x00000002);
        }
        /**
         * optional bytes data = 2;
         */
        public com.google.protobuf.ByteString getData() {
          return data_;
        }
        /**
         * optional bytes data = 2;
         */
        public Builder setData(com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
          data_ = value;
          onChanged();
          return this;
        }
        /**
         * optional bytes data = 2;
         */
        public Builder clearData() {
          bitField0_ = (bitField0_ & ~0x00000002);
          data_ = getDefaultInstance().getData();
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDemoStringTables.items_t)
      }

      static {
        defaultInstance = new items_t(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDemoStringTables.items_t)
    }

    public interface table_tOrBuilder extends
        // @@protoc_insertion_point(interface_extends:CDemoStringTables.table_t)
        com.google.protobuf.MessageOrBuilder {

      /**
       * optional string table_name = 1;
       */
      boolean hasTableName();
      /**
       * optional string table_name = 1;
       */
      java.lang.String getTableName();
      /**
       * optional string table_name = 1;
       */
      com.google.protobuf.ByteString
          getTableNameBytes();

      /**
       * repeated .CDemoStringTables.items_t items = 2;
       */
      java.util.List 
          getItemsList();
      /**
       * repeated .CDemoStringTables.items_t items = 2;
       */
      skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t getItems(int index);
      /**
       * repeated .CDemoStringTables.items_t items = 2;
       */
      int getItemsCount();
      /**
       * repeated .CDemoStringTables.items_t items = 2;
       */
      java.util.List 
          getItemsOrBuilderList();
      /**
       * repeated .CDemoStringTables.items_t items = 2;
       */
      skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_tOrBuilder getItemsOrBuilder(
          int index);

      /**
       * repeated .CDemoStringTables.items_t items_clientside = 3;
       */
      java.util.List 
          getItemsClientsideList();
      /**
       * repeated .CDemoStringTables.items_t items_clientside = 3;
       */
      skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t getItemsClientside(int index);
      /**
       * repeated .CDemoStringTables.items_t items_clientside = 3;
       */
      int getItemsClientsideCount();
      /**
       * repeated .CDemoStringTables.items_t items_clientside = 3;
       */
      java.util.List 
          getItemsClientsideOrBuilderList();
      /**
       * repeated .CDemoStringTables.items_t items_clientside = 3;
       */
      skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_tOrBuilder getItemsClientsideOrBuilder(
          int index);

      /**
       * optional int32 table_flags = 4;
       */
      boolean hasTableFlags();
      /**
       * optional int32 table_flags = 4;
       */
      int getTableFlags();
    }
    /**
     * Protobuf type {@code CDemoStringTables.table_t}
     */
    public static final class table_t extends
        com.google.protobuf.GeneratedMessage implements
        // @@protoc_insertion_point(message_implements:CDemoStringTables.table_t)
        table_tOrBuilder {
      // Use table_t.newBuilder() to construct.
      private table_t(com.google.protobuf.GeneratedMessage.Builder builder) {
        super(builder);
        this.unknownFields = builder.getUnknownFields();
      }
      private table_t(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

      private static final table_t defaultInstance;
      public static table_t getDefaultInstance() {
        return defaultInstance;
      }

      public table_t getDefaultInstanceForType() {
        return defaultInstance;
      }

      private final com.google.protobuf.UnknownFieldSet unknownFields;
      @java.lang.Override
      public final com.google.protobuf.UnknownFieldSet
          getUnknownFields() {
        return this.unknownFields;
      }
      private table_t(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        initFields();
        int mutable_bitField0_ = 0;
        com.google.protobuf.UnknownFieldSet.Builder unknownFields =
            com.google.protobuf.UnknownFieldSet.newBuilder();
        try {
          boolean done = false;
          while (!done) {
            int tag = input.readTag();
            switch (tag) {
              case 0:
                done = true;
                break;
              default: {
                if (!parseUnknownField(input, unknownFields,
                                       extensionRegistry, tag)) {
                  done = true;
                }
                break;
              }
              case 10: {
                com.google.protobuf.ByteString bs = input.readBytes();
                bitField0_ |= 0x00000001;
                tableName_ = bs;
                break;
              }
              case 18: {
                if (!((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
                  items_ = new java.util.ArrayList();
                  mutable_bitField0_ |= 0x00000002;
                }
                items_.add(input.readMessage(skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.PARSER, extensionRegistry));
                break;
              }
              case 26: {
                if (!((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
                  itemsClientside_ = new java.util.ArrayList();
                  mutable_bitField0_ |= 0x00000004;
                }
                itemsClientside_.add(input.readMessage(skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.PARSER, extensionRegistry));
                break;
              }
              case 32: {
                bitField0_ |= 0x00000002;
                tableFlags_ = input.readInt32();
                break;
              }
            }
          }
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          throw e.setUnfinishedMessage(this);
        } catch (java.io.IOException e) {
          throw new com.google.protobuf.InvalidProtocolBufferException(
              e.getMessage()).setUnfinishedMessage(this);
        } finally {
          if (((mutable_bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = java.util.Collections.unmodifiableList(items_);
          }
          if (((mutable_bitField0_ & 0x00000004) == 0x00000004)) {
            itemsClientside_ = java.util.Collections.unmodifiableList(itemsClientside_);
          }
          this.unknownFields = unknownFields.build();
          makeExtensionsImmutable();
        }
      }
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoStringTables_table_t_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoStringTables_table_t_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t.class, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t.Builder.class);
      }

      public static com.google.protobuf.Parser PARSER =
          new com.google.protobuf.AbstractParser() {
        public table_t parsePartialFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws com.google.protobuf.InvalidProtocolBufferException {
          return new table_t(input, extensionRegistry);
        }
      };

      @java.lang.Override
      public com.google.protobuf.Parser getParserForType() {
        return PARSER;
      }

      private int bitField0_;
      public static final int TABLE_NAME_FIELD_NUMBER = 1;
      private java.lang.Object tableName_;
      /**
       * optional string table_name = 1;
       */
      public boolean hasTableName() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional string table_name = 1;
       */
      public java.lang.String getTableName() {
        java.lang.Object ref = tableName_;
        if (ref instanceof java.lang.String) {
          return (java.lang.String) ref;
        } else {
          com.google.protobuf.ByteString bs = 
              (com.google.protobuf.ByteString) ref;
          java.lang.String s = bs.toStringUtf8();
          if (bs.isValidUtf8()) {
            tableName_ = s;
          }
          return s;
        }
      }
      /**
       * optional string table_name = 1;
       */
      public com.google.protobuf.ByteString
          getTableNameBytes() {
        java.lang.Object ref = tableName_;
        if (ref instanceof java.lang.String) {
          com.google.protobuf.ByteString b = 
              com.google.protobuf.ByteString.copyFromUtf8(
                  (java.lang.String) ref);
          tableName_ = b;
          return b;
        } else {
          return (com.google.protobuf.ByteString) ref;
        }
      }

      public static final int ITEMS_FIELD_NUMBER = 2;
      private java.util.List items_;
      /**
       * repeated .CDemoStringTables.items_t items = 2;
       */
      public java.util.List getItemsList() {
        return items_;
      }
      /**
       * repeated .CDemoStringTables.items_t items = 2;
       */
      public java.util.List 
          getItemsOrBuilderList() {
        return items_;
      }
      /**
       * repeated .CDemoStringTables.items_t items = 2;
       */
      public int getItemsCount() {
        return items_.size();
      }
      /**
       * repeated .CDemoStringTables.items_t items = 2;
       */
      public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t getItems(int index) {
        return items_.get(index);
      }
      /**
       * repeated .CDemoStringTables.items_t items = 2;
       */
      public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_tOrBuilder getItemsOrBuilder(
          int index) {
        return items_.get(index);
      }

      public static final int ITEMS_CLIENTSIDE_FIELD_NUMBER = 3;
      private java.util.List itemsClientside_;
      /**
       * repeated .CDemoStringTables.items_t items_clientside = 3;
       */
      public java.util.List getItemsClientsideList() {
        return itemsClientside_;
      }
      /**
       * repeated .CDemoStringTables.items_t items_clientside = 3;
       */
      public java.util.List 
          getItemsClientsideOrBuilderList() {
        return itemsClientside_;
      }
      /**
       * repeated .CDemoStringTables.items_t items_clientside = 3;
       */
      public int getItemsClientsideCount() {
        return itemsClientside_.size();
      }
      /**
       * repeated .CDemoStringTables.items_t items_clientside = 3;
       */
      public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t getItemsClientside(int index) {
        return itemsClientside_.get(index);
      }
      /**
       * repeated .CDemoStringTables.items_t items_clientside = 3;
       */
      public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_tOrBuilder getItemsClientsideOrBuilder(
          int index) {
        return itemsClientside_.get(index);
      }

      public static final int TABLE_FLAGS_FIELD_NUMBER = 4;
      private int tableFlags_;
      /**
       * optional int32 table_flags = 4;
       */
      public boolean hasTableFlags() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional int32 table_flags = 4;
       */
      public int getTableFlags() {
        return tableFlags_;
      }

      private void initFields() {
        tableName_ = "";
        items_ = java.util.Collections.emptyList();
        itemsClientside_ = java.util.Collections.emptyList();
        tableFlags_ = 0;
      }
      private byte memoizedIsInitialized = -1;
      public final boolean isInitialized() {
        byte isInitialized = memoizedIsInitialized;
        if (isInitialized == 1) return true;
        if (isInitialized == 0) return false;

        memoizedIsInitialized = 1;
        return true;
      }

      public void writeTo(com.google.protobuf.CodedOutputStream output)
                          throws java.io.IOException {
        getSerializedSize();
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          output.writeBytes(1, getTableNameBytes());
        }
        for (int i = 0; i < items_.size(); i++) {
          output.writeMessage(2, items_.get(i));
        }
        for (int i = 0; i < itemsClientside_.size(); i++) {
          output.writeMessage(3, itemsClientside_.get(i));
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          output.writeInt32(4, tableFlags_);
        }
        getUnknownFields().writeTo(output);
      }

      private int memoizedSerializedSize = -1;
      public int getSerializedSize() {
        int size = memoizedSerializedSize;
        if (size != -1) return size;

        size = 0;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          size += com.google.protobuf.CodedOutputStream
            .computeBytesSize(1, getTableNameBytes());
        }
        for (int i = 0; i < items_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(2, items_.get(i));
        }
        for (int i = 0; i < itemsClientside_.size(); i++) {
          size += com.google.protobuf.CodedOutputStream
            .computeMessageSize(3, itemsClientside_.get(i));
        }
        if (((bitField0_ & 0x00000002) == 0x00000002)) {
          size += com.google.protobuf.CodedOutputStream
            .computeInt32Size(4, tableFlags_);
        }
        size += getUnknownFields().getSerializedSize();
        memoizedSerializedSize = size;
        return size;
      }

      private static final long serialVersionUID = 0L;
      @java.lang.Override
      protected java.lang.Object writeReplace()
          throws java.io.ObjectStreamException {
        return super.writeReplace();
      }

      public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t parseFrom(
          com.google.protobuf.ByteString data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t parseFrom(
          com.google.protobuf.ByteString data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t parseFrom(byte[] data)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t parseFrom(
          byte[] data,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return PARSER.parseFrom(data, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t parseFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t parseFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t parseDelimitedFrom(java.io.InputStream input)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t parseDelimitedFrom(
          java.io.InputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseDelimitedFrom(input, extensionRegistry);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t parseFrom(
          com.google.protobuf.CodedInputStream input)
          throws java.io.IOException {
        return PARSER.parseFrom(input);
      }
      public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t parseFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        return PARSER.parseFrom(input, extensionRegistry);
      }

      public static Builder newBuilder() { return Builder.create(); }
      public Builder newBuilderForType() { return newBuilder(); }
      public static Builder newBuilder(skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t prototype) {
        return newBuilder().mergeFrom(prototype);
      }
      public Builder toBuilder() { return newBuilder(this); }

      @java.lang.Override
      protected Builder newBuilderForType(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        Builder builder = new Builder(parent);
        return builder;
      }
      /**
       * Protobuf type {@code CDemoStringTables.table_t}
       */
      public static final class Builder extends
          com.google.protobuf.GeneratedMessage.Builder implements
          // @@protoc_insertion_point(builder_implements:CDemoStringTables.table_t)
          skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_tOrBuilder {
        public static final com.google.protobuf.Descriptors.Descriptor
            getDescriptor() {
          return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoStringTables_table_t_descriptor;
        }

        protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
            internalGetFieldAccessorTable() {
          return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoStringTables_table_t_fieldAccessorTable
              .ensureFieldAccessorsInitialized(
                  skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t.class, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t.Builder.class);
        }

        // Construct using skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t.newBuilder()
        private Builder() {
          maybeForceBuilderInitialization();
        }

        private Builder(
            com.google.protobuf.GeneratedMessage.BuilderParent parent) {
          super(parent);
          maybeForceBuilderInitialization();
        }
        private void maybeForceBuilderInitialization() {
          if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
            getItemsFieldBuilder();
            getItemsClientsideFieldBuilder();
          }
        }
        private static Builder create() {
          return new Builder();
        }

        public Builder clear() {
          super.clear();
          tableName_ = "";
          bitField0_ = (bitField0_ & ~0x00000001);
          if (itemsBuilder_ == null) {
            items_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000002);
          } else {
            itemsBuilder_.clear();
          }
          if (itemsClientsideBuilder_ == null) {
            itemsClientside_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000004);
          } else {
            itemsClientsideBuilder_.clear();
          }
          tableFlags_ = 0;
          bitField0_ = (bitField0_ & ~0x00000008);
          return this;
        }

        public Builder clone() {
          return create().mergeFrom(buildPartial());
        }

        public com.google.protobuf.Descriptors.Descriptor
            getDescriptorForType() {
          return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoStringTables_table_t_descriptor;
        }

        public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t getDefaultInstanceForType() {
          return skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t.getDefaultInstance();
        }

        public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t build() {
          skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t result = buildPartial();
          if (!result.isInitialized()) {
            throw newUninitializedMessageException(result);
          }
          return result;
        }

        public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t buildPartial() {
          skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t result = new skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t(this);
          int from_bitField0_ = bitField0_;
          int to_bitField0_ = 0;
          if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
            to_bitField0_ |= 0x00000001;
          }
          result.tableName_ = tableName_;
          if (itemsBuilder_ == null) {
            if (((bitField0_ & 0x00000002) == 0x00000002)) {
              items_ = java.util.Collections.unmodifiableList(items_);
              bitField0_ = (bitField0_ & ~0x00000002);
            }
            result.items_ = items_;
          } else {
            result.items_ = itemsBuilder_.build();
          }
          if (itemsClientsideBuilder_ == null) {
            if (((bitField0_ & 0x00000004) == 0x00000004)) {
              itemsClientside_ = java.util.Collections.unmodifiableList(itemsClientside_);
              bitField0_ = (bitField0_ & ~0x00000004);
            }
            result.itemsClientside_ = itemsClientside_;
          } else {
            result.itemsClientside_ = itemsClientsideBuilder_.build();
          }
          if (((from_bitField0_ & 0x00000008) == 0x00000008)) {
            to_bitField0_ |= 0x00000002;
          }
          result.tableFlags_ = tableFlags_;
          result.bitField0_ = to_bitField0_;
          onBuilt();
          return result;
        }

        public Builder mergeFrom(com.google.protobuf.Message other) {
          if (other instanceof skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t) {
            return mergeFrom((skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t)other);
          } else {
            super.mergeFrom(other);
            return this;
          }
        }

        public Builder mergeFrom(skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t other) {
          if (other == skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t.getDefaultInstance()) return this;
          if (other.hasTableName()) {
            bitField0_ |= 0x00000001;
            tableName_ = other.tableName_;
            onChanged();
          }
          if (itemsBuilder_ == null) {
            if (!other.items_.isEmpty()) {
              if (items_.isEmpty()) {
                items_ = other.items_;
                bitField0_ = (bitField0_ & ~0x00000002);
              } else {
                ensureItemsIsMutable();
                items_.addAll(other.items_);
              }
              onChanged();
            }
          } else {
            if (!other.items_.isEmpty()) {
              if (itemsBuilder_.isEmpty()) {
                itemsBuilder_.dispose();
                itemsBuilder_ = null;
                items_ = other.items_;
                bitField0_ = (bitField0_ & ~0x00000002);
                itemsBuilder_ = 
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getItemsFieldBuilder() : null;
              } else {
                itemsBuilder_.addAllMessages(other.items_);
              }
            }
          }
          if (itemsClientsideBuilder_ == null) {
            if (!other.itemsClientside_.isEmpty()) {
              if (itemsClientside_.isEmpty()) {
                itemsClientside_ = other.itemsClientside_;
                bitField0_ = (bitField0_ & ~0x00000004);
              } else {
                ensureItemsClientsideIsMutable();
                itemsClientside_.addAll(other.itemsClientside_);
              }
              onChanged();
            }
          } else {
            if (!other.itemsClientside_.isEmpty()) {
              if (itemsClientsideBuilder_.isEmpty()) {
                itemsClientsideBuilder_.dispose();
                itemsClientsideBuilder_ = null;
                itemsClientside_ = other.itemsClientside_;
                bitField0_ = (bitField0_ & ~0x00000004);
                itemsClientsideBuilder_ = 
                  com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                     getItemsClientsideFieldBuilder() : null;
              } else {
                itemsClientsideBuilder_.addAllMessages(other.itemsClientside_);
              }
            }
          }
          if (other.hasTableFlags()) {
            setTableFlags(other.getTableFlags());
          }
          this.mergeUnknownFields(other.getUnknownFields());
          return this;
        }

        public final boolean isInitialized() {
          return true;
        }

        public Builder mergeFrom(
            com.google.protobuf.CodedInputStream input,
            com.google.protobuf.ExtensionRegistryLite extensionRegistry)
            throws java.io.IOException {
          skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t parsedMessage = null;
          try {
            parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
          } catch (com.google.protobuf.InvalidProtocolBufferException e) {
            parsedMessage = (skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t) e.getUnfinishedMessage();
            throw e;
          } finally {
            if (parsedMessage != null) {
              mergeFrom(parsedMessage);
            }
          }
          return this;
        }
        private int bitField0_;

        private java.lang.Object tableName_ = "";
        /**
         * optional string table_name = 1;
         */
        public boolean hasTableName() {
          return ((bitField0_ & 0x00000001) == 0x00000001);
        }
        /**
         * optional string table_name = 1;
         */
        public java.lang.String getTableName() {
          java.lang.Object ref = tableName_;
          if (!(ref instanceof java.lang.String)) {
            com.google.protobuf.ByteString bs =
                (com.google.protobuf.ByteString) ref;
            java.lang.String s = bs.toStringUtf8();
            if (bs.isValidUtf8()) {
              tableName_ = s;
            }
            return s;
          } else {
            return (java.lang.String) ref;
          }
        }
        /**
         * optional string table_name = 1;
         */
        public com.google.protobuf.ByteString
            getTableNameBytes() {
          java.lang.Object ref = tableName_;
          if (ref instanceof String) {
            com.google.protobuf.ByteString b = 
                com.google.protobuf.ByteString.copyFromUtf8(
                    (java.lang.String) ref);
            tableName_ = b;
            return b;
          } else {
            return (com.google.protobuf.ByteString) ref;
          }
        }
        /**
         * optional string table_name = 1;
         */
        public Builder setTableName(
            java.lang.String value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          tableName_ = value;
          onChanged();
          return this;
        }
        /**
         * optional string table_name = 1;
         */
        public Builder clearTableName() {
          bitField0_ = (bitField0_ & ~0x00000001);
          tableName_ = getDefaultInstance().getTableName();
          onChanged();
          return this;
        }
        /**
         * optional string table_name = 1;
         */
        public Builder setTableNameBytes(
            com.google.protobuf.ByteString value) {
          if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000001;
          tableName_ = value;
          onChanged();
          return this;
        }

        private java.util.List items_ =
          java.util.Collections.emptyList();
        private void ensureItemsIsMutable() {
          if (!((bitField0_ & 0x00000002) == 0x00000002)) {
            items_ = new java.util.ArrayList(items_);
            bitField0_ |= 0x00000002;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilder<
            skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.Builder, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_tOrBuilder> itemsBuilder_;

        /**
         * repeated .CDemoStringTables.items_t items = 2;
         */
        public java.util.List getItemsList() {
          if (itemsBuilder_ == null) {
            return java.util.Collections.unmodifiableList(items_);
          } else {
            return itemsBuilder_.getMessageList();
          }
        }
        /**
         * repeated .CDemoStringTables.items_t items = 2;
         */
        public int getItemsCount() {
          if (itemsBuilder_ == null) {
            return items_.size();
          } else {
            return itemsBuilder_.getCount();
          }
        }
        /**
         * repeated .CDemoStringTables.items_t items = 2;
         */
        public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t getItems(int index) {
          if (itemsBuilder_ == null) {
            return items_.get(index);
          } else {
            return itemsBuilder_.getMessage(index);
          }
        }
        /**
         * repeated .CDemoStringTables.items_t items = 2;
         */
        public Builder setItems(
            int index, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t value) {
          if (itemsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureItemsIsMutable();
            items_.set(index, value);
            onChanged();
          } else {
            itemsBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * repeated .CDemoStringTables.items_t items = 2;
         */
        public Builder setItems(
            int index, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.Builder builderForValue) {
          if (itemsBuilder_ == null) {
            ensureItemsIsMutable();
            items_.set(index, builderForValue.build());
            onChanged();
          } else {
            itemsBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .CDemoStringTables.items_t items = 2;
         */
        public Builder addItems(skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t value) {
          if (itemsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureItemsIsMutable();
            items_.add(value);
            onChanged();
          } else {
            itemsBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * repeated .CDemoStringTables.items_t items = 2;
         */
        public Builder addItems(
            int index, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t value) {
          if (itemsBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureItemsIsMutable();
            items_.add(index, value);
            onChanged();
          } else {
            itemsBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * repeated .CDemoStringTables.items_t items = 2;
         */
        public Builder addItems(
            skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.Builder builderForValue) {
          if (itemsBuilder_ == null) {
            ensureItemsIsMutable();
            items_.add(builderForValue.build());
            onChanged();
          } else {
            itemsBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .CDemoStringTables.items_t items = 2;
         */
        public Builder addItems(
            int index, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.Builder builderForValue) {
          if (itemsBuilder_ == null) {
            ensureItemsIsMutable();
            items_.add(index, builderForValue.build());
            onChanged();
          } else {
            itemsBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .CDemoStringTables.items_t items = 2;
         */
        public Builder addAllItems(
            java.lang.Iterable values) {
          if (itemsBuilder_ == null) {
            ensureItemsIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, items_);
            onChanged();
          } else {
            itemsBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * repeated .CDemoStringTables.items_t items = 2;
         */
        public Builder clearItems() {
          if (itemsBuilder_ == null) {
            items_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000002);
            onChanged();
          } else {
            itemsBuilder_.clear();
          }
          return this;
        }
        /**
         * repeated .CDemoStringTables.items_t items = 2;
         */
        public Builder removeItems(int index) {
          if (itemsBuilder_ == null) {
            ensureItemsIsMutable();
            items_.remove(index);
            onChanged();
          } else {
            itemsBuilder_.remove(index);
          }
          return this;
        }
        /**
         * repeated .CDemoStringTables.items_t items = 2;
         */
        public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.Builder getItemsBuilder(
            int index) {
          return getItemsFieldBuilder().getBuilder(index);
        }
        /**
         * repeated .CDemoStringTables.items_t items = 2;
         */
        public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_tOrBuilder getItemsOrBuilder(
            int index) {
          if (itemsBuilder_ == null) {
            return items_.get(index);  } else {
            return itemsBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * repeated .CDemoStringTables.items_t items = 2;
         */
        public java.util.List 
             getItemsOrBuilderList() {
          if (itemsBuilder_ != null) {
            return itemsBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(items_);
          }
        }
        /**
         * repeated .CDemoStringTables.items_t items = 2;
         */
        public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.Builder addItemsBuilder() {
          return getItemsFieldBuilder().addBuilder(
              skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.getDefaultInstance());
        }
        /**
         * repeated .CDemoStringTables.items_t items = 2;
         */
        public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.Builder addItemsBuilder(
            int index) {
          return getItemsFieldBuilder().addBuilder(
              index, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.getDefaultInstance());
        }
        /**
         * repeated .CDemoStringTables.items_t items = 2;
         */
        public java.util.List 
             getItemsBuilderList() {
          return getItemsFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilder<
            skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.Builder, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_tOrBuilder> 
            getItemsFieldBuilder() {
          if (itemsBuilder_ == null) {
            itemsBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.Builder, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_tOrBuilder>(
                    items_,
                    ((bitField0_ & 0x00000002) == 0x00000002),
                    getParentForChildren(),
                    isClean());
            items_ = null;
          }
          return itemsBuilder_;
        }

        private java.util.List itemsClientside_ =
          java.util.Collections.emptyList();
        private void ensureItemsClientsideIsMutable() {
          if (!((bitField0_ & 0x00000004) == 0x00000004)) {
            itemsClientside_ = new java.util.ArrayList(itemsClientside_);
            bitField0_ |= 0x00000004;
           }
        }

        private com.google.protobuf.RepeatedFieldBuilder<
            skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.Builder, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_tOrBuilder> itemsClientsideBuilder_;

        /**
         * repeated .CDemoStringTables.items_t items_clientside = 3;
         */
        public java.util.List getItemsClientsideList() {
          if (itemsClientsideBuilder_ == null) {
            return java.util.Collections.unmodifiableList(itemsClientside_);
          } else {
            return itemsClientsideBuilder_.getMessageList();
          }
        }
        /**
         * repeated .CDemoStringTables.items_t items_clientside = 3;
         */
        public int getItemsClientsideCount() {
          if (itemsClientsideBuilder_ == null) {
            return itemsClientside_.size();
          } else {
            return itemsClientsideBuilder_.getCount();
          }
        }
        /**
         * repeated .CDemoStringTables.items_t items_clientside = 3;
         */
        public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t getItemsClientside(int index) {
          if (itemsClientsideBuilder_ == null) {
            return itemsClientside_.get(index);
          } else {
            return itemsClientsideBuilder_.getMessage(index);
          }
        }
        /**
         * repeated .CDemoStringTables.items_t items_clientside = 3;
         */
        public Builder setItemsClientside(
            int index, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t value) {
          if (itemsClientsideBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureItemsClientsideIsMutable();
            itemsClientside_.set(index, value);
            onChanged();
          } else {
            itemsClientsideBuilder_.setMessage(index, value);
          }
          return this;
        }
        /**
         * repeated .CDemoStringTables.items_t items_clientside = 3;
         */
        public Builder setItemsClientside(
            int index, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.Builder builderForValue) {
          if (itemsClientsideBuilder_ == null) {
            ensureItemsClientsideIsMutable();
            itemsClientside_.set(index, builderForValue.build());
            onChanged();
          } else {
            itemsClientsideBuilder_.setMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .CDemoStringTables.items_t items_clientside = 3;
         */
        public Builder addItemsClientside(skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t value) {
          if (itemsClientsideBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureItemsClientsideIsMutable();
            itemsClientside_.add(value);
            onChanged();
          } else {
            itemsClientsideBuilder_.addMessage(value);
          }
          return this;
        }
        /**
         * repeated .CDemoStringTables.items_t items_clientside = 3;
         */
        public Builder addItemsClientside(
            int index, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t value) {
          if (itemsClientsideBuilder_ == null) {
            if (value == null) {
              throw new NullPointerException();
            }
            ensureItemsClientsideIsMutable();
            itemsClientside_.add(index, value);
            onChanged();
          } else {
            itemsClientsideBuilder_.addMessage(index, value);
          }
          return this;
        }
        /**
         * repeated .CDemoStringTables.items_t items_clientside = 3;
         */
        public Builder addItemsClientside(
            skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.Builder builderForValue) {
          if (itemsClientsideBuilder_ == null) {
            ensureItemsClientsideIsMutable();
            itemsClientside_.add(builderForValue.build());
            onChanged();
          } else {
            itemsClientsideBuilder_.addMessage(builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .CDemoStringTables.items_t items_clientside = 3;
         */
        public Builder addItemsClientside(
            int index, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.Builder builderForValue) {
          if (itemsClientsideBuilder_ == null) {
            ensureItemsClientsideIsMutable();
            itemsClientside_.add(index, builderForValue.build());
            onChanged();
          } else {
            itemsClientsideBuilder_.addMessage(index, builderForValue.build());
          }
          return this;
        }
        /**
         * repeated .CDemoStringTables.items_t items_clientside = 3;
         */
        public Builder addAllItemsClientside(
            java.lang.Iterable values) {
          if (itemsClientsideBuilder_ == null) {
            ensureItemsClientsideIsMutable();
            com.google.protobuf.AbstractMessageLite.Builder.addAll(
                values, itemsClientside_);
            onChanged();
          } else {
            itemsClientsideBuilder_.addAllMessages(values);
          }
          return this;
        }
        /**
         * repeated .CDemoStringTables.items_t items_clientside = 3;
         */
        public Builder clearItemsClientside() {
          if (itemsClientsideBuilder_ == null) {
            itemsClientside_ = java.util.Collections.emptyList();
            bitField0_ = (bitField0_ & ~0x00000004);
            onChanged();
          } else {
            itemsClientsideBuilder_.clear();
          }
          return this;
        }
        /**
         * repeated .CDemoStringTables.items_t items_clientside = 3;
         */
        public Builder removeItemsClientside(int index) {
          if (itemsClientsideBuilder_ == null) {
            ensureItemsClientsideIsMutable();
            itemsClientside_.remove(index);
            onChanged();
          } else {
            itemsClientsideBuilder_.remove(index);
          }
          return this;
        }
        /**
         * repeated .CDemoStringTables.items_t items_clientside = 3;
         */
        public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.Builder getItemsClientsideBuilder(
            int index) {
          return getItemsClientsideFieldBuilder().getBuilder(index);
        }
        /**
         * repeated .CDemoStringTables.items_t items_clientside = 3;
         */
        public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_tOrBuilder getItemsClientsideOrBuilder(
            int index) {
          if (itemsClientsideBuilder_ == null) {
            return itemsClientside_.get(index);  } else {
            return itemsClientsideBuilder_.getMessageOrBuilder(index);
          }
        }
        /**
         * repeated .CDemoStringTables.items_t items_clientside = 3;
         */
        public java.util.List 
             getItemsClientsideOrBuilderList() {
          if (itemsClientsideBuilder_ != null) {
            return itemsClientsideBuilder_.getMessageOrBuilderList();
          } else {
            return java.util.Collections.unmodifiableList(itemsClientside_);
          }
        }
        /**
         * repeated .CDemoStringTables.items_t items_clientside = 3;
         */
        public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.Builder addItemsClientsideBuilder() {
          return getItemsClientsideFieldBuilder().addBuilder(
              skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.getDefaultInstance());
        }
        /**
         * repeated .CDemoStringTables.items_t items_clientside = 3;
         */
        public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.Builder addItemsClientsideBuilder(
            int index) {
          return getItemsClientsideFieldBuilder().addBuilder(
              index, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.getDefaultInstance());
        }
        /**
         * repeated .CDemoStringTables.items_t items_clientside = 3;
         */
        public java.util.List 
             getItemsClientsideBuilderList() {
          return getItemsClientsideFieldBuilder().getBuilderList();
        }
        private com.google.protobuf.RepeatedFieldBuilder<
            skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.Builder, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_tOrBuilder> 
            getItemsClientsideFieldBuilder() {
          if (itemsClientsideBuilder_ == null) {
            itemsClientsideBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
                skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_t.Builder, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.items_tOrBuilder>(
                    itemsClientside_,
                    ((bitField0_ & 0x00000004) == 0x00000004),
                    getParentForChildren(),
                    isClean());
            itemsClientside_ = null;
          }
          return itemsClientsideBuilder_;
        }

        private int tableFlags_ ;
        /**
         * optional int32 table_flags = 4;
         */
        public boolean hasTableFlags() {
          return ((bitField0_ & 0x00000008) == 0x00000008);
        }
        /**
         * optional int32 table_flags = 4;
         */
        public int getTableFlags() {
          return tableFlags_;
        }
        /**
         * optional int32 table_flags = 4;
         */
        public Builder setTableFlags(int value) {
          bitField0_ |= 0x00000008;
          tableFlags_ = value;
          onChanged();
          return this;
        }
        /**
         * optional int32 table_flags = 4;
         */
        public Builder clearTableFlags() {
          bitField0_ = (bitField0_ & ~0x00000008);
          tableFlags_ = 0;
          onChanged();
          return this;
        }

        // @@protoc_insertion_point(builder_scope:CDemoStringTables.table_t)
      }

      static {
        defaultInstance = new table_t(true);
        defaultInstance.initFields();
      }

      // @@protoc_insertion_point(class_scope:CDemoStringTables.table_t)
    }

    public static final int TABLES_FIELD_NUMBER = 1;
    private java.util.List tables_;
    /**
     * repeated .CDemoStringTables.table_t tables = 1;
     */
    public java.util.List getTablesList() {
      return tables_;
    }
    /**
     * repeated .CDemoStringTables.table_t tables = 1;
     */
    public java.util.List 
        getTablesOrBuilderList() {
      return tables_;
    }
    /**
     * repeated .CDemoStringTables.table_t tables = 1;
     */
    public int getTablesCount() {
      return tables_.size();
    }
    /**
     * repeated .CDemoStringTables.table_t tables = 1;
     */
    public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t getTables(int index) {
      return tables_.get(index);
    }
    /**
     * repeated .CDemoStringTables.table_t tables = 1;
     */
    public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_tOrBuilder getTablesOrBuilder(
        int index) {
      return tables_.get(index);
    }

    private void initFields() {
      tables_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < tables_.size(); i++) {
        output.writeMessage(1, tables_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      for (int i = 0; i < tables_.size(); i++) {
        size += com.google.protobuf.CodedOutputStream
          .computeMessageSize(1, tables_.get(i));
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoStringTables parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.Demo.CDemoStringTables prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDemoStringTables}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDemoStringTables)
        skadistats.clarity.wire.common.proto.Demo.CDemoStringTablesOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoStringTables_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoStringTables_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.class, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
          getTablesFieldBuilder();
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        if (tablesBuilder_ == null) {
          tables_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
        } else {
          tablesBuilder_.clear();
        }
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoStringTables_descriptor;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables build() {
        skadistats.clarity.wire.common.proto.Demo.CDemoStringTables result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables buildPartial() {
        skadistats.clarity.wire.common.proto.Demo.CDemoStringTables result = new skadistats.clarity.wire.common.proto.Demo.CDemoStringTables(this);
        int from_bitField0_ = bitField0_;
        if (tablesBuilder_ == null) {
          if (((bitField0_ & 0x00000001) == 0x00000001)) {
            tables_ = java.util.Collections.unmodifiableList(tables_);
            bitField0_ = (bitField0_ & ~0x00000001);
          }
          result.tables_ = tables_;
        } else {
          result.tables_ = tablesBuilder_.build();
        }
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.Demo.CDemoStringTables) {
          return mergeFrom((skadistats.clarity.wire.common.proto.Demo.CDemoStringTables)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.Demo.CDemoStringTables other) {
        if (other == skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.getDefaultInstance()) return this;
        if (tablesBuilder_ == null) {
          if (!other.tables_.isEmpty()) {
            if (tables_.isEmpty()) {
              tables_ = other.tables_;
              bitField0_ = (bitField0_ & ~0x00000001);
            } else {
              ensureTablesIsMutable();
              tables_.addAll(other.tables_);
            }
            onChanged();
          }
        } else {
          if (!other.tables_.isEmpty()) {
            if (tablesBuilder_.isEmpty()) {
              tablesBuilder_.dispose();
              tablesBuilder_ = null;
              tables_ = other.tables_;
              bitField0_ = (bitField0_ & ~0x00000001);
              tablesBuilder_ = 
                com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders ?
                   getTablesFieldBuilder() : null;
            } else {
              tablesBuilder_.addAllMessages(other.tables_);
            }
          }
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.Demo.CDemoStringTables parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.Demo.CDemoStringTables) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List tables_ =
        java.util.Collections.emptyList();
      private void ensureTablesIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          tables_ = new java.util.ArrayList(tables_);
          bitField0_ |= 0x00000001;
         }
      }

      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t.Builder, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_tOrBuilder> tablesBuilder_;

      /**
       * repeated .CDemoStringTables.table_t tables = 1;
       */
      public java.util.List getTablesList() {
        if (tablesBuilder_ == null) {
          return java.util.Collections.unmodifiableList(tables_);
        } else {
          return tablesBuilder_.getMessageList();
        }
      }
      /**
       * repeated .CDemoStringTables.table_t tables = 1;
       */
      public int getTablesCount() {
        if (tablesBuilder_ == null) {
          return tables_.size();
        } else {
          return tablesBuilder_.getCount();
        }
      }
      /**
       * repeated .CDemoStringTables.table_t tables = 1;
       */
      public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t getTables(int index) {
        if (tablesBuilder_ == null) {
          return tables_.get(index);
        } else {
          return tablesBuilder_.getMessage(index);
        }
      }
      /**
       * repeated .CDemoStringTables.table_t tables = 1;
       */
      public Builder setTables(
          int index, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t value) {
        if (tablesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTablesIsMutable();
          tables_.set(index, value);
          onChanged();
        } else {
          tablesBuilder_.setMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDemoStringTables.table_t tables = 1;
       */
      public Builder setTables(
          int index, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t.Builder builderForValue) {
        if (tablesBuilder_ == null) {
          ensureTablesIsMutable();
          tables_.set(index, builderForValue.build());
          onChanged();
        } else {
          tablesBuilder_.setMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDemoStringTables.table_t tables = 1;
       */
      public Builder addTables(skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t value) {
        if (tablesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTablesIsMutable();
          tables_.add(value);
          onChanged();
        } else {
          tablesBuilder_.addMessage(value);
        }
        return this;
      }
      /**
       * repeated .CDemoStringTables.table_t tables = 1;
       */
      public Builder addTables(
          int index, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t value) {
        if (tablesBuilder_ == null) {
          if (value == null) {
            throw new NullPointerException();
          }
          ensureTablesIsMutable();
          tables_.add(index, value);
          onChanged();
        } else {
          tablesBuilder_.addMessage(index, value);
        }
        return this;
      }
      /**
       * repeated .CDemoStringTables.table_t tables = 1;
       */
      public Builder addTables(
          skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t.Builder builderForValue) {
        if (tablesBuilder_ == null) {
          ensureTablesIsMutable();
          tables_.add(builderForValue.build());
          onChanged();
        } else {
          tablesBuilder_.addMessage(builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDemoStringTables.table_t tables = 1;
       */
      public Builder addTables(
          int index, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t.Builder builderForValue) {
        if (tablesBuilder_ == null) {
          ensureTablesIsMutable();
          tables_.add(index, builderForValue.build());
          onChanged();
        } else {
          tablesBuilder_.addMessage(index, builderForValue.build());
        }
        return this;
      }
      /**
       * repeated .CDemoStringTables.table_t tables = 1;
       */
      public Builder addAllTables(
          java.lang.Iterable values) {
        if (tablesBuilder_ == null) {
          ensureTablesIsMutable();
          com.google.protobuf.AbstractMessageLite.Builder.addAll(
              values, tables_);
          onChanged();
        } else {
          tablesBuilder_.addAllMessages(values);
        }
        return this;
      }
      /**
       * repeated .CDemoStringTables.table_t tables = 1;
       */
      public Builder clearTables() {
        if (tablesBuilder_ == null) {
          tables_ = java.util.Collections.emptyList();
          bitField0_ = (bitField0_ & ~0x00000001);
          onChanged();
        } else {
          tablesBuilder_.clear();
        }
        return this;
      }
      /**
       * repeated .CDemoStringTables.table_t tables = 1;
       */
      public Builder removeTables(int index) {
        if (tablesBuilder_ == null) {
          ensureTablesIsMutable();
          tables_.remove(index);
          onChanged();
        } else {
          tablesBuilder_.remove(index);
        }
        return this;
      }
      /**
       * repeated .CDemoStringTables.table_t tables = 1;
       */
      public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t.Builder getTablesBuilder(
          int index) {
        return getTablesFieldBuilder().getBuilder(index);
      }
      /**
       * repeated .CDemoStringTables.table_t tables = 1;
       */
      public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_tOrBuilder getTablesOrBuilder(
          int index) {
        if (tablesBuilder_ == null) {
          return tables_.get(index);  } else {
          return tablesBuilder_.getMessageOrBuilder(index);
        }
      }
      /**
       * repeated .CDemoStringTables.table_t tables = 1;
       */
      public java.util.List 
           getTablesOrBuilderList() {
        if (tablesBuilder_ != null) {
          return tablesBuilder_.getMessageOrBuilderList();
        } else {
          return java.util.Collections.unmodifiableList(tables_);
        }
      }
      /**
       * repeated .CDemoStringTables.table_t tables = 1;
       */
      public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t.Builder addTablesBuilder() {
        return getTablesFieldBuilder().addBuilder(
            skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t.getDefaultInstance());
      }
      /**
       * repeated .CDemoStringTables.table_t tables = 1;
       */
      public skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t.Builder addTablesBuilder(
          int index) {
        return getTablesFieldBuilder().addBuilder(
            index, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t.getDefaultInstance());
      }
      /**
       * repeated .CDemoStringTables.table_t tables = 1;
       */
      public java.util.List 
           getTablesBuilderList() {
        return getTablesFieldBuilder().getBuilderList();
      }
      private com.google.protobuf.RepeatedFieldBuilder<
          skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t.Builder, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_tOrBuilder> 
          getTablesFieldBuilder() {
        if (tablesBuilder_ == null) {
          tablesBuilder_ = new com.google.protobuf.RepeatedFieldBuilder<
              skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_t.Builder, skadistats.clarity.wire.common.proto.Demo.CDemoStringTables.table_tOrBuilder>(
                  tables_,
                  ((bitField0_ & 0x00000001) == 0x00000001),
                  getParentForChildren(),
                  isClean());
          tables_ = null;
        }
        return tablesBuilder_;
      }

      // @@protoc_insertion_point(builder_scope:CDemoStringTables)
    }

    static {
      defaultInstance = new CDemoStringTables(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDemoStringTables)
  }

  public interface CDemoStopOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDemoStop)
      com.google.protobuf.MessageOrBuilder {
  }
  /**
   * Protobuf type {@code CDemoStop}
   */
  public static final class CDemoStop extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDemoStop)
      CDemoStopOrBuilder {
    // Use CDemoStop.newBuilder() to construct.
    private CDemoStop(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDemoStop(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDemoStop defaultInstance;
    public static CDemoStop getDefaultInstance() {
      return defaultInstance;
    }

    public CDemoStop getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDemoStop(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoStop_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoStop_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.Demo.CDemoStop.class, skadistats.clarity.wire.common.proto.Demo.CDemoStop.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDemoStop parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDemoStop(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private void initFields() {
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.Demo.CDemoStop parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoStop parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoStop parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoStop parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoStop parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoStop parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoStop parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoStop parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoStop parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoStop parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.Demo.CDemoStop prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDemoStop}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDemoStop)
        skadistats.clarity.wire.common.proto.Demo.CDemoStopOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoStop_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoStop_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.Demo.CDemoStop.class, skadistats.clarity.wire.common.proto.Demo.CDemoStop.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.Demo.CDemoStop.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoStop_descriptor;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoStop getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.Demo.CDemoStop.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoStop build() {
        skadistats.clarity.wire.common.proto.Demo.CDemoStop result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoStop buildPartial() {
        skadistats.clarity.wire.common.proto.Demo.CDemoStop result = new skadistats.clarity.wire.common.proto.Demo.CDemoStop(this);
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.Demo.CDemoStop) {
          return mergeFrom((skadistats.clarity.wire.common.proto.Demo.CDemoStop)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.Demo.CDemoStop other) {
        if (other == skadistats.clarity.wire.common.proto.Demo.CDemoStop.getDefaultInstance()) return this;
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.Demo.CDemoStop parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.Demo.CDemoStop) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDemoStop)
    }

    static {
      defaultInstance = new CDemoStop(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDemoStop)
  }

  public interface CDemoUserCmdOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDemoUserCmd)
      com.google.protobuf.MessageOrBuilder {

    /**
     * optional int32 cmd_number = 1;
     */
    boolean hasCmdNumber();
    /**
     * optional int32 cmd_number = 1;
     */
    int getCmdNumber();

    /**
     * optional bytes data = 2;
     */
    boolean hasData();
    /**
     * optional bytes data = 2;
     */
    com.google.protobuf.ByteString getData();
  }
  /**
   * Protobuf type {@code CDemoUserCmd}
   */
  public static final class CDemoUserCmd extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDemoUserCmd)
      CDemoUserCmdOrBuilder {
    // Use CDemoUserCmd.newBuilder() to construct.
    private CDemoUserCmd(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDemoUserCmd(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDemoUserCmd defaultInstance;
    public static CDemoUserCmd getDefaultInstance() {
      return defaultInstance;
    }

    public CDemoUserCmd getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDemoUserCmd(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 8: {
              bitField0_ |= 0x00000001;
              cmdNumber_ = input.readInt32();
              break;
            }
            case 18: {
              bitField0_ |= 0x00000002;
              data_ = input.readBytes();
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoUserCmd_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoUserCmd_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd.class, skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDemoUserCmd parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDemoUserCmd(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    private int bitField0_;
    public static final int CMD_NUMBER_FIELD_NUMBER = 1;
    private int cmdNumber_;
    /**
     * optional int32 cmd_number = 1;
     */
    public boolean hasCmdNumber() {
      return ((bitField0_ & 0x00000001) == 0x00000001);
    }
    /**
     * optional int32 cmd_number = 1;
     */
    public int getCmdNumber() {
      return cmdNumber_;
    }

    public static final int DATA_FIELD_NUMBER = 2;
    private com.google.protobuf.ByteString data_;
    /**
     * optional bytes data = 2;
     */
    public boolean hasData() {
      return ((bitField0_ & 0x00000002) == 0x00000002);
    }
    /**
     * optional bytes data = 2;
     */
    public com.google.protobuf.ByteString getData() {
      return data_;
    }

    private void initFields() {
      cmdNumber_ = 0;
      data_ = com.google.protobuf.ByteString.EMPTY;
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        output.writeInt32(1, cmdNumber_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        output.writeBytes(2, data_);
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      if (((bitField0_ & 0x00000001) == 0x00000001)) {
        size += com.google.protobuf.CodedOutputStream
          .computeInt32Size(1, cmdNumber_);
      }
      if (((bitField0_ & 0x00000002) == 0x00000002)) {
        size += com.google.protobuf.CodedOutputStream
          .computeBytesSize(2, data_);
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDemoUserCmd}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDemoUserCmd)
        skadistats.clarity.wire.common.proto.Demo.CDemoUserCmdOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoUserCmd_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoUserCmd_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd.class, skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        cmdNumber_ = 0;
        bitField0_ = (bitField0_ & ~0x00000001);
        data_ = com.google.protobuf.ByteString.EMPTY;
        bitField0_ = (bitField0_ & ~0x00000002);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoUserCmd_descriptor;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd build() {
        skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd buildPartial() {
        skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd result = new skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd(this);
        int from_bitField0_ = bitField0_;
        int to_bitField0_ = 0;
        if (((from_bitField0_ & 0x00000001) == 0x00000001)) {
          to_bitField0_ |= 0x00000001;
        }
        result.cmdNumber_ = cmdNumber_;
        if (((from_bitField0_ & 0x00000002) == 0x00000002)) {
          to_bitField0_ |= 0x00000002;
        }
        result.data_ = data_;
        result.bitField0_ = to_bitField0_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd) {
          return mergeFrom((skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd other) {
        if (other == skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd.getDefaultInstance()) return this;
        if (other.hasCmdNumber()) {
          setCmdNumber(other.getCmdNumber());
        }
        if (other.hasData()) {
          setData(other.getData());
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.Demo.CDemoUserCmd) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private int cmdNumber_ ;
      /**
       * optional int32 cmd_number = 1;
       */
      public boolean hasCmdNumber() {
        return ((bitField0_ & 0x00000001) == 0x00000001);
      }
      /**
       * optional int32 cmd_number = 1;
       */
      public int getCmdNumber() {
        return cmdNumber_;
      }
      /**
       * optional int32 cmd_number = 1;
       */
      public Builder setCmdNumber(int value) {
        bitField0_ |= 0x00000001;
        cmdNumber_ = value;
        onChanged();
        return this;
      }
      /**
       * optional int32 cmd_number = 1;
       */
      public Builder clearCmdNumber() {
        bitField0_ = (bitField0_ & ~0x00000001);
        cmdNumber_ = 0;
        onChanged();
        return this;
      }

      private com.google.protobuf.ByteString data_ = com.google.protobuf.ByteString.EMPTY;
      /**
       * optional bytes data = 2;
       */
      public boolean hasData() {
        return ((bitField0_ & 0x00000002) == 0x00000002);
      }
      /**
       * optional bytes data = 2;
       */
      public com.google.protobuf.ByteString getData() {
        return data_;
      }
      /**
       * optional bytes data = 2;
       */
      public Builder setData(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  bitField0_ |= 0x00000002;
        data_ = value;
        onChanged();
        return this;
      }
      /**
       * optional bytes data = 2;
       */
      public Builder clearData() {
        bitField0_ = (bitField0_ & ~0x00000002);
        data_ = getDefaultInstance().getData();
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDemoUserCmd)
    }

    static {
      defaultInstance = new CDemoUserCmd(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDemoUserCmd)
  }

  public interface CDemoSpawnGroupsOrBuilder extends
      // @@protoc_insertion_point(interface_extends:CDemoSpawnGroups)
      com.google.protobuf.MessageOrBuilder {

    /**
     * repeated bytes msgs = 3;
     */
    java.util.List getMsgsList();
    /**
     * repeated bytes msgs = 3;
     */
    int getMsgsCount();
    /**
     * repeated bytes msgs = 3;
     */
    com.google.protobuf.ByteString getMsgs(int index);
  }
  /**
   * Protobuf type {@code CDemoSpawnGroups}
   */
  public static final class CDemoSpawnGroups extends
      com.google.protobuf.GeneratedMessage implements
      // @@protoc_insertion_point(message_implements:CDemoSpawnGroups)
      CDemoSpawnGroupsOrBuilder {
    // Use CDemoSpawnGroups.newBuilder() to construct.
    private CDemoSpawnGroups(com.google.protobuf.GeneratedMessage.Builder builder) {
      super(builder);
      this.unknownFields = builder.getUnknownFields();
    }
    private CDemoSpawnGroups(boolean noInit) { this.unknownFields = com.google.protobuf.UnknownFieldSet.getDefaultInstance(); }

    private static final CDemoSpawnGroups defaultInstance;
    public static CDemoSpawnGroups getDefaultInstance() {
      return defaultInstance;
    }

    public CDemoSpawnGroups getDefaultInstanceForType() {
      return defaultInstance;
    }

    private final com.google.protobuf.UnknownFieldSet unknownFields;
    @java.lang.Override
    public final com.google.protobuf.UnknownFieldSet
        getUnknownFields() {
      return this.unknownFields;
    }
    private CDemoSpawnGroups(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      initFields();
      int mutable_bitField0_ = 0;
      com.google.protobuf.UnknownFieldSet.Builder unknownFields =
          com.google.protobuf.UnknownFieldSet.newBuilder();
      try {
        boolean done = false;
        while (!done) {
          int tag = input.readTag();
          switch (tag) {
            case 0:
              done = true;
              break;
            default: {
              if (!parseUnknownField(input, unknownFields,
                                     extensionRegistry, tag)) {
                done = true;
              }
              break;
            }
            case 26: {
              if (!((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
                msgs_ = new java.util.ArrayList();
                mutable_bitField0_ |= 0x00000001;
              }
              msgs_.add(input.readBytes());
              break;
            }
          }
        }
      } catch (com.google.protobuf.InvalidProtocolBufferException e) {
        throw e.setUnfinishedMessage(this);
      } catch (java.io.IOException e) {
        throw new com.google.protobuf.InvalidProtocolBufferException(
            e.getMessage()).setUnfinishedMessage(this);
      } finally {
        if (((mutable_bitField0_ & 0x00000001) == 0x00000001)) {
          msgs_ = java.util.Collections.unmodifiableList(msgs_);
        }
        this.unknownFields = unknownFields.build();
        makeExtensionsImmutable();
      }
    }
    public static final com.google.protobuf.Descriptors.Descriptor
        getDescriptor() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoSpawnGroups_descriptor;
    }

    protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
        internalGetFieldAccessorTable() {
      return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoSpawnGroups_fieldAccessorTable
          .ensureFieldAccessorsInitialized(
              skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups.class, skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups.Builder.class);
    }

    public static com.google.protobuf.Parser PARSER =
        new com.google.protobuf.AbstractParser() {
      public CDemoSpawnGroups parsePartialFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws com.google.protobuf.InvalidProtocolBufferException {
        return new CDemoSpawnGroups(input, extensionRegistry);
      }
    };

    @java.lang.Override
    public com.google.protobuf.Parser getParserForType() {
      return PARSER;
    }

    public static final int MSGS_FIELD_NUMBER = 3;
    private java.util.List msgs_;
    /**
     * repeated bytes msgs = 3;
     */
    public java.util.List
        getMsgsList() {
      return msgs_;
    }
    /**
     * repeated bytes msgs = 3;
     */
    public int getMsgsCount() {
      return msgs_.size();
    }
    /**
     * repeated bytes msgs = 3;
     */
    public com.google.protobuf.ByteString getMsgs(int index) {
      return msgs_.get(index);
    }

    private void initFields() {
      msgs_ = java.util.Collections.emptyList();
    }
    private byte memoizedIsInitialized = -1;
    public final boolean isInitialized() {
      byte isInitialized = memoizedIsInitialized;
      if (isInitialized == 1) return true;
      if (isInitialized == 0) return false;

      memoizedIsInitialized = 1;
      return true;
    }

    public void writeTo(com.google.protobuf.CodedOutputStream output)
                        throws java.io.IOException {
      getSerializedSize();
      for (int i = 0; i < msgs_.size(); i++) {
        output.writeBytes(3, msgs_.get(i));
      }
      getUnknownFields().writeTo(output);
    }

    private int memoizedSerializedSize = -1;
    public int getSerializedSize() {
      int size = memoizedSerializedSize;
      if (size != -1) return size;

      size = 0;
      {
        int dataSize = 0;
        for (int i = 0; i < msgs_.size(); i++) {
          dataSize += com.google.protobuf.CodedOutputStream
            .computeBytesSizeNoTag(msgs_.get(i));
        }
        size += dataSize;
        size += 1 * getMsgsList().size();
      }
      size += getUnknownFields().getSerializedSize();
      memoizedSerializedSize = size;
      return size;
    }

    private static final long serialVersionUID = 0L;
    @java.lang.Override
    protected java.lang.Object writeReplace()
        throws java.io.ObjectStreamException {
      return super.writeReplace();
    }

    public static skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups parseFrom(
        com.google.protobuf.ByteString data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups parseFrom(
        com.google.protobuf.ByteString data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups parseFrom(byte[] data)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups parseFrom(
        byte[] data,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws com.google.protobuf.InvalidProtocolBufferException {
      return PARSER.parseFrom(data, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups parseFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups parseFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups parseDelimitedFrom(java.io.InputStream input)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups parseDelimitedFrom(
        java.io.InputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseDelimitedFrom(input, extensionRegistry);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups parseFrom(
        com.google.protobuf.CodedInputStream input)
        throws java.io.IOException {
      return PARSER.parseFrom(input);
    }
    public static skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups parseFrom(
        com.google.protobuf.CodedInputStream input,
        com.google.protobuf.ExtensionRegistryLite extensionRegistry)
        throws java.io.IOException {
      return PARSER.parseFrom(input, extensionRegistry);
    }

    public static Builder newBuilder() { return Builder.create(); }
    public Builder newBuilderForType() { return newBuilder(); }
    public static Builder newBuilder(skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups prototype) {
      return newBuilder().mergeFrom(prototype);
    }
    public Builder toBuilder() { return newBuilder(this); }

    @java.lang.Override
    protected Builder newBuilderForType(
        com.google.protobuf.GeneratedMessage.BuilderParent parent) {
      Builder builder = new Builder(parent);
      return builder;
    }
    /**
     * Protobuf type {@code CDemoSpawnGroups}
     */
    public static final class Builder extends
        com.google.protobuf.GeneratedMessage.Builder implements
        // @@protoc_insertion_point(builder_implements:CDemoSpawnGroups)
        skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroupsOrBuilder {
      public static final com.google.protobuf.Descriptors.Descriptor
          getDescriptor() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoSpawnGroups_descriptor;
      }

      protected com.google.protobuf.GeneratedMessage.FieldAccessorTable
          internalGetFieldAccessorTable() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoSpawnGroups_fieldAccessorTable
            .ensureFieldAccessorsInitialized(
                skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups.class, skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups.Builder.class);
      }

      // Construct using skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups.newBuilder()
      private Builder() {
        maybeForceBuilderInitialization();
      }

      private Builder(
          com.google.protobuf.GeneratedMessage.BuilderParent parent) {
        super(parent);
        maybeForceBuilderInitialization();
      }
      private void maybeForceBuilderInitialization() {
        if (com.google.protobuf.GeneratedMessage.alwaysUseFieldBuilders) {
        }
      }
      private static Builder create() {
        return new Builder();
      }

      public Builder clear() {
        super.clear();
        msgs_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        return this;
      }

      public Builder clone() {
        return create().mergeFrom(buildPartial());
      }

      public com.google.protobuf.Descriptors.Descriptor
          getDescriptorForType() {
        return skadistats.clarity.wire.common.proto.Demo.internal_static_CDemoSpawnGroups_descriptor;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups getDefaultInstanceForType() {
        return skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups.getDefaultInstance();
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups build() {
        skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups result = buildPartial();
        if (!result.isInitialized()) {
          throw newUninitializedMessageException(result);
        }
        return result;
      }

      public skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups buildPartial() {
        skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups result = new skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups(this);
        int from_bitField0_ = bitField0_;
        if (((bitField0_ & 0x00000001) == 0x00000001)) {
          msgs_ = java.util.Collections.unmodifiableList(msgs_);
          bitField0_ = (bitField0_ & ~0x00000001);
        }
        result.msgs_ = msgs_;
        onBuilt();
        return result;
      }

      public Builder mergeFrom(com.google.protobuf.Message other) {
        if (other instanceof skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups) {
          return mergeFrom((skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups)other);
        } else {
          super.mergeFrom(other);
          return this;
        }
      }

      public Builder mergeFrom(skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups other) {
        if (other == skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups.getDefaultInstance()) return this;
        if (!other.msgs_.isEmpty()) {
          if (msgs_.isEmpty()) {
            msgs_ = other.msgs_;
            bitField0_ = (bitField0_ & ~0x00000001);
          } else {
            ensureMsgsIsMutable();
            msgs_.addAll(other.msgs_);
          }
          onChanged();
        }
        this.mergeUnknownFields(other.getUnknownFields());
        return this;
      }

      public final boolean isInitialized() {
        return true;
      }

      public Builder mergeFrom(
          com.google.protobuf.CodedInputStream input,
          com.google.protobuf.ExtensionRegistryLite extensionRegistry)
          throws java.io.IOException {
        skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups parsedMessage = null;
        try {
          parsedMessage = PARSER.parsePartialFrom(input, extensionRegistry);
        } catch (com.google.protobuf.InvalidProtocolBufferException e) {
          parsedMessage = (skadistats.clarity.wire.common.proto.Demo.CDemoSpawnGroups) e.getUnfinishedMessage();
          throw e;
        } finally {
          if (parsedMessage != null) {
            mergeFrom(parsedMessage);
          }
        }
        return this;
      }
      private int bitField0_;

      private java.util.List msgs_ = java.util.Collections.emptyList();
      private void ensureMsgsIsMutable() {
        if (!((bitField0_ & 0x00000001) == 0x00000001)) {
          msgs_ = new java.util.ArrayList(msgs_);
          bitField0_ |= 0x00000001;
         }
      }
      /**
       * repeated bytes msgs = 3;
       */
      public java.util.List
          getMsgsList() {
        return java.util.Collections.unmodifiableList(msgs_);
      }
      /**
       * repeated bytes msgs = 3;
       */
      public int getMsgsCount() {
        return msgs_.size();
      }
      /**
       * repeated bytes msgs = 3;
       */
      public com.google.protobuf.ByteString getMsgs(int index) {
        return msgs_.get(index);
      }
      /**
       * repeated bytes msgs = 3;
       */
      public Builder setMsgs(
          int index, com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureMsgsIsMutable();
        msgs_.set(index, value);
        onChanged();
        return this;
      }
      /**
       * repeated bytes msgs = 3;
       */
      public Builder addMsgs(com.google.protobuf.ByteString value) {
        if (value == null) {
    throw new NullPointerException();
  }
  ensureMsgsIsMutable();
        msgs_.add(value);
        onChanged();
        return this;
      }
      /**
       * repeated bytes msgs = 3;
       */
      public Builder addAllMsgs(
          java.lang.Iterable values) {
        ensureMsgsIsMutable();
        com.google.protobuf.AbstractMessageLite.Builder.addAll(
            values, msgs_);
        onChanged();
        return this;
      }
      /**
       * repeated bytes msgs = 3;
       */
      public Builder clearMsgs() {
        msgs_ = java.util.Collections.emptyList();
        bitField0_ = (bitField0_ & ~0x00000001);
        onChanged();
        return this;
      }

      // @@protoc_insertion_point(builder_scope:CDemoSpawnGroups)
    }

    static {
      defaultInstance = new CDemoSpawnGroups(true);
      defaultInstance.initFields();
    }

    // @@protoc_insertion_point(class_scope:CDemoSpawnGroups)
  }

  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDemoFileHeader_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDemoFileHeader_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CGameInfo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CGameInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CGameInfo_CDotaGameInfo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CGameInfo_CDotaGameInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CGameInfo_CDotaGameInfo_CPlayerInfo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CGameInfo_CDotaGameInfo_CPlayerInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CGameInfo_CDotaGameInfo_CHeroSelectEvent_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CGameInfo_CDotaGameInfo_CHeroSelectEvent_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDemoFileInfo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDemoFileInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDemoPacket_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDemoPacket_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDemoFullPacket_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDemoFullPacket_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDemoSaveGame_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDemoSaveGame_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDemoSyncTick_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDemoSyncTick_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDemoConsoleCmd_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDemoConsoleCmd_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDemoSendTables_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDemoSendTables_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDemoClassInfo_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDemoClassInfo_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDemoClassInfo_class_t_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDemoClassInfo_class_t_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDemoCustomData_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDemoCustomData_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDemoCustomDataCallbacks_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDemoCustomDataCallbacks_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDemoStringTables_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDemoStringTables_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDemoStringTables_items_t_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDemoStringTables_items_t_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDemoStringTables_table_t_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDemoStringTables_table_t_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDemoStop_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDemoStop_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDemoUserCmd_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDemoUserCmd_fieldAccessorTable;
  private static final com.google.protobuf.Descriptors.Descriptor
    internal_static_CDemoSpawnGroups_descriptor;
  private static
    com.google.protobuf.GeneratedMessage.FieldAccessorTable
      internal_static_CDemoSpawnGroups_fieldAccessorTable;

  public static com.google.protobuf.Descriptors.FileDescriptor
      getDescriptor() {
    return descriptor;
  }
  private static com.google.protobuf.Descriptors.FileDescriptor
      descriptor;
  static {
    java.lang.String[] descriptorData = {
      "\n\ndemo.proto\"\325\002\n\017CDemoFileHeader\022\027\n\017demo" +
      "_file_stamp\030\001 \002(\t\022\030\n\020network_protocol\030\002 " +
      "\001(\005\022\023\n\013server_name\030\003 \001(\t\022\023\n\013client_name\030" +
      "\004 \001(\t\022\020\n\010map_name\030\005 \001(\t\022\026\n\016game_director" +
      "y\030\006 \001(\t\022\033\n\023fullpackets_version\030\007 \001(\005\022!\n\031" +
      "allow_clientside_entities\030\010 \001(\010\022\"\n\032allow" +
      "_clientside_particles\030\t \001(\010\022\016\n\006addons\030\n " +
      "\001(\t\022\031\n\021demo_version_name\030\013 \001(\t\022\031\n\021demo_v" +
      "ersion_guid\030\014 \001(\t\022\021\n\tbuild_num\030\r \001(\005\"\264\004\n" +
      "\tCGameInfo\022&\n\004dota\030\004 \001(\0132\030.CGameInfo.CDo",
      "taGameInfo\032\376\003\n\rCDotaGameInfo\022\020\n\010match_id" +
      "\030\001 \001(\004\022\021\n\tgame_mode\030\002 \001(\005\022\023\n\013game_winner" +
      "\030\003 \001(\005\0229\n\013player_info\030\004 \003(\0132$.CGameInfo." +
      "CDotaGameInfo.CPlayerInfo\022\020\n\010leagueid\030\005 " +
      "\001(\r\022=\n\npicks_bans\030\006 \003(\0132).CGameInfo.CDot" +
      "aGameInfo.CHeroSelectEvent\022\027\n\017radiant_te" +
      "am_id\030\007 \001(\r\022\024\n\014dire_team_id\030\010 \001(\r\022\030\n\020rad" +
      "iant_team_tag\030\t \001(\t\022\025\n\rdire_team_tag\030\n \001" +
      "(\t\022\020\n\010end_time\030\013 \001(\r\032q\n\013CPlayerInfo\022\021\n\th" +
      "ero_name\030\001 \001(\t\022\023\n\013player_name\030\002 \001(\t\022\026\n\016i",
      "s_fake_client\030\003 \001(\010\022\017\n\007steamid\030\004 \001(\004\022\021\n\t" +
      "game_team\030\005 \001(\005\032B\n\020CHeroSelectEvent\022\017\n\007i" +
      "s_pick\030\001 \001(\010\022\014\n\004team\030\002 \001(\r\022\017\n\007hero_id\030\003 " +
      "\001(\r\"v\n\rCDemoFileInfo\022\025\n\rplayback_time\030\001 " +
      "\001(\002\022\026\n\016playback_ticks\030\002 \001(\005\022\027\n\017playback_" +
      "frames\030\003 \001(\005\022\035\n\tgame_info\030\004 \001(\0132\n.CGameI" +
      "nfo\"J\n\013CDemoPacket\022\023\n\013sequence_in\030\001 \001(\005\022" +
      "\030\n\020sequence_out_ack\030\002 \001(\005\022\014\n\004data\030\003 \001(\014\"" +
      "Y\n\017CDemoFullPacket\022(\n\014string_table\030\001 \001(\013" +
      "2\022.CDemoStringTables\022\034\n\006packet\030\002 \001(\0132\014.C",
      "DemoPacket\"S\n\rCDemoSaveGame\022\014\n\004data\030\001 \001(" +
      "\014\022\020\n\010steam_id\030\002 \001(\006\022\021\n\tsignature\030\003 \001(\006\022\017" +
      "\n\007version\030\004 \001(\005\"\017\n\rCDemoSyncTick\"$\n\017CDem" +
      "oConsoleCmd\022\021\n\tcmdstring\030\001 \001(\t\"\037\n\017CDemoS" +
      "endTables\022\014\n\004data\030\001 \001(\014\"\201\001\n\016CDemoClassIn" +
      "fo\022(\n\007classes\030\001 \003(\0132\027.CDemoClassInfo.cla" +
      "ss_t\032E\n\007class_t\022\020\n\010class_id\030\001 \001(\005\022\024\n\014net" +
      "work_name\030\002 \001(\t\022\022\n\ntable_name\030\003 \001(\t\"7\n\017C" +
      "DemoCustomData\022\026\n\016callback_index\030\001 \001(\005\022\014" +
      "\n\004data\030\002 \001(\014\"+\n\030CDemoCustomDataCallbacks",
      "\022\017\n\007save_id\030\001 \003(\t\"\373\001\n\021CDemoStringTables\022" +
      "*\n\006tables\030\001 \003(\0132\032.CDemoStringTables.tabl" +
      "e_t\032$\n\007items_t\022\013\n\003str\030\001 \001(\t\022\014\n\004data\030\002 \001(" +
      "\014\032\223\001\n\007table_t\022\022\n\ntable_name\030\001 \001(\t\022)\n\005ite" +
      "ms\030\002 \003(\0132\032.CDemoStringTables.items_t\0224\n\020" +
      "items_clientside\030\003 \003(\0132\032.CDemoStringTabl" +
      "es.items_t\022\023\n\013table_flags\030\004 \001(\005\"\013\n\tCDemo" +
      "Stop\"0\n\014CDemoUserCmd\022\022\n\ncmd_number\030\001 \001(\005" +
      "\022\014\n\004data\030\002 \001(\014\" \n\020CDemoSpawnGroups\022\014\n\004ms" +
      "gs\030\003 \003(\014*\240\003\n\rEDemoCommands\022\026\n\tDEM_Error\020",
      "\377\377\377\377\377\377\377\377\377\001\022\014\n\010DEM_Stop\020\000\022\022\n\016DEM_FileHead" +
      "er\020\001\022\020\n\014DEM_FileInfo\020\002\022\020\n\014DEM_SyncTick\020\003" +
      "\022\022\n\016DEM_SendTables\020\004\022\021\n\rDEM_ClassInfo\020\005\022" +
      "\024\n\020DEM_StringTables\020\006\022\016\n\nDEM_Packet\020\007\022\024\n" +
      "\020DEM_SignonPacket\020\010\022\022\n\016DEM_ConsoleCmd\020\t\022" +
      "\022\n\016DEM_CustomData\020\n\022\033\n\027DEM_CustomDataCal" +
      "lbacks\020\013\022\017\n\013DEM_UserCmd\020\014\022\022\n\016DEM_FullPac" +
      "ket\020\r\022\020\n\014DEM_SaveGame\020\016\022\023\n\017DEM_SpawnGrou" +
      "ps\020\017\022\013\n\007DEM_Max\020\020\022\027\n\023DEM_IsCompressed_S1" +
      "\020p\022\027\n\023DEM_IsCompressed_S2\020@B)\n$skadistat",
      "s.clarity.wire.common.proto\200\001\000"
    };
    com.google.protobuf.Descriptors.FileDescriptor.InternalDescriptorAssigner assigner =
        new com.google.protobuf.Descriptors.FileDescriptor.    InternalDescriptorAssigner() {
          public com.google.protobuf.ExtensionRegistry assignDescriptors(
              com.google.protobuf.Descriptors.FileDescriptor root) {
            descriptor = root;
            return null;
          }
        };
    com.google.protobuf.Descriptors.FileDescriptor
      .internalBuildGeneratedFileFrom(descriptorData,
        new com.google.protobuf.Descriptors.FileDescriptor[] {
        }, assigner);
    internal_static_CDemoFileHeader_descriptor =
      getDescriptor().getMessageTypes().get(0);
    internal_static_CDemoFileHeader_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDemoFileHeader_descriptor,
        new java.lang.String[] { "DemoFileStamp", "NetworkProtocol", "ServerName", "ClientName", "MapName", "GameDirectory", "FullpacketsVersion", "AllowClientsideEntities", "AllowClientsideParticles", "Addons", "DemoVersionName", "DemoVersionGuid", "BuildNum", });
    internal_static_CGameInfo_descriptor =
      getDescriptor().getMessageTypes().get(1);
    internal_static_CGameInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CGameInfo_descriptor,
        new java.lang.String[] { "Dota", });
    internal_static_CGameInfo_CDotaGameInfo_descriptor =
      internal_static_CGameInfo_descriptor.getNestedTypes().get(0);
    internal_static_CGameInfo_CDotaGameInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CGameInfo_CDotaGameInfo_descriptor,
        new java.lang.String[] { "MatchId", "GameMode", "GameWinner", "PlayerInfo", "Leagueid", "PicksBans", "RadiantTeamId", "DireTeamId", "RadiantTeamTag", "DireTeamTag", "EndTime", });
    internal_static_CGameInfo_CDotaGameInfo_CPlayerInfo_descriptor =
      internal_static_CGameInfo_CDotaGameInfo_descriptor.getNestedTypes().get(0);
    internal_static_CGameInfo_CDotaGameInfo_CPlayerInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CGameInfo_CDotaGameInfo_CPlayerInfo_descriptor,
        new java.lang.String[] { "HeroName", "PlayerName", "IsFakeClient", "Steamid", "GameTeam", });
    internal_static_CGameInfo_CDotaGameInfo_CHeroSelectEvent_descriptor =
      internal_static_CGameInfo_CDotaGameInfo_descriptor.getNestedTypes().get(1);
    internal_static_CGameInfo_CDotaGameInfo_CHeroSelectEvent_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CGameInfo_CDotaGameInfo_CHeroSelectEvent_descriptor,
        new java.lang.String[] { "IsPick", "Team", "HeroId", });
    internal_static_CDemoFileInfo_descriptor =
      getDescriptor().getMessageTypes().get(2);
    internal_static_CDemoFileInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDemoFileInfo_descriptor,
        new java.lang.String[] { "PlaybackTime", "PlaybackTicks", "PlaybackFrames", "GameInfo", });
    internal_static_CDemoPacket_descriptor =
      getDescriptor().getMessageTypes().get(3);
    internal_static_CDemoPacket_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDemoPacket_descriptor,
        new java.lang.String[] { "SequenceIn", "SequenceOutAck", "Data", });
    internal_static_CDemoFullPacket_descriptor =
      getDescriptor().getMessageTypes().get(4);
    internal_static_CDemoFullPacket_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDemoFullPacket_descriptor,
        new java.lang.String[] { "StringTable", "Packet", });
    internal_static_CDemoSaveGame_descriptor =
      getDescriptor().getMessageTypes().get(5);
    internal_static_CDemoSaveGame_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDemoSaveGame_descriptor,
        new java.lang.String[] { "Data", "SteamId", "Signature", "Version", });
    internal_static_CDemoSyncTick_descriptor =
      getDescriptor().getMessageTypes().get(6);
    internal_static_CDemoSyncTick_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDemoSyncTick_descriptor,
        new java.lang.String[] { });
    internal_static_CDemoConsoleCmd_descriptor =
      getDescriptor().getMessageTypes().get(7);
    internal_static_CDemoConsoleCmd_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDemoConsoleCmd_descriptor,
        new java.lang.String[] { "Cmdstring", });
    internal_static_CDemoSendTables_descriptor =
      getDescriptor().getMessageTypes().get(8);
    internal_static_CDemoSendTables_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDemoSendTables_descriptor,
        new java.lang.String[] { "Data", });
    internal_static_CDemoClassInfo_descriptor =
      getDescriptor().getMessageTypes().get(9);
    internal_static_CDemoClassInfo_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDemoClassInfo_descriptor,
        new java.lang.String[] { "Classes", });
    internal_static_CDemoClassInfo_class_t_descriptor =
      internal_static_CDemoClassInfo_descriptor.getNestedTypes().get(0);
    internal_static_CDemoClassInfo_class_t_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDemoClassInfo_class_t_descriptor,
        new java.lang.String[] { "ClassId", "NetworkName", "TableName", });
    internal_static_CDemoCustomData_descriptor =
      getDescriptor().getMessageTypes().get(10);
    internal_static_CDemoCustomData_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDemoCustomData_descriptor,
        new java.lang.String[] { "CallbackIndex", "Data", });
    internal_static_CDemoCustomDataCallbacks_descriptor =
      getDescriptor().getMessageTypes().get(11);
    internal_static_CDemoCustomDataCallbacks_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDemoCustomDataCallbacks_descriptor,
        new java.lang.String[] { "SaveId", });
    internal_static_CDemoStringTables_descriptor =
      getDescriptor().getMessageTypes().get(12);
    internal_static_CDemoStringTables_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDemoStringTables_descriptor,
        new java.lang.String[] { "Tables", });
    internal_static_CDemoStringTables_items_t_descriptor =
      internal_static_CDemoStringTables_descriptor.getNestedTypes().get(0);
    internal_static_CDemoStringTables_items_t_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDemoStringTables_items_t_descriptor,
        new java.lang.String[] { "Str", "Data", });
    internal_static_CDemoStringTables_table_t_descriptor =
      internal_static_CDemoStringTables_descriptor.getNestedTypes().get(1);
    internal_static_CDemoStringTables_table_t_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDemoStringTables_table_t_descriptor,
        new java.lang.String[] { "TableName", "Items", "ItemsClientside", "TableFlags", });
    internal_static_CDemoStop_descriptor =
      getDescriptor().getMessageTypes().get(13);
    internal_static_CDemoStop_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDemoStop_descriptor,
        new java.lang.String[] { });
    internal_static_CDemoUserCmd_descriptor =
      getDescriptor().getMessageTypes().get(14);
    internal_static_CDemoUserCmd_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDemoUserCmd_descriptor,
        new java.lang.String[] { "CmdNumber", "Data", });
    internal_static_CDemoSpawnGroups_descriptor =
      getDescriptor().getMessageTypes().get(15);
    internal_static_CDemoSpawnGroups_fieldAccessorTable = new
      com.google.protobuf.GeneratedMessage.FieldAccessorTable(
        internal_static_CDemoSpawnGroups_descriptor,
        new java.lang.String[] { "Msgs", });
  }

  // @@protoc_insertion_point(outer_class_scope)
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy